Skip to main content
Glama
pardovot

mcp-flightcheck

by pardovot

mcp-flightcheck

사용자보다 먼저 MCP 서버를 망가뜨려 봅니다. 일반적인 클라이언트 시작을 수행한 다음, 클라이언트가 일반적으로 보내지 않는 것들(도구 이름 없는 호출, 알 수 없는 메서드, 필수 인수가 누락된 도구 호출)을 전송하고, 충돌, 멈춤, 실행되면 안 되는 도구의 실행을 감시합니다. 결과는 스코어카드로 제공되며, 각 발견 사항은 그 뒤에 있는 스펙 조항을 인용하고, CI를 위해 0이 아닌 종료 코드를 반환합니다.

공식 레지스트리에 있는 모든 원격 서버(6,892개)에 대해 실행했습니다. 연결을 수락하는 서버들 중에서도 4분의 1이 검사에 실패하고, 7개 중 1개는 완전히 망가져 있습니다. 충돌, 멈춤, 또는 도구 이름을 지정하지 않은 tools/call을 실행합니다. 공식 Inspector는 대화형이며, 빌드를 실패시키지 않으므로 이러한 문제는 출시 전에 걸러지지 않습니다.

$ 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 서버는 자체 환경 및 인수를 통해 자격 증명을 받습니다.

종료 코드: 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(휴리스틱)으로 표시되므로, 스펙 위반과 판단 호출을 항상 구분할 수 있습니다. 규범적 근거가 전혀 없는 두 가지 검사(프로브 후 상태, 지연 시간)는 조작된 인용 대신 인용을 제공하지 않습니다.

프로빙이 기본적으로 켜져 있는 이유

프로브는 잘못된 입력(필수 인수 누락)만 보냅니다. 입력 유효성 검사가 있는 서버는 부작용이 발생하기 전에 이를 거부합니다. 어쨌든 실행하는 서버는 지금이 아닌 프로덕션에서 알고 싶은 버그가 있는 것입니다. 도구에 잘못된 입력에도 부작용이 있는 경우 --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 서버 갤러리로, 각각 하나의 아키타입(깨끗함, 스키마 누락, 입력 유효성 검사 없음, 호출 시 충돌, 호출 시 멈춤, 기능 거짓말, 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