MCP Server Demo について
MCP Server Demoは、プロトコル実装を学ぶ開発者向けのPython製MCPサーバーのデモです。サンプルツール、セッションのコンテキスト管理、WebSocket通信に加え、サンプルクライアントも含みます。
主な機能
- 01基本的なMCPサーバー実装
- 02サンプルツール連携
- 03セッションのコンテキスト管理
- 04WebSocket通信
- 05サンプルクライアント
活用シーン
- 01MCPサーバーの構成確認
- 02ツールルーティングとコンテキストのテスト
- 03WebSocketクライアント通信の試用
MCP 対応
ツール登録、メッセージ処理、セッションのコンテキスト管理を備えたMCPサーバーを実装しています。シンプルなサンプルクライアントも含みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーのデモ
このプロジェクトでは、Model Context Protocol(MCP)サーバーの実装を紹介します。MCP は、コンテキストを認識しながら AI モデルと外部のツール/サービス間の通信を円滑にするために設計されたプロトコルです。
機能
- 基本的な MCP サーバーの実装
- ツール連携の例
- コンテキスト管理のデモ
- WebSocket ベースのリアルタイム通信
- シンプルなクライアントの例
プロジェクト構成
mcp-server-demo/
├── src/
│ ├── server.py # Main MCP server implementation
│ ├── tools/ # Tool implementations
│ │ ├── __init__.py
│ │ └── basic_tools.py
│ ├── context/ # Context management
│ │ ├── __init__.py
│ │ └── manager.py
│ └── utils/ # Utility functions
│ ├── __init__.py
│ └── helpers.py
├── examples/ # Example usage
│ ├── client.py
│ └── tools_demo.py
├── tests/ # Test cases
│ └── test_server.py
├── requirements.txt # Project dependencies
└── README.md # This file
インストール
- リポジトリをクローンします:
git clone https://github.com/tian1ll1/mcp-server-demo.git
cd mcp-server-demo
- 仮想環境を作成します(推奨):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- 依存関係をインストールします:
pip install -r requirements.txt
使用方法
- MCP サーバーを起動します:
python src/server.py
- サンプルクライアントを実行します:
python examples/client.py
仕組み
MCP サーバーは、次の主要なコンポーネントを実装しています:
- コンテキスト管理:各セッションの会話履歴と関連するコンテキストを保持します。
- ツールレジストリ:利用可能なツールとその仕様を管理します。
- メッセージ処理:受信したメッセージを処理し、適切なツールに振り分けます。
- WebSocket サーバー:クライアントとのリアルタイム通信を提供します。
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。