MCP Everything について
MCP Everythingは、MCPプロトコル機能のデモとテスト用サーバーです。TypeScriptとPythonの実装があり、MCPクライアント開発者向けにツール、リソース、プロンプト、サンプリング、ログ機能を扱います。
主な機能
- 01エコーと加算のツール
- 02長時間処理の進捗通知
- 03LLMサンプリング例
- 04テキストとバイナリのリソース
- 05プロンプトとログの例
活用シーン
- 01MCPクライアントのツール呼び出しテスト
- 02リソースのページネーションと購読の確認
- 03プロンプト引数処理のテスト
- 04サンプリングとログ連携のデモ
MCP 対応
MCPクライアントが接続してテストできるよう、ツール、リソース、プロンプト、サンプリング、ログ機能を実演します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Everything
注記: このプロジェクトは、単独で動作する実装を作成するために https://github.com/modelcontextprotocol/servers/tree/main/src/everything から抽出されました。
この MCP サーバープロジェクトは、Model Context Protocol(MCP)のさまざまな機能を実演します。TypeScript と Python によるサーバー実装が含まれており、MCP クライアントの開発者向けのテストサーバーとして機能します。どちらの実装も機能の同等性を目指しており、プロンプト、ツール、リソース、サンプリング、ロギングなどの機能を紹介します。
共通機能
ツール
-
echo- 入力メッセージをそのまま返すシンプルなツール
- 入力:
message(string):そのまま返すメッセージ
- 戻り値:エコーされたメッセージを含むテキストコンテンツ
-
add- 2 つの数値を加算します
- 入力:
a(number):最初の数値b(number):2 番目の数値
- 戻り値:加算結果のテキスト
-
longRunningOperation- 時間のかかる処理の進捗通知を実演します
- 入力:
duration(number, default: 10):処理時間(秒)steps(number, default: 5):進捗ステップ数
- 戻り値:処理時間とステップ数を含む完了メッセージ
- 実行中に進捗通知を送信します
-
sampleLLM- MCP のサンプリング機能を使用した LLM サンプリング機能を実演します
- 入力:
prompt(string):LLM に送信するプロンプトmaxTokens(number, default: 100):生成する最大トークン数
- 戻り値:生成された LLM の応答
-
getTinyImage- 小さなテスト画像を返します
- 入力は不要です
- 戻り値:Base64 エンコードされた PNG 画像データ
-
printEnv- すべての環境変数を出力します
- MCP サーバーの設定のデバッグに便利です
- 入力は不要です
- 戻り値:すべての環境変数を含む JSON 文字列
-
annotatedMessage- コンテンツに関するメタデータを提供するためにアノテーションを使用する方法を実演します
- 入力:
messageType(enum: "error" | "success" | "debug):さまざまなアノテーションパターンを示すメッセージの種類includeImage(boolean, default: false):サンプル画像を含めるかどうか
- 戻り値:さまざまなアノテーションを含むコンテンツ
リソース
サーバーは、2 つの形式で 100 個のテストリソースを提供します。
-
偶数番号のリソース:
- プレーンテキスト形式
- URI パターン:
test://static/resource/{even_number} - 内容:簡単なテキストの説明
-
奇数番号のリソース:
- バイナリブロブ形式
- URI パターン:
test://static/resource/{odd_number} - 内容:Base64 エンコードされたバイナリデータ
リソースの機能:
- ページネーションに対応しています(1 ページあたり 10 項目)
- リソースの更新を購読できます
- リソーステンプレートを実演します
- 購読中のリソースを 5 秒ごとに自動更新します
プロンプト
-
simple_prompt- 引数なしの基本的なプロンプト
- 戻り値:単一のメッセージ交換
-
complex_prompt- 引数処理を実演する高度なプロンプト
- 必須の引数:
temperature(number):温度設定
- 任意の引数:
style(string):出力スタイルの指定
- 戻り値:画像を含む複数ターンの会話
ロギング
MCP のロギング機能を実演するため、サーバーは 15 秒ごとにランダムなレベルのログメッセージを送信します。
TypeScript の実装
場所: typescript/
インストール
ローカル開発
# Clone the repository (if not already done)
# git clone https://github.com/modelcontextprotocol/mcp-everything.git
# cd mcp-everything
# Navigate to the TypeScript directory from the repository root
cd typescript
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start
グローバルインストール
# Navigate to the TypeScript directory:
# cd path/to/mcp-everything/typescript
# Then install globally from the local package:
npm install -g .
# Run the server
# (The command name will depend on the 'bin' field in typescript/package.json,
# e.g., 'mcp-everything-ts' or 'mcp-everything' if modified)
# Example:
# mcp-everything-ts
注:グローバルインストールの機能と正確なコマンドは、typescript/package.json 内の bin 設定によって異なります。
Docker
# Build the Docker image from the repository root
# (Assumes Dockerfile is updated to handle APP_DIR build argument or typescript context)
docker build -t mcp-everything-ts -f Dockerfile . --build-arg APP_DIR=typescript
# Run the container
docker run -it mcp-everything-ts
MCP クライアント(例:Claude Desktop)での使用
クライアントの MCP サーバー設定に追加します。パスの調整が必要になる場合があります。
公開済みパッケージ(例:mcp-everything-ts)を npx で使用する場合:
{
"mcpServers": {
"everything-ts-npx": {
"command": "npx",
"args": [
"-y",
"mcp-everything-ts"
// Replace 'mcp-everything-ts' with the actual package name if different
]
}
}
}
ローカルビルドから実行する場合(cwd が typescript ディレクトリであることを確認してください):
{
"mcpServers": {
"everything-ts-local": {
"command": "npm",
"args": [
"start"
],
// Ensure 'cwd' points to the 'typescript' directory of this project.
"cwd": "path/to/mcp-everything/typescript"
}
}
}
"path/to/mcp-everything/typescript" を正しいパスに置き換えてください。
Python の実装
場所: python/
インストールとセットアップ
- リポジトリのルートから、Python ディレクトリに移動します。
cd python - (推奨)仮想環境を作成して有効化します。
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate - 依存関係をインストールします。
pip install -r requirements.txt
サーバーの実行
python ディレクトリ内から(仮想環境を使用する場合は有効化した状態で)実行します。
python mcp_server.py
サーバーは標準入出力経由で MCP メッセージを受信します。
MCP クライアント(例:Claude Desktop)での使用
設定例:
{
"mcpServers": {
"everything-py": {
"command": "python", // Or "path/to/python/venv/bin/python"
"args": ["mcp_server.py"],
"cwd": "path/to/mcp-everything/python" // Ensure this is the correct path
}
}
}
"path/to/mcp-everything/python" を正しいパスに置き換えてください。
GitHub Actions を使ったサーバーのテスト
注記: 実装は進行中です。サーバーはまだ完全には機能しません。
- テスト 1
- テスト 2
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。