Skip to main content
Glama
pardovot

mcp-flightcheck

by pardovot

mcp-flightcheck

ユーザーに代わってあなたのMCPサーバーを破壊しようと試みます。通常のクライアント起動を実行した後、クライアントが通常行わないこと、つまりツール名なしの呼び出し、未知のメソッド、必須引数が欠落したツール呼び出しなどを送信し、クラッシュ、ハング、本来実行されるべきでないツールの実行を監視します。各発見項目にはその根拠となる仕様節が引用されたスコアカードが生成され、CI用に非ゼロの終了コードが返されます。

私は公式レジストリ内のすべてのリモートサーバー(6,892台)に対してこれを実行しました。接続を受け入れるサーバーのうち、4分の1がチェックに失敗し、7台に1台は完全に壊れています(クラッシュ、ハング、またはツール名を指定しないtools/callを実行)。公式インスペクタは対話型であり、ビルドを失敗させることはないため、これらの問題は出荷前に検出されることはありません。

$ npx mcp-flightcheck node dist/server.js

mcp-flightcheck | my-server 1.4.0 (node dist/server.js)

Protocol conformance
  PASS  Declared capabilities actually work - declared capabilities respond: tools
  PASS  Responds to ping - ping answered
  PASS  Rejects unknown methods - unknown method rejected with -32601 (method not found)
  WARN  Rejects malformed request params - malformed params surfaced as -32603, expected -32602

Tool quality
  PASS  tools/list works - listed 12 tools
  FAIL  Every tool has a valid input schema - 3 of 12 tools have missing or broken input schemas
          delete_item: no inputSchema at all (official SDK clients reject the entire tool list over this)
  PASS  Tool names are unique and well-formed - all tool names unique and well-formed

Reliability
  PASS  Responds quickly - median tools/list latency 11ms
  FAIL  Tools reject invalid arguments cleanly - invalid arguments crashed the server (probed 10 tools)
          update_config: server crashed
  FAIL  Server still healthy after all probes - server is gone after probing, it crashed somewhere above

Hygiene
  PASS  Server identifies itself - my-server 1.4.0
  WARN  Every tool has a description - 2 of 12 tools have no description

NOT READY  7 pass, 2 warn, 3 fail, 0 skip (1840ms)

インストール

npx mcp-flightcheck <your server>     # no install
npm i -D mcp-flightcheck              # or as a dev dependency

Node 20以上が必要です。

Related MCP server: mcp-test-server

使用方法

mcp-flightcheck node dist/server.js           # stdio server
mcp-flightcheck python -m my_mcp_server       # any command, any language
mcp-flightcheck https://example.com/mcp       # Streamable HTTP server

mcp-flightcheck --json node dist/server.js    # machine-readable report
mcp-flightcheck --strict node dist/server.js  # warnings also fail the run
mcp-flightcheck --no-probe node server.js     # skip invalid-argument probing
mcp-flightcheck --timeout 30000 slow-server   # per-request timeout in ms

認証(CIで独自のゲート付きサーバーをテストする)

ほとんどの本番用リモートサーバーはトークンを必要としますが、これはまさにCIでゲートしたいものです。--bearerでトークンを渡すか、--headerで任意のヘッダーを設定します(繰り返し可能)。

mcp-flightcheck --strict --bearer "$MCP_TOKEN" https://your-server/mcp
mcp-flightcheck --header "X-Api-Key: $API_KEY" --header "X-Tenant: acme" https://your-server/mcp

トークンはCIシークレットに保持し、上記のように環境変数で渡します。mcp-flightcheckはヘッダー値を出力せず、JSONレポートはURLのみでターゲットを識別します。認証フラグはリモート(http)ターゲットに適用されます。stdioサーバーは、自身のenvとargsを通じて認証情報を受け取ります。

終了コード:0はクリーン、1は発見項目あり、2は接続不能または使用法エラー。CIに直接組み込めます。

- run: npx mcp-flightcheck --strict node dist/server.js

チェック内容

プロトコル準拠

  • 未知のメソッドは、ハング、クラッシュ、または誤った成功ではなく、-32601で拒否されます。

  • 不正な形式のリクエストパラメータは、クリーンなJSON-RPCエラーとして返されます。

  • pingへの応答が必要です(仕様要件)。

  • サーバーが宣言するすべての機能(ツール、リソース、プロンプト)が実際に応答する必要があります。提供できないものを宣言するとクライアントが壊れます。

