mcpField
M
MCP Test Servers

MCP Test Servers

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

MCP Test Servers について

MCP Test Servers は、意図的に多様な挙動を持つ MCP テスト サーバーのコレクションで、npx で起動できます。MCP クライアントやサーバーの開発者を対象に、プロトコルの挙動、スキーマの問題、認証フローの再現に使用されます。

主な機能

  1. 01ツールのパラメーター型、リソース、プロンプトのテストサーバー
  2. 02OAuth ディスカバリーやセッション問題を再現するサーバー
  3. 03テスト計画付きの総合テストサーバー everything
  4. 04MCP Apps と elicitation の例

活用シーン

  1. 01ツールスキーマに対するクライアントの互換性確認
  2. 02Cursor 関連の OAuth や整数検証の不具合の再現
  3. 03テスト計画に沿った MCP 機能の段階的な検証

MCP 対応

本プロジェクト自体が MCP サーバー群であり、各サーバーはテスト用のツール、リソース、プロンプト、または障害シナリオを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP テストサーバー

Model Context Protocol(MCP)を実装したテストサーバーのコレクションです。

🚀 クイックインストールギャラリー

Cursor から直接使えるワンクリックインストールボタンは、**GitHub Pages ギャラリー**をご覧ください。

手動インストール

npx -y @msfeldstein/mcp-test-servers <server>

開発

開発には cli.js を直接使用してください。

{
  "mcpServers": {
    "test-server": {
      "command": "/Users/feldstein/Source/mcp-test-servers/src/cli.js",
      "args": [
        "ping"
      ],
      "env": {}
    }
  }
}

