電通総研 テックブログ

電通総研が運営する技術ブログ

Visual Studio Code で MCP サーバーの実行に必要な資格情報をパラメーター化する

こんにちは。クロスイノベーション本部クラウドイノベーションセンターの柴田です。

最近 Model Context Protocol (MCP) が注目を集めていますね。

一部の MCP サーバーは実行に資格情報を必要とします。例えば以下は https://github.com/makenotion/notion-mcp-server の設定例です。環境変数 OPENAPI_MCP_HEADERS に Notion の integration secret を設定する必要があります。

{
  "servers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server@v1.7.0"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
      }
    }
  }
}

しかし MCP クライアントの設定ファイルに資格情報を平文でハードコーディングするのはセキュリティの観点から望ましくありません。そこでこの記事では MCP クライアントとして Visual Studio Code を使用する場合に MCP サーバーの実行に必要な資格情報をパラメーター化する方法をご紹介します。

入力変数を利用して資格情報をパラメーター化する

Visual Studio Code では 入力変数 を利用して TaskDebugging の設定ファイルの値をパラメーター化できます。同様に MCP サーバーの設定でも入力変数を利用して実行に必要な資格情報をパラメーター化できます。

先ほどの Notion MCP サーバーの設定を入力変数を使って書き直すと以下のようになります。ハードコーディングしていた integration secret がパラメーター化されています。

{
  "inputs": [
    {
      "description": "Notion Integration Secret",
      "id": "notion-integration-secret",
      "password": true,
      "type": "promptString"
    }
  ],
  "servers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server@v1.7.0"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ${input:notion-integration-secret}\", \"Notion-Version\": \"2022-06-28\" }"
      }
    }
  }
}

早速 MCP サーバーを起動してみましょう。

MCPサーバーを起動する

すると integration secret を入力するプロンプトが表示されます。

integration secret を入力するプロンプトが表示される

integration secret を入力して MCP サーバーを起動しました。試しに適当なプロンプトを入力してみます。

試しに適当なプロンプトを入力してみる

MCP サーバーが正常に動作していることが確認できました。

inputs ブロックを見ると値が格納されていることがわかります( password=true なので表示される値は * に置換されています)。

入力変数に値が格納されている様子

カーソルを合わせると入力変数の値を編集またはクリアできます。

入力変数を編集またはクリアする

入力した値は Visual Studio Code によって永続化されます。試しに PC を再起動してみましたが integration secret は残っていました。 Visual Studio Code の公式ドキュメント には以下のように書かれています。

// 💡 Inputs are prompted on first server start, then stored securely by VS Code.

具体的にどうセキュアに保存されるのかは確認できませんでした。「入力した資格情報は Visual Studio Code によってローカルに保存される」ということは認識しておきましょう。

おわりに

この記事では Visual Studio CodeMCP サーバーの実行に必要な資格情報をパラメーター化する方法をご紹介しました。最後までお読みいただき、ありがとうございました。

参考資料

私たちは一緒に働いてくれる仲間を募集しています!

電通総研 キャリア採用サイト 電通総研 新卒採用サイト

執筆:@shibata.takao、レビュー:@handa.kenta
Shodoで執筆されました