MCP設定:構造・接続・権限を順に理解する

MCPの設定は、構造の確認、接続テスト、サーバーと要求権限の評価という3段階に分けると問題を切り分けやすくなります。構造チェックが扱うのは最初の段階であり、接続と信頼性は別に確かめます。

3つの別々の問い

アプリが設定を読めるか。接続が動くか。提供元と権限が自分のデータに適切か。最初が「はい」でも、残りの答えにはなりません。

MCPはクライアントと機能を提供するサーバーを結びます。stdioを使うローカルプログラムの場合も、HTTPのサービスの場合もあり、通信方式で確認点が変わります。

参考資料: Model Context Protocol — Clients, servers and transports

利用するクライアントの形式を確認する

ToolRoofが調べるのはmcpServers内の限定したJSON形式です。commandに任意のargs・envを加えるか、urlに任意のheadersを加えます。同じ項目にcommandとurlがあればエラー、未知の項目は警告です。

全MCPアプリ共通の設定形式ではありません。対象外というだけで正しい設定を消さず、クライアントの説明を確認してください。コマンド実行、URLへのアクセス、認証テストは行いません。

警告は秘密情報の完全な検出ではない

引数、環境変数、ヘッダーには機密情報が含まれ得ます。その場所の警告は、全値が秘密であることも、警告がなければ秘密がないことも証明しません。

公開サポートに実際の設定を載せず、機密部分を除いた例を使ってください。接続時には提供元と権限を別に確認します。HTTPSや正しいJSONだけで信頼は成立しません。

例:形式の合格が意味する範囲

{"mcpServers":{"notes":{"url":"https://example.com/mcp","type":"http"}}}は対応する形式で1つのサーバーを表します。合格は構造の確認だけです。example.comは説明用のアドレスで、動作確認済みのMCPサーバーではありません。

同じ項目にcommandを加えると通信方式が曖昧になり、エラーになります。一方、headersに{"X-Mode":"demo"}を加えると構造は有効なまま、確認を促す警告が出ます。demoが秘密の認証情報だと判定したわけではありません。

参考資料