利用可能なサーバー

  • all-types: MCP でサポートされるさまざまなツールパラメーター型を実演します
  • bad-param: 意図的に不正なパラメーター名を設定したサーバーです
  • big-response: 大きなレスポンスを返すサーバーです
  • broken-tool: 意図的に壊れたツールを含むサーバーです
  • broken-schema: トップレベルで oneOf/allOf/anyOf を使用する、無効な JSON スキーマを持つサーバーです
  • broken-schema-fastmcp: トップレベルで oneOf/allOf/anyOf を使用する、本当に壊れたスキーマを持つ FastMCP サーバーです
  • crash-on-startup: 起動時にクラッシュするサーバーです
  • combined: ツールとリソースを含むサーバーです
  • duplicate-names: リソース名が重複しているサーバーです
  • elicitation: MCP のエリシテーション機能を実演するサーバーです。構造化フォームを通じてユーザー情報(名前、年齢、連絡先、設定)を要求します
  • enum-param: 列挙型文字列パラメーターを持つツールです
  • integer-anyof-bug: anyOf スキーマにおける Cursor の整数検証バグを再現します。{"anyOf": [{"type": "integer"}, {"type": "null"}]} を持つパラメーターは、'got number' エラーで検証に失敗します
  • env-check: SHOULD_RUN 環境変数が正しく渡されているか確認します
  • env-echo: 環境変数をそのまま返します
  • gpt5-breaker: 複雑なパラメーター検証を使用する SQL クエリ実行ツールを備えたサーバーです
  • graphing: show-graphing-ui を備えた MCP Apps サーバーです。UI は Chart.js を使ってインラインチャートを描画します
  • headers: HTTP ヘッダー情報を安全に返す FastMCP サーバーです
  • instructions: instructions と、値が 42 の場合に成功を返す makeRequest ツールを備えたサーバーです
  • image: ソニック・ザ・ヘッジホッグの画像を返すツールです
  • long-description: 環境変数で設定した非常に長い説明を公開します
  • long-running: 20 秒のタスク中、2 秒ごとに進捗通知を送信するサーバーです
  • many-resources: 複数のリソースを持つサーバーです
  • many-tools: それぞれ 'ack' を返す 100 個のツールを備えたサーバーです
  • math: 基本的な数学関数のツール(add、subtract、multiply、divide、power、sqrt、factorial)を備えたサーバーです
  • missing-type: パラメータースキーマに必須の 'type' フィールドがないツールを持つサーバーです
  • missing-type-fastmcp: ツールスキーマに 'type' フィールドが実際に欠けている FastMCP サーバーです
  • named: MCP_SERVER_NAME 環境変数で名前を設定できるサーバーです
  • notion-gemini-repro: 一部のモデルで問題が発生する、複雑なネストされたスキーマを持つサーバー(Notion API の再現ケース)- インラインスキーマ
  • notion-gemini-repro-raw: 一部のモデルで問題が発生する、複雑なネストされたスキーマを持つサーバー(Notion API の再現ケース)- 正確な生スキーマオブジェクト
  • number-param: 数値パラメーターを持つツールです
  • oauth-repro: 適切なディスカバリーエンドポイントを使用して OAuth 2.0 フローの問題を再現します。リソースサーバーはポート 3001、認証サーバーはポート 3002 で実行されます
  • oauth-debug: 包括的なログ記録とエンドポイント追跡機能を備えた OAuth デバッグサーバーです。リソースサーバーはポート 3003、認証サーバーはポート 3004 で実行されます
  • oauth-callback-test: Cursor 1.4.x のエンドポイントディスカバリーバグをシミュレートする OAuth コールバックテストサーバーです。ポート 3005 で実行されます
  • oauth-edge-case: ディスカバリーバグを引き起こすエッジケースを設定できる OAuth サーバーです。リソースサーバーはポート 3006、認証サーバーはポート 3007 で実行されます
  • oauth-bug-trigger: Cursor 1.4.x の OAuth ディスカバリーバグを正確に再現するために設計された専用サーバーです。リソースサーバーはポート 3008、認証サーバーはポート 3009 で実行されます
  • optional-param: オプションのパラメーターを持つツールです
  • pattern-param: パターンマッチを行うパラメーターを持つツールです
  • ping: 'pong' と応答するシンプルなサーバーです
  • prompts: 2 つのプロンプトを持つサーバーです。静的な挨拶と、キャラクター名および場所のパラメーターを使う動的なストーリー生成機能があります
  • raw-broken: 実際に壊れたスキーマを持つ、生の JSON-RPC MCP サーバーです(フレームワークによる検証なし)
  • resource: リソースサーバーの実装です
  • resource-lister: 5 つのリソースを公開し、それらを一覧表示するツールを持つサーバーです
  • roots-echo: クライアントから提供された roots をそのまま返し、MCP の roots 機能を実演するサーバーです
  • session-inactivity: セッション管理をテストするため、30 秒間操作がないとセッションが期限切れになる Streamable HTTP サーバーです
  • session-management: MCP のセッション管理動作を実装する HTTP サーバーです。セッション ID を割り当て、リクエストでの提示を必須とし、終了済みセッションには 404 を返します
  • sse-timeout: SSE 接続を確立しますが、クライアントの再接続をテストするため、30 秒後にタイムアウトする Streamable HTTP サーバーです
  • stderr: stderr にログを出力するサーバーです
  • structured-output: シンプルなエコーツールを使って structuredContent レスポンスを実演します
  • ui: show-ui を備えた MCP Apps サーバーです。描画された UI のボタンは get-time ツールを呼び出し、現在時刻をインラインで表示します
  • dual-content: 同じレスポンス内で structuredContent と content に異なる出力を返す例を実演します
  • everything: MCP のすべての機能をテストする包括的なサーバーです。パラメーターあり/なしのツール、リソース、プロンプト、エリシテーション、動的ツール、roots のエコー、環境変数を備えています

🚀 クイックスタート:自動テスト

すぐに包括的なテストを実施するには、組み込みの AI エージェントテストプロンプトを使用します。

  1. everything サーバーを起動します:npx @msfeldstein/mcp-test-servers everything
  2. Cursor でスラッシュコマンドを使用します:/test-everything
  3. AI が 20 個すべてのテスト手順を自動で実行し、完全な検証レポートを提示します

Everything サーバーのテスト計画

everything サーバーは、すべての MCP 機能を包括的にテストできるように設計されています。各機能のテスト方法は次のとおりです。

ツールのテスト

0. セットアップ
{
    "mcpServers": {
        "everything": {
            "command": "npx @msfeldstein/mcp-test-servers everything",
            "env": {
                "MY_ENV_VAR": "My Special Token"
            }
        }
    }
}
1. パラメーターを受け取るツール

ツール: echo_with_params テスト: さまざまなパラメーターの組み合わせで呼び出します。


- message: "Hello World", repeat_count: 3, uppercase: true
- message: "Test", repeat_count: 1, uppercase: false
- message: "MCP" (using defaults)

