MCP Base について
MCP Base は、FastMCP を用いて MCP サーバーを構築するための Python 向けスターターテンプレートです。ツール、プロンプト、リソースをモジュール単位で整理する構成を提供します。新しい Python 製 MCP サーバーを始める開発者を対象としています。
主な機能
- 01STDIO、SSE、HTTP などのトランスポート対応
- 02レジストリを使ったツール・プロンプト・リソースの拡張構造
- 03Pydantic による入力検証
- 04ファイルとディレクトリ操作の許可パスへの制限
- 05Docker 対応と Pytest のテスト例
活用シーン
- 01新しい Python 製 MCP サーバープロジェクトの起点として利用
- 02基底クラスとレジストリを使ったカスタムツールの追加
- 03同一の MCP サーバーを異なるトランスポートで提供
MCP 対応
MCP サーバーを構築するためのテンプレートであり、生成されたサーバーはツール、プロンプト、リソースを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Base
MCP プロジェクトのための堅牢で基礎となる出発点です。MCP Base は、Python で Model Context Protocol(MCP)サーバーを構築するための、本番環境ですぐに使える拡張可能なテンプレートです。LLM やエージェント型クライアントにツール、プロンプト、リソースを公開する MCP サーバーをすばやく作成、拡張、デプロイできます。
🚀 これは何ですか?
これは特定のサーバー実装ではなく、Python のスターターベースです。Python で独自の MCP サーバーを構築するための、モジュール式でドキュメントが充実した基盤を提供します。複数のトランスポートレイヤー(STDIO、SSE、HTTP など)に対応し、セキュリティ、拡張性、保守性に関するベストプラクティスを示します。
🏗️ アーキテクチャの概要
.
├── src/
│ ├── base/ # Base classes for tools, prompts, resources
│ ├── tools/ # Example tools (filesystem, API, prompt, etc.)
│ ├── resources/ # Example resources (static/dynamic)
│ ├── prompts/ # Example prompts (text generation, summarization)
│ ├── transports/ # Transport layer implementations & docs
│ │ ├── stdio/
│ │ │ └── README.md
│ │ ├── sse/
│ │ │ └── README.md
│ │ └── ...
│ ├── config.py # Configuration and environment management
│ ├── server.py # Server instantiation and registration
│ └── main.py # Entrypoint: selects transport, starts server
├── tests/ # Example tests for tools/resources
├── Dockerfile # Containerized deployment
├── requirements.txt / pyproject.toml
├── README.md # This file
├── CONTRIBUTING.md
└── ...
✨ 特徴
- 複数のトランスポートに対応: STDIO、SSE、HTTP など(
/src/transports/を参照) - ツール/プロンプト/リソースのモジュール化: クラスを作成して登録するだけで新機能を追加できます
- 型安全な入力検証: スキーマに Pydantic を使用
- セキュリティのベストプラクティス: ディレクトリのサンドボックス化、入力検証、エラー処理
- 拡張性と保守性: 関心の分離、基底クラス、レジストリを備えた明確な構成
- 本番環境ですぐに利用可能: ロギング、環境管理、Docker のサポート
- 充実したドキュメント: ユーザーとコントリビューター向け
🛠️ はじめに
1. 依存関係をインストールする
pip install -r requirements.txt
2. 環境を設定する
.env.example を .env にコピーし、必要な値を入力します。
3. サーバーを起動する
STDIO トランスポート:
python main.py --transport=stdio
SSE/HTTP トランスポート:
詳細は /src/transports/sse/README.md と /src/transports/http/README.md を参照してください。
🧩 ツール、プロンプト、リソースの追加
ツール
/src/tools/にBaseToolを継承する新しいクラスを作成します- 必須メソッドと入力スキーマを実装します
- ツールレジストリにツールを登録します
プロンプト
/src/prompts/にBasePromptを継承する新しいクラスを作成します- 必須メソッドと入力スキーマを実装します
- プロンプトレジストリにプロンプトを登録します
リソース
/src/resources/に静的または動的なリソースを追加します- リソースレジストリに登録します
🔌 対応トランスポート
- STDIO: CLI およびエージェント型の連携向け(
/src/transports/stdio/README.mdを参照) - SSE: サーバー送信イベントおよび Web クライアント向け(
/src/transports/sse/README.mdを参照) - HTTP: RESTful または Web ベースの連携向け(
/src/transports/http/README.mdを参照)
各トランスポートはモジュール化されており、拡張または置き換えが可能です。
🛡️ セキュリティとベストプラクティス
- すべてのファイルおよびディレクトリ操作は、許可されたパス内に制限されています
- すべてのツール/リソース入力に対して入力検証が適用されます
- 一貫性があり、ユーザーにわかりやすいエラー処理を行います
- 機密性の高い設定は環境変数で管理します
🧪 テスト
- テストの例は
/tests/に用意されています - テストランナーとして Pytest を使用します
- テストのガイドラインについては CONTRIBUTING.md を参照してください
🤝 コントリビューション
コントリビューションを歓迎します!ガイドライン、コードスタイル、PR の手順については CONTRIBUTING.md を参照してください。
📚 参考資料
📝 ライセンス
MIT ライセンスです。詳細は LICENSE を参照してください。
💬 コミュニティとサポート
MCP Base は、新しい Python MCP サーバープロジェクトを始める際に推奨される出発点です。フォークして拡張し、改善にご協力ください!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。