Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

Copilot SDK での MCP サーバーの使用

MCP サーバーを Copilot SDK と統合して、外部ツールを使用してアプリケーションの機能を拡張します。

この機能を使用できるユーザーについて

GitHub Copilot SDK は、すべての Copilot プランで使用できます。

メモ

          Copilot SDK は現在 パブリック プレビューです。 機能と可用性は変更される場合があります。
          Copilot SDKは **MCP サーバー** (モデル コンテキスト プロトコル) と統合して、アシスタントの機能を外部ツールで拡張できます。 MCP サーバーは個別のプロセスとして実行され、会話中に Copilot 呼び出すことができるツール (関数) を公開します。

MCP とは

          [モデル コンテキスト プロトコル (MCP)](https://modelcontextprotocol.io/) は、AI アシスタントを外部のツールやデータ ソースに接続するためのオープンな標準です。 MCP サーバーは、コードまたはスクリプトの実行、データベースのクエリ、ファイル システムへのアクセス、外部 API の呼び出しなどを実行できます。

サーバーの種類

SDK では、次の 2 種類の MCP サーバーがサポートされています。

タイプ説明利用シーン
Local/Stdioサブプロセスとして実行され、stdin/stdout 経由で通信するローカル ツール、ファイル アクセス、カスタム スクリプト
HTTP/SSEHTTP 経由でアクセスされるリモート サーバー共有サービス、クラウドでホストされるツール

コンフィギュレーション

import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient();
const session = await client.createSession({
    model: "gpt-5",
    mcpServers: {
        // Local MCP server (stdio)
        "my-local-server": {
            type: "local",
            command: "node",
            args: ["./mcp-server.js"],
            env: { DEBUG: "true" },
            cwd: "./servers",
            tools: ["*"],  // "*" = all tools, [] = none, or list specific tools
            timeout: 30000,
        },
        // Remote MCP server (HTTP)
        "github": {
            type: "http",
            url: "https://api.githubcopilot.com/mcp/",
            headers: { "Authorization": "Bearer ${TOKEN}" },
            tools: ["*"],
        },
    },
});

Python、Go、.NET の例については、 github/copilot-sdk リポジトリを参照してください。 Java については、 github/copilot-sdk-java リポジトリを参照してください。

クイック スタート: ファイルシステム MCP サーバー

公式の @modelcontextprotocol/server-filesystem MCP サーバーを使用した完全な作業例を次に示します。

import { CopilotClient } from "@github/copilot-sdk";

async function main() {
    const client = new CopilotClient();

    // Create session with filesystem MCP server
    const session = await client.createSession({
        mcpServers: {
            filesystem: {
                type: "local",
                command: "npx",
                args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
                tools: ["*"],
            },
        },
    });

    console.log("Session created:", session.sessionId);

    // The model can now use filesystem tools
    const result = await session.sendAndWait({
        prompt: "List the files in the allowed directory",
    });

    console.log("Response:", result?.data?.content);

    await session.disconnect();
    await client.stop();
}

main();

ヒント

          [MCP サーバー ディレクトリから任意の MCP サーバー](https://github.com/modelcontextprotocol/servers)を使用できます。 一般的なオプションには、 `@modelcontextprotocol/server-github`、 `@modelcontextprotocol/server-sqlite`、 `@modelcontextprotocol/server-puppeteer`などがあります。

構成オプション

ローカル/Stdio サーバー

財産タイプ必須説明
type
          `"local"` または `"stdio"` | いいえ | サーバーの種類 (既定値はローカル) |

| command | string | はい | 実行するコマンド | | args | string[] | はい | コマンド引数 | | env | object | いいえ | 環境変数 | | cwd | string | いいえ | 作業ディレクトリ | | tools | string[] | いいえ | すべてを有効にするツール (["*"] すべて有効), ([] なし) | | timeout | number | いいえ | タイムアウト (ミリ秒) |

リモート サーバー (HTTP/SSE)

財産タイプ必須説明
type
          `"http"` または `"sse"` | はい | サーバーの種類 |

| url | string | はい | サーバー アドレス | | headers | object | いいえ | HTTP ヘッダー (認証など) | | tools | string[] | いいえ | 有効にするツール | | timeout | number | いいえ | タイムアウト (ミリ秒) |

Troubleshooting

ツールが表示されない、または呼び出されていない

  1.        **MCP サーバーが正しく起動していることを確認**します。コマンドと引数が正しいことを確認し、起動時にサーバー プロセスがクラッシュしないことを確認します。 stderr でエラー出力を探します。
    
  2.        **ツールの構成の確認** - `tools` が `["*"]` に設定されているか、必要な特定のツールが一覧表示されていることを確認します。 空の配列 `[]` は、ツールが有効になっていないということです。
    
  3.        **リモート サーバーの接続を確認**します。URL にアクセスできることを確認し、認証ヘッダーが正しいことを確認します。
    

一般的な問題

問題点ソリューション
"MCP サーバーが見つかりません"コマンド パスが正しく、実行可能であることを確認する
"接続が拒否されました" (HTTP)URL を確認し、サーバーが実行されていることを確認します
"タイムアウトエラー"
          `timeout`値を増やすか、サーバーのパフォーマンスを確認する |

| ツールは機能しますが、呼び出されません | プロンプトにツールの機能が明確に必要であることを確認する |

詳細については、次を参照してください。