期待される結果: 指定した回数の繰り返しと大文字・小文字の変換を行ったメッセージがエコーされます。

2. パラメーターを受け取らないツール

ツール: simple_ping テスト: パラメーターを指定せずに呼び出します 期待される結果: "pong" が返されます

3. 複合コンテンツを返すツール

ツール: get_mixed_resources テスト: ツールを呼び出します 期待される結果: 同じ応答内でテキストコンテンツと小さなテスト画像の両方が返されます

4. エリシテーションのテスト

ツール: test_all_elicitations テスト: ツールを呼び出し、すべてのプロンプトに応答します。

  • 文字列入力(名前)
  • ブール値入力(プログラミングの好み)
  • 数値入力(経験年数、0~50)
  • 列挙型入力(プログラミング言語の選択) 期待される結果: すべての入力が収集され、概要が表示されます
5. 動的なツール管理

ツール: toggle_dynamic_tool テスト:

  1. toggle_dynamic_tool を呼び出して、動的ツールを有効にします
  2. dynamic_feature ツールが使用可能になったことを確認します
  3. オプションのアクションパラメーターを指定して dynamic_feature を呼び出します
  4. toggle_dynamic_tool を再度呼び出して、無効にします
  5. dynamic_feature ツールが使用できなくなったことを確認します 期待される結果: ツールの利用可否が動的に変化します
6. MCP Roots エコー

ツール: echo_mcp_roots テスト: ツールを呼び出します 期待される結果: クライアントから提供された MCP roots の JSON 表現が返されます

7. 環境変数のエコー

ツール: echo_env_var テスト: プロンプト:「echo_env_var MCP ツールを呼び出してください」 期待される結果: "MY_ENV_VAR = My Special Token" が返されます

8. 長時間実行される進捗表示ツール

ツール: long_running_progress テスト: オプションの task_name パラメーターを指定して呼び出します 期待される結果: 2 秒ごとに進捗を更新しながら 20 秒間実行され、次の内容が表示されます。

  • 0 から 10 までの進捗(合計ステップ数)
  • 各ステップの説明メッセージ
  • 最終的な完了メッセージ
  • クライアントが進捗通知を受信します

リソースのテスト

9. テキストリソース

リソース: everything://docs.txt テスト: リソースをリクエストします 期待される結果: サーバーに関する包括的なドキュメントが返されます

10. 画像リソース

リソース: everything://test-image.png テスト: リソースをリクエストします 期待される結果: PNG 形式の小さなテスト画像が返されます

プロンプトのテスト

11. パラメーターを受け取らないプロンプト

プロンプト: simple-greeting テスト: /sim と入力すると /simple-greeting が候補に表示されます。送信します。 期待される結果: Everything Server に関する親しみやすい挨拶メッセージが返されます

12. パラメーターを受け取るプロンプト

プロンプト: personalized-message テスト: /personalized-message を送信します。

  • name:「Alice」
  • topic:「AI Development」 期待される結果: Alice と AI Development に言及する、パーソナライズされたメッセージが返されます
13. AI エージェントテストプロンプト

プロンプト: test-everything テスト: Cursor でこのプロンプトをスラッシュコマンドとして使用します:/test-everything 期待される結果: AI エージェントがすべての MCP 機能を体系的にテストするための、包括的なステップごとのテスト手順が返されます 使用方法: 自動テストに最適です。AI が 20 個すべてのテスト手順を自動で実行し、完全な検証レポートを提示します

テストの完全な手順

  1. セットアップ: 環境に MY_ENV_VAR="My Special Token" を設定します
  2. 基本ツール: simple_ping と `echo_with_params`` をテストします
  3. 混合コンテンツ: get_mixed_resources をテストします
  4. エリシテーション: test_all_elicitations を最後まで実行します
  5. 動的ツール: 動的ツールのオン/オフを切り替えて、利用可能かどうかをテストします
  6. システム情報: echo_mcp_roots と echo_env_var をテストします
  7. 長時間実行: 進行状況の通知を使用して long_running_progress をテストします
  8. リソース: テキストと画像の両方のリソースを取得します
  9. プロンプト: パラメーターありとパラメーターなしの両方のプロンプトをテストします

この包括的なテストにより、すべての MCP プロトコル機能が正しく動作していることを確認できます。

コメント

MCP は初めてですか?

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

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