mcpField
M
MCP Base

MCP Base

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

MCP Base について

MCP Base は、FastMCP を用いて MCP サーバーを構築するための Python 向けスターターテンプレートです。ツール、プロンプト、リソースをモジュール単位で整理する構成を提供します。新しい Python 製 MCP サーバーを始める開発者を対象としています。

主な機能

  1. 01STDIO、SSE、HTTP などのトランスポート対応
  2. 02レジストリを使ったツール・プロンプト・リソースの拡張構造
  3. 03Pydantic による入力検証
  4. 04ファイルとディレクトリ操作の許可パスへの制限
  5. 05Docker 対応と Pytest のテスト例

活用シーン

  1. 01新しい Python 製 MCP サーバープロジェクトの起点として利用
  2. 02基底クラスとレジストリを使ったカスタムツールの追加
  3. 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 サーバープロジェクトを始める際に推奨される出発点です。フォークして拡張し、改善にご協力ください!

コメント

MCP は初めてですか?

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

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