はじめに
今回の内容は、以下 2つをシンプルに組み合わせて、とりあえず雑に試してみたというものです。
MCPに関するお試し
最近、MCP関連のお試しをちょこちょこやっています。
●「mcp user:youtoy」の検索結果 - Qiita
https://qiita.com/search?q=mcp%20user%3Ayoutoy&sort=created
その中の一部を抜粋
例えば、以下の内容などです。
●Mastra の AgentNetwork を使って「複数エージェントと MCPサーバーの組み合わせ」を試す - Qiita
https://qiita.com/youtoy/items/8a20d6c1a2af6d82826c
●シンプルな自作MCPサーバーを VS Code に設定して GitHub Copilot の Agent mode で利用(Node.js で TypeScript を直接扱う) - Qiita
https://qiita.com/youtoy/items/1d46724e40ab96607b18
今回の内容
今回、以下のバージョンで対応された MCP の Streamable HTTP transport を使ったものを試してみます。
●Release 1.10.0 · modelcontextprotocol/typescript-sdk
https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/1.10.0
利用する MCPサーバー(Streamable HTTP transport を使ったもの)の公式サンプル
公式の MCPサーバーのサンプル(Streamable HTTP transport を使ったもの)が以下にあるようです。
●modelcontextprotocol/typescript-sdk: The official Typescript SDK for Model Context Protocol servers and clients
https://github.com/modelcontextprotocol/typescript-sdk?tab=readme-ov-file#streamable-http
その中のシンプルな実装のサーバーを流用してみます。
●typescript-sdk/src/examples/server/simpleStreamableHttp.ts at main · modelcontextprotocol/typescript-sdk
https://github.com/modelcontextprotocol/typescript-sdk/blob/main/src/examples/server/simpleStreamableHttp.ts
サーバーを起動
上記をローカルにもってきて、サーバーを起動してみます。
適当な手順になってしまいますが、コードをローカルにもってきて、express を使えるようにして、以下のコマンドでサーバーを起動しました。
npx tsx src/examples/server/simpleStreamableHttp.ts
VS Code側の準備
VS Code側の準備を進めます。VS Code での設定は、以下を使えば良さそうです。
●April 2025 (version 1.100)
https://code.visualstudio.com/updates/v1_100#_mcp-support-for-streamable-http
MCPサーバーの設定を追加する
自身の VS Code のせってに以下を追加しました。
{
"servers": {
"my-mcp-server": {
"url": "http://localhost:3000/mcp"
}
}
}
そして、以下のようにサーバーを起動しました。
ローカルサーバーが 3000番ポートで起動した状態になりました。
GitHub Copilot で試す
あとは、GitHub Copilot のエージェントモードで上記を使います。ツールは複数あるようですが、以下のシンプルな挨拶をするものを使いました。
greetツールを使ってみる
以下、GitHub Copilot で上記ツールを利用するよう依頼して、それに対する応答を得た状態の画面です(※ 2回分)。
ツールの出力が最終の応答に活用された感じがないですが、とりあえずツール「greet」が使われているのが確認できました。
今回はただ動かしてみただけという感じになりましたが、Streamable HTTP transport を利用した MCPサーバー(公式の TypeScript SDK で実装されたもの)とクライアント・ホスト(VS Code の GitHub Copilot エージェントモード)とのやりとりを試せました。