401 UnauthorizedやJSONが返ってきて、一般ユーザーには「壊れて見える」GET /mcp かつ Accept: text/html のときだけ案内用HTMLページを返すようにしたこの記事は、HybridLogic の Luke Lanchester さんが書いた「MCP Hello Page」という短い実践メモです。
内容はかなりシンプルですが、実はとても現場っぽい悩みが詰まっています。
まず MCP とは、ざっくり言うと LLM(AIアシスタント)に外部ツールやデータをつなぐための仕組み です。
たとえば、社内ツールや外部サービスをAIクライアントから使えるようにするイメージですね。
で、問題はここ。
MCPサーバーのURLをブラウザで開いても、普通のWebページは出てきません。多くの場合、認証が必要なので 401 Unauthorized が返るか、JSONのエラーメッセージが見えるだけです。
技術者からすると「はいはい、これはブラウザで見るものじゃないね」で終わります。
でも一般の利用者はそうはいかない。リンクをクリックしてエラーが出たら、普通は「壊れてる」と思います。これはかなり自然です。むしろ、そう思わないほうが不親切かもしれません。
著者が言いたいのは、MCPサーバーそのものが壊れているわけではない、という点です。
ただ、人間がブラウザで見たときに“壊れて見える” のが厄介なんですね。
しかも問題はユーザーだけではありません。
サポート側にも問い合わせが来ます。「MCP server が動きません」「リンクを開いたらエラーです」と。
でも実際には、クライアントアプリに登録して使うべきもので、ブラウザで単独表示する用途ではない。ここに認識のズレがあります。
このズレ、すごくわかるんですよね。
技術的には正しいけれど、ユーザー体験としては不親切。こういう場面って、本当に多いです。
著者の対応は、かなり割り切ったものです。
GET /mcp へのアクセスで、Accept ヘッダーに text/html が含まれていて、かつ application/json や text/event-stream が含まれていない場合だけ、HTMLページを返すようにしたそうです。
専門用語をかんたんに言うと:
/mcpに「ページを見に来た」アクセスつまり、
「ブラウザで見に来た人には説明ページを返す。でも、ちゃんとMCPクライアントとして使う人には従来どおりの応答を返す」
という分岐です。
これ、地味ですがかなり賢いです。
なぜなら、壊れたように見える“入口”を、ちゃんと案内板に変えているからです。
著者によると、この対応で問い合わせチケットが激減したとのこと。
CS(Customer Support)も喜び、ユーザーのセットアップも速くなり、しかも観測できる範囲では悪影響もなかったそうです。
ここが一番大事だと思います。
「技術的に正しい」だけではなく、サポートコストと導入のしやすさを一気に改善したのがポイントです。
個人的には、こういう改善は派手な機能追加よりずっと価値があると思います。
新機能は見栄えがいいけれど、こういう“誤解を減らす仕組み”は、毎日じわじわ効くんですよね。
著者は冒頭で、MCP を「specification と呼ぶにはひどい試み」とかなり辛口に言っています。
ここはちょっと笑ってしまいました。かなり率直です。
ただ、その不満は単なる文句ではなくて、実務のストレスがにじんでいます。
要するに、仕様が多少雑でも、現場はそれを使ってサービスを動かさなきゃいけない。
しかもユーザーは仕様を読んでくれない。読んでくれない前提で設計しないといけない。
このあたり、AI時代っぽいです。
「とにかく早く出して、あとで何とかする」という空気がある一方で、実際に必要なのはこういう小さなユーザー案内の改善だったりします。
著者も最後に、仕様側でこうした問題を和らげる仕組みがあればいいのに、と言いつつ、結局は「move fast and hope the AI can fix bugs faster」みたいな世界だ、と皮肉っています。
かなり本音が出ていて、そこも面白いところです。
このブログ記事は、MCPの技術解説というより、**“エラーに見える正常系”をどう扱うか** の話として読むとすごく勉強になります。
たとえば、
このへんはMCPに限らず、あらゆるWebサービスに通じます。
技術者はつい「正しいレスポンス」を重視しがちですが、ユーザーは「今なにが起きているのか」がわからないと不安になります。
その不安を取るだけで、かなり体験は良くなるんですよね。
個人的には、この話はかなり好きです。
ものすごく大きな設計変更ではないのに、現場の痛みをちゃんと減らしているからです。
しかも、解決策がいかにも“ちゃんとしたプロダクト改善”というより、少しハックっぽい。
でも、こういうハックは悪い意味ではなく、現実に勝つための工夫 なんですよね。
綺麗な理想より、問い合わせ件数が減るほうがずっと偉い。これはかなり本質だと思います。
MCPの仕様やAIエージェントの未来を語る記事は多いですが、
実際にユーザーを助けるのは、こういう地味で実務的な改善です。
その意味で、この「Hello Page」は小さいけれど、すごくいい仕事をしていると思います。
参考: MCP Hello Page | Blog | HybridLogic · Personal homepage of Luke Lanchester