mcpField
F
fastapi-mcp

fastapi-mcp

ローカル
github.com/KimiJL開発ツール078 週間前に更新

fastapi-mcp について

既存の FastAPI ウェブアプリに MCP サーバーをマウントする Python のサンプルです。連携方法を試す開発者向けに、サンプル MCP クライアントも含みます。

主な機能

  1. 01FastAPI への MCP サーバーのマウント
  2. 02サンプル MCP クライアント
  3. 03Docker によるサーバー起動

活用シーン

  1. 01FastAPI アプリで MCP サーバーをホストする方法の確認
  2. 02付属クライアントによる MCP 通信のテスト

MCP 対応

FastAPI アプリに MCP サーバーをマウントし、通信例を示すクライアントを含みます。README では、現在サーバーをマウントできるのはルートパスのみとされています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"fastapi": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocibuild

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

説明

既存の fastapi サーバーにマウントした Model Context Protocol サーバーを示す、シンプルなウェブアプリとクライアントの例です。

Model Context Protocol

FastAPI のマウント

ファイル

./src/main.py -> メインの fastapi サーバーアプリ

./src/mcp.py -> mcp サブサーバーアプリのロジック

./client/client.py -> mcp クライアントライブラリを使用した通信ロジックの一部を示すサンプルクライアント

セットアップ

Docker を使用してサーバーを起動する

docker build -t fastapi-mcp .
docker run -p 8000:8000 --net=host fastapi-mcp

Python 環境をセットアップしてクライアントを実行する

pip install -r requirements.txt
python client/client.py

# to run server as well without docker
uvicorn src.main:app

既知の問題

MCP サーバーはルート「/」にしかマウントできません

GitHub の Issue

現在、MCP サーバーがルート「/」にマウントされている場合にのみ動作するという、MCP python sdk の制限があります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。