最初のMCPサーバーコードを作成する
まずはシンプルなHello World的な機能を持つMCPサーバーを作成して、MCPサーバーの基本的な動作を確認しましょう。
1.基本的なMCPサーバーコードの実装
weather_server.pyファイルを開いて、以下のコードを記述してください:
from mcp.server.fastmcp import FastMCP
# MCPサーバーのインスタンスを作成
mcp = FastMCP("Weather MCP Server")
@mcp.tool()
def hello_weather(name: str = "World") -> str:
"""シンプルな挨拶を返すツール"""
return f"Hello, {name}! Welcome to Weather MCP Server!"
@mcp.tool()
def server_info() -> dict:
"""サーバー情報を返すツール"""
return {
"name": "Weather MCP Server",
"version": "1.0.0",
"description": "天気予報情報を提供するMCPサーバー(開発中)"
}
if __name__ == "__main__":
# MCPサーバーを起動
print("Starting MCP server...")
mcp.run(transport="streamable-http")
2.コードのポイント解説
作成したコードの重要なポイントを説明します:
-
FastMCPクラス:MCP SDKの高レベルAPIで、まずこれをインポートします -
@mcp.tool()デコレータ:関数の上部にこのデコレータを付けることで、MCPツールとして登録します - 型ヒント:引数と戻り値の型を指定することで、MCPクライアントが適切な処理を行えます
- docstring(ドックストリング):トリプルクォート(""")で囲まれた部分で、ツールの説明としてLLMやクライアントが利用します
-
mcp.runメソッド:MCPサーバーを起動するためのメソッドで、トランスポート方式を指定できます
3.MCPサーバーの起動
作成したMCPサーバーを起動します:
uv run weather_server.py
正常に起動すると、以下のような出力が表示されます:
Starting MCP server... INFO: Started server process [41454] INFO: Waiting for application startup. [08/21/25 16:01:14] INFO StreamableHTTP session manager started streamable_http_manager.py:110 INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
重要:下部パネルの「ポート」タブで8000番ポートを「Private」から「Public」に変更してください。これによりCodespacesの外部にあるMCPクライアントからアクセスできるようになります。
MCPクライアントからの接続確認
作成したMCPサーバーの動作を確認するため、2つの方法でテストしてみましょう。
方法1:MCP Inspector
MCP Inspectorは、Anthropicが提供しているMCPサーバーの開発・デバッグに特化したツールです。MCPクライアントとして、開発したMCPサーバーの動作確認ができます。
1.MCP Inspectorのインストールと起動
お手元のPC(Codespaces外)で以下のコマンドを実行してMCP Inspectorを起動します:
npx @modelcontextprotocol/inspector
注意:MCP InspectorはNode.js(v22.7.5以上)環境で動作します。Node.jsがインストールされていない場合は、公式サイトまたはasdfなどのランタイム管理ツールからインストールしてください。
2.接続設定
MCP Inspectorが開いたら、以下の設定で接続します:
- Transport:「Streamable HTTP」を選択
-
URL:URLを以下の形式で入力
-
Codespacesページでのリンクが
https://sturdy-adventure-j4gx7649r66hjpvp.github.devの場合 -
MCP Inspector URL欄への入力値:
https://sturdy-adventure-j4gx7649r66hjpvp-8000.app.github.dev/mcp -
パターン:
https://[codespace-name]-8000.app.github.dev/mcp
-
Codespacesページでのリンクが
3.動作確認
- 「Connect」ボタンをクリック
- 接続が成功すると「Connected」と表示される
-
「Tools」タブの「List Tools」で「
hello_weather」と「server_info」の2つのツールが表示されることを確認 - 各ツールを実行してレスポンスが正しく返されることを確認
方法2:GitHub Copilot(VS Code内で接続)
GitHub CopilotをMCPクライアントとして使用することで、より実用的な環境でテストできます。
GitHub Copilotは、VS Codeをはじめとしたさまざまな開発環境で利用できるAIコーディングアシスタントです。GitHub Copilotのエージェント モードはMCPクライアントとしても機能し、MCPサーバーに接続してツールを呼び出すことができます。
1.GitHub Copilotの準備
GitHub Copilotが利用可能である必要があります:
- GitHub Copilot有料プランをお持ちの場合:そのままご利用ください
- GitHub Copilot Freeプランをお持ちでない場合:GitHub CopilotにアクセスしてFreeプランに登録してください。月に50件までエージェントモードまたはチャットリクエストを行えます。
VS CodeでGitHub Copilot拡張機能が有効になっていることを確認してください。
2.MCP設定ファイルの確認
.vscode/mcp.jsonに以下の設定が記述されていることを確認してください:
{
"servers": {
"weather-mcp-server": {
"url": "http://localhost:8000/mcp",
"type": "http"
}
}
}
この設定により、GitHub Copilotがローカルホストの8000番ポートで動作しているMCPサーバーに接続できるようになります。
3.接続と動作確認
1. VS Codeで設定したサーバー名の上に表示された「起動」ボタンをクリックして接続
2. GitHub Copilotのチャット欄を開く
#server_infoと入力して送信
GitHub Copilotがserver_infoツールを呼び出してよいか確認するモーダルを表示するので「続行」をクリック
3. サーバー情報が正しく出力されることを確認
Tip:GitHub Copilotは入力内容から適切なMCPサーバーとツールを自動で選択しますが、#ツール名形式で明示的にツールの使用を指定することも可能です。
