記事の後半が消えた——MCPの限界と迂回路の話

このサイトの記事は、AIに「投稿して」と言うだけで公開される。

SanityというヘッドレスCMSと、Claude Code(AIのターミナルツール)がつながっていて、管理画面をポチポチしなくても、裏側で一気にやってくれる。最初にこの仕組みが動いたときは、ちょっと感動した。

その橋渡しをしているのが、MCPという仕組みだ。「Model Context Protocol」の略で、AIと外部サービスをつなぐ共通規格。USBみたいなもので、いろんなサービスをAIから同じ方法で操作できるようにする。

私の環境では、Claude CodeとSanity(このサイトのCMS)がMCPでつながっている。他にもいくつかのサービスを接続していて、AIに「これやっておいて」と言えば、だいたいやってくれる。便利だ。めちゃくちゃ便利だ。

で、その便利な仕組みが、ある日突然うまくいかなくなった。

記事の後半が消えていることがめっちゃ多い

何回も起きてる現象だが、投稿した記事をサイトで確認すると、後半がまるごとないことが多い。

途中までは普通に表示されている。でも、ある段落から先がバッサリ消えている。最初は自分の操作ミスかと思った。でも、何度やっても同じ。長めの記事を投稿すると、途中で切れる。でも何回か繰り返しのやり取りをすると全部投稿される。

短い記事は大丈夫。長い記事だけ、後半が消える。これが地味にストレスだった。

原因を調べた

AIに「なんで切れるの?」と聞いて、一緒に調べてもらった。

記事が投稿されるまでの流れはこうだ。

私 → Claude Code → MCP → Sanity API → 記事が保存される

このリレーのどこかで、データが途中で落ちている。

調べてみたら、原因はClaude CodeとMCPの間にあった。

Claude Codeには、MCPを通してやりとりできるデータ量に制限がある。記事のテキストは、Sanityが理解できるデータ構造(Portable Textという形式)に変換されてから送られるのだけど、この形式は1つの段落ごとにブロックの種類やスタイル情報を持つので、変換後のデータは見た目の文字数よりずっと大きくなる。その結果、長い記事だとデータが途中で打ち切られてしまう。

実際にテストもした。前回書いた美容院の記事(34段落)をMCPで投稿しようとしたら、小さいテスト記事は通るのに、全文だと投稿自体ができなかった。

MCPの仕組み自体が悪いわけじゃない。Sanity側にも問題はない。Claude CodeがMCPにデータを渡すとき、大きすぎるデータだと途中で打ち切ってしまうという制限だった。

APIを直接叩いたら、通った

じゃあどうするか。MCPを通さず、Sanityに直接データを送ればいい。

MCPは便利な仲介役だけど、仲介役を通さなくてもSanityと話すことはできる。APIを直接叩く、という方法だ。

私 → Claude Code → スクリプト → Sanity API → 記事が保存される

MCPという仲介役をスキップして、自分用の投稿スクリプトを一本作った。Markdownで書いた下書きを渡すと、Sanityのデータ形式に変換して、APIに直接送る。

結果、全文が通った。34段落、一文字も欠けずに。

同じことが画像でも起きていた

思い返すと、数日前にも似たことがあった。

記事に画像を入れたかったのだけど、Sanity用のMCPサーバーが画像のアップロードに対応していなかった。テキストの操作はできる。でも画像のようなファイルを送る機能は、そのMCPサーバーには用意されていない。

そのときも、APIを直接叩いて解決した。Sanityの管理画面からAPIトークンを発行して、curlコマンドで画像をアップロードした。「トークン」とか「認証」とか、言葉としては前から知っていたけど、自分の手でやったのは初めてだった。

画像アップロードと、長文記事の投稿。別々の問題だと思っていたけど、構造は同じだった。

MCPでできないことは、APIで直接やる。

「便利な仕組み」の限界

MCPは本当に便利だ。AIに「この記事を投稿して」「このデータを更新して」と言うだけで、裏側でやってくれる。いちいちAPIの仕様を調べなくていい。

でも万能じゃなかった。

大きなデータを送ると途中で打ち切られる。MCPサーバーの実装によっては、ファイルのアップロードに対応していないこともある。仲介役が増えるぶん、どこで問題が起きているのか見えにくくなる。

これは、たぶんMCPに限った話じゃない。

便利な仕組みは、使えるうちは最高だ。でもどこかで限界にぶつかる。そのとき「仕組みの裏側」を少しだけ理解していると、迂回路が見える。

MCPが使えないならAPIを直接叩く。管理画面で設定できないならターミナルからコマンドを打つ。やっていることは同じで、通るルートが違うだけ。

交通整理の仕事

こういうことを、日々AIと一緒にやっている。

でも、「MCPで記事が切れた」→「原因を調べた」→「APIで迂回した」という判断は、自分でやっている。どこに問題があるのか切り分けて、どのルートなら通るかを選ぶ。

これは、エンジニアリングというより、交通整理に近い。

道が渋滞していたら、別の道を探す。地図は読めなくても、「この道は詰まってるから、あっちから回ろう」という判断はできる。AIはカーナビで、運転しているのは自分だ。

MCPもAPIもターミナルも、全部「道」でしかない。大事なのは、目的地にたどり着くこと。そのために、どの道が通れてどの道が詰まっているかを把握しておくこと。

たぶん、これが「AIを使いこなす」ということの、わりとリアルな姿だと思う。

日々精進あるのみ。

お仕事のご依頼・ご相談はこちらから。

Contact →