MCPサーバを作る
AIコーディングが流行っているだけではなく、業務においても実用的になってきている。 よく知られたフレームワークを利用している場合は、Context 7などのMCPサーバを利用することでAIエージェントにドキュメントを渡すことができる。 それによってより精度の高い開発ができる。
しかし、息の長いプロダクトでは独自のフレームワークが利用されていることがしばしばある。 このような場合はドキュメント参照やテンプレート作成ツールを作成し、MCPサーバとして提供するのが有効だと思う。 pythonのライブラリのfast MCPを利用することで簡単にMCPサーバを作成することができる。 今回は、簡単なMCPサーバを作成してみる。
導入
pythonプロジェクト管理はuvで行う。 uvのインストールは以下のようにして行う。
curl -LsSf https://astral.sh/uv/install.sh | sh pythonプロジェクトを以下のように作成する。
uv new some-mcp-server fastMCPをインストールする。
uv add fastmcp uv newのときにmain.pyが作成されているので、そこにロジックを書いていくことにする。
import os
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Some MCP Server")
@mcp.tool()
def some_tool(foo: str) -> str:
"""
MCPサーバのドキュメント。ここのドキュメントはエージェントにMCPのツール説明として渡されるので、ツールの説明を具体的に書くことが重要。
Args:
foo: foo変数について説明を書く。これもAIエージェントにコンテキストとして渡される。
Returns:
ツールの返却値。これもAIエージェントにコンテキストとして渡される。
"""
# なんかの処理
# return する
if __name__ == "__main__":
mcp.run() これでMCPサーバは完成。
MCPツールのデバッグはnpx @modelcontextprotocol/inspectorを利用するのが便利だ。
以下のようにしてブラウザ上でMCPサーバのデバッグができる。
npx @modelcontextprotocol/inspector uv run main.py MCPサーバが作成できたら、MCPのクライアント(vscode, cursor)などでツールの設定を行う。 vscodeの場合は.mcp.jsonファイルを以下のように設定できる。
{
"servers": {
"some-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/some-mcp-server",
"run",
"main.py"
]
}
},
}👈 Go back