ツール品質

  • tools/listが動作し、ループなしでページネーションを行います。

  • すべてのツールは、JSON Schemaとしてコンパイル可能なinputSchemaを持ち、ルートはオブジェクトである必要があります。スキーマがないサーバーは公式SDKクライアントによって即座に拒否され、型付きスキーマを提供することは、公開サーバー間で測定された最も強力な品質分離指標です。

  • ツール名は一意で適切に形成されている必要があります。説明が存在する必要があります(モデルがそれに基づいてルーティングするため)。

信頼性

  • 無効な引数のプローブ:必須引数を持つすべてのツールが、引数なしで呼び出されます。適切に構築されたサーバーは、何かを実行する前に呼び出しを拒否します。mcp-flightcheckは、とにかく実行する、タイムアウトまでハングする、またはプロセス全体をダウンさせるツールをフラグ付けします。

  • tools/listの中央値レイテンシ(エージェントがセッションごとにこれを支払うため)。

  • 最終的なヘルスチェックにより、サーバーが自身のエラーパスを生き延びたことを証明します。

障害の分類は、実際に発生する問題(スキーマ不一致、タイムアウト、クラッシュ、プロトコル違反)に対応しています。

発見項目は仕様を引用

すべての発見項目には、それが強制する節が、そのまま引用され、リンク付きで記載されています。

WARN  Rejects malformed request params - malformed params surfaced as -32603, expected -32602
        MUST: -32602 Invalid params: Invalid method parameter(s). (JSON-RPC 2.0, which MCP messages MUST follow)
        https://www.jsonrpc.org/specification#error_object

根拠となる節がないルールにはHEURISTICとラベル付けされるため、仕様違反と判断によるものの区別が常に可能です。規範的根拠がまったくない2つのチェック(プローブ後ヘルスチェック、レイテンシ)には、偽の引用ではなく、引用は付されません。

プローブがデフォルトで有効な理由

プローブは無効な入力(必須引数の欠落)のみを送信します。入力検証があるサーバーは、副作用が発生する前にそれを拒否します。とにかく実行するサーバーには、本番環境ではなく今すぐ知りたいバグがあります。ツールが無効な入力でも副作用を起こす場合は、--no-probeを実行して修正してください。

プログラムAPI

import { runChecks } from "mcp-flightcheck";

const report = await runChecks(client, "my-server", {
  timeoutMs: 10_000,
  probe: true,
  probeLimit: 10,
});
console.log(report.summary); // { pass, warn, fail, skip }

テスト方法

mcp-flightcheckは適合性テストスイートに対して検証されています。examples/内のダミーMCPサーバーのギャラリーであり、各サーバーは1つのアーキタイプ(クリーン、スキーマ欠落、入力検証なし、呼び出し時にクラッシュ、呼び出し時にハング、機能の偽装、pingなし、ドキュメント化されていないツール、匿名、未知のメソッドでハング)を体現しています。各サーバーはmcp-flightcheckが返すべき正確な判定に固定されており、test/corpus.test.tsはmcp-flightcheckがすべてを再現することをアサートします。これはmcp-flightcheck自身の精度/再現率ゲートです。つまり、欠陥の捕捉を停止したり、クリーンなサーバーにフラグを付け始めたりする回帰が発生すると、ビルドが失敗します。

すべてのアーキタイプに対するライブ実行の全ギャラリーを参照してください。

npm run demo

ロードマップ

  • プロトコルリビジョン間のバージョンネゴシエーションチェック

  • リソースとプロンプトのコンテンツ検証

  • PRコメント用の--report md

  • outputSchemaを宣言するツールの構造化出力検証

  • 公開信頼性データセット:公式レジストリ全体でのmcp-flightcheck実行

ライセンス

MIT

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    A test server implementing all features of the MCP protocol, including prompts, tools, resources, and sampling, designed for testing MCP clients rather than practical applications.
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    An MCP server with comprehensive CI/CD workflows including unit tests, integration tests, and end-to-end validation. Features automated testing across multiple Node.js versions with coverage reporting and linting validation.

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pardovot/mcp-flightcheck'

If you have feedback or need assistance with the MCP directory API, please join our Discord server