MCP Server について
MCP Serverは、計算、天気、ウェブ検索を提供するFastAPIベースのMCP実装です。HTTP API経由でモデルに外部ツールを使わせたい開発者向けで、リクエスト検証とSwagger UIのドキュメントを備えています。
主な機能
- 01計算、天気、検索ツール
- 02FastAPIベースのREST API
- 03Pydanticによるリクエスト検証
- 04非同期リクエスト処理
- 05Swagger UIドキュメントの自動生成
活用シーン
- 01ツール呼び出しによる算術処理
- 02指定した場所の天気確認
- 03API経由でのウェブ検索
MCP 対応
MCPを実装し、計算、天気、検索ツールをMCPクライアントに提供します。ツールは`/execute`エンドポイント経由で呼び出されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー
MCP サーバーは、Model Context Protocol(MCP)を実装するサーバーであり、大規模言語モデル(LLM)が外部のツールやサービスと標準化された方法でやり取りできるようにします。
機能
- さまざまなツールに対応(calculator、weather、search)
- FastAPI による RESTful API
- Pydantic によるデータ検証
- 効率的な非同期処理
- Swagger UI による API ドキュメントの自動生成
システム要件
- Python 3.8+
- pip(Python パッケージマネージャー)
インストール
- リポジトリをクローンします:
git clone <repository-url>
cd mcp-server
- 仮想環境を作成して有効化します:
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
- 必要なライブラリをインストールします:
pip install -r requirements.txt
サーバーの起動
python main.py
サーバーは次のアドレスで起動します:http://localhost:8000
API エンドポイント
1. ルートエンドポイント
- URL:
/ - Method: GET
- Description: サーバーの情報と、対応しているツールの一覧を返します
2. ツールの実行
- URL:
/execute - Method: POST
- Description: 指定されたパラメーターを使ってツールを実行します
- Request Body:
{
"tool_name": "calculator",
"parameters": {
"operation": "add",
"numbers": [1, 2, 3]
},
"context": {}
}
対応しているツール
1. Calculator
- 基本的な計算を実行します
- パラメーター:
operation:「add」または「multiply」numbers:計算する数値の配列
2. Weather
- 指定した場所の天気情報を取得します
- パラメーター:
location:場所の名前
3. Search
- ウェブ検索を実行します
- パラメーター:
query:検索キーワード
API ドキュメント
http://localhost:8000/docs にアクセスすると、Swagger UI で完全な API ドキュメントを確認できます。
開発
新しいツールの追加
SUPPORTED_TOOLSにツール名と説明を追加しますprocess_tool_requestに新しい処理関数を追加します- 新しいツール専用の処理関数を作成します
テストの実行
pytest
ライセンス
MIT License
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。