Demonstração do Servidor MCP について
MCP 経由で公開する API を構築する開発者向けの、Python 製 MCP サーバーのデモです。デコレーターでツールを定義し、URL パターンで動的リソースを提供します。
主な機能
- 01Python デコレーターによるツール作成
- 02URL パターンによる動的リソース公開
- 03既存システムとの連携
- 04サービス開発 API
活用シーン
- 01MCP サーバー用の独自ツール定義
- 02識別子に応じた動的リソースの提供
- 03既存システムのサービスへの接続
MCP 対応
MCP サーバーとして、ツールと動的リソースをクライアントに公開します。MCP Python SDK をベースにしています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーのデモ
概要
このプロジェクトでは、MCP(Mission Control Protocol)サーバーの実装例を紹介します。MCP プロトコルを通じて、リソースやツールに基づく API を作成、管理するためのシンプルで効率的なプラットフォームを提供します。
このコードは、MCP プロトコルの公式 Python 実装である MCP Python SDK をベースにしています。
機能
- Python デコレーターを使った迅速なツールの作成
- URL パターンを使った動的なリソースの公開
- 既存システムとの容易な統合
- サービス開発のための直感的な API
前提条件
- Python 3.12 以降
- pip(Python パッケージマネージャー)
インストール
- リポジトリをクローンします:
git clone https://github.com/seu-usuario/mcp-server-demo.git
cd mcp-server-demo
- 仮想環境を作成します(任意ですが、推奨します):
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
- 依存関係をインストールします:
pip install -e .
使い方
サーバーの実行
python -m server
サーバーはローカルで起動し、server.py ファイルで定義されたエンドポイントを利用できるようになります。
基本的な使用例
加算ツールの使用
curl -X POST "http://localhost:8000/tools/add" -H "Content-Type: application/json" -d '{"a": 5, "b": 10}'
カスタマイズされた挨拶の取得
curl -X GET "http://localhost:8000/resources/greeting/Maria"
開発
プロジェクト構成
mcp-server-demo/
├── server.py # Definição do servidor MCP
├── main.py # Ponto de entrada do aplicativo
├── tests/ # Testes automatizados
│ └── test_server.py # Testes para o servidor
├── pyproject.toml # Dependências e metadados do projeto
└── README.md # Esta documentação
テストの実行
pytest
未対応事項(To-Do)
- テストのバグ:自動テストに既知の問題があり、修正が必要です。テストクライアントの設定に問題があるため、クライアントとの統合テストが失敗する場合があります。
- より多くのユースケースを網羅する追加テストの実装
- API ドキュメントの改善
新しいツールの追加
MCP サーバーに新しいツールを追加するには、デコレーター @mcp.tool() を使用します:
@mcp.tool()
def minha_ferramenta(parametro1: str, parametro2: int) -> str:
"""Descrição da minha ferramenta"""
return f"Resultado: {parametro1} - {parametro2}"
新しいリソースの追加
新しいリソースを追加するには、デコレーター @mcp.resource() を使用します:
@mcp.resource("meu-recurso/{id}")
def obter_recurso(id: str) -> dict:
"""Obtém informações do recurso pelo ID"""
return {"id": id, "nome": f"Recurso {id}"}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。