mcp-audit

작성자: sentry

MCP 서버의 프로토콜 준수 여부, 메타데이터 변동, 호환성 회귀를 감사합니다. 도구 주석, 도구/결과 스키마, 구조화된…을 검토할 때 사용하세요.

npx skills add https://github.com/getsentry/sentry-mcp --skill mcp-audit

MCP Audit

Audit an MCP server against the current released MCP specification and any repo-specific compatibility constraints.

Read references/spec-baseline.md and references/checklist.md before making changes. Use references/version-watchpoints.md when spec drift, draft features, or older protocol targets may matter. references/common-findings.md captures recurring failure patterns. SOURCES.md is provenance, not the audit checklist.

Workflow

  1. Pin the protocol baseline.

    • Default to the latest released MCP spec revision unless the repo explicitly targets another version.
    • Treat draft and SEP content as watchpoints, not release-blocking requirements, unless the user or repo explicitly asks for draft compatibility.
    • Identify which MCP primitives and utilities the server actually implements: prompts, resources, tools, completions, logging, tasks, or experimental extensions.
  2. Audit lifecycle and capability negotiation.

    • Verify initialize and notifications/initialized behavior, negotiated protocol version, and claimed capabilities.
    • Check that the server only advertises capabilities and sub-capabilities it actually supports, such as listChanged, subscribe, or task-related capability blocks.
    • For HTTP transports, verify behavior around MCP-Protocol-Version after initialization if the repo owns transport handling directly.
  3. Audit tools if present.

    • Verify tools/list pagination, notifications/tools/list_changed if claimed, and client-visible metadata from the exported server surface.
    • Check tool definitions: name, title, description, icons, inputSchema, outputSchema, annotations, and execution.taskSupport.
    • Check tool result semantics: content, structuredContent, isError, embedded resources, resource links, and the split between protocol errors and tool execution errors.
    • Review safety hints conservatively: readOnlyHint, destructiveHint, idempotentHint, and openWorldHint.
    • Build the explicit upstream-mutation inventory for write-capable tools.
  4. Audit prompts and resources if present.

    • Prompts: capability declaration, prompts/list pagination, prompts/get, notifications/prompts/list_changed, argument handling, and prompt message content types.
    • Resources: capability declaration, resources/list pagination, resources/read, resources/templates/list, resources/subscribe, notifications/resources/list_changed, notifications/resources/updated, URI scheme usage, MIME types, and text/blob encoding.
    • Preserve the spec control hierarchy: prompts are user-controlled, resources are application-controlled, and tools are model-controlled.
  5. Audit transports, auth, and security.

    • stdio: newline-delimited JSON-RPC over stdin and stdout, no non-protocol stdout, stderr-only logging, and environment-based credential handling rather than HTTP OAuth flows.
    • HTTP/Streamable HTTP: origin validation, localhost-binding guidance for local deployments, session and protocol-version handling, and HTTP-only auth flows when the server actually supports HTTP.
    • Authorization: protected resource metadata discovery, WWW-Authenticate challenges, scope guidance, resource indicators, bearer-token handling, audience validation, and no query-string tokens.
    • Security: input and URI validation, access controls, output sanitization, rate limits and timeouts, consent or sandbox expectations for local servers, and DNS-rebinding or SSRF risk surfaces.
  6. Audit version and compatibility drift.

    • Separate true spec violations from intentional older-version targeting or host-specific behavior.
    • Check newer released-spec features that may be missing or mis-modeled, such as icons, tool name guidance, execution or task support, and structured tool output.
    • Note draft-only or SEP-only expectations separately so the audit does not over-enforce unreleased behavior.
    • Check repo-specific compatibility constraints such as tool-count limits, generated definitions, inspector or SDK quirks, and Warden rules.
  7. Run validation.

    • Prefer existing integration tests against the exported server surface.
    • If none exist, add or update the narrowest automated check that proves the claimed protocol behavior.
    • Refresh generated definitions or catalogs if the repo uses them.
    • Finish with the repo's normal validation commands when appropriate.
  8. Report the result.

    • State the protocol baseline audited.
    • List every primitive and capability the server implements.
    • List every upstream-mutating tool.
    • Separate confirmed violations, compatibility risks, and watchpoints.
    • Call out what was validated via source inspection versus real server behavior.
    • Note any assumptions about older spec targets, client quirks, or host-specific extensions.

Failure Handling

  • If the repo targets an older MCP revision, audit against that version first and record the delta to latest separately.
  • If framework adapters transform schemas or annotations, trust the exported wire surface over local declarations.
  • If HTTP auth or transport behavior is owned by upstream infrastructure, audit the repo-owned boundary and explicitly mark the remainder as inherited or out of scope.
  • If a requirement appears only in a draft or SEP, do not fail the server on it unless the user asked for draft compatibility.
  • If a check passes structurally but the real server response differs, treat the wire behavior as authoritative.

sentry의 다른 스킬

architecture-review
sentry
직원 수준의 코드베이스 건강 검토. 모놀리식 모듈, 무음 실패, 타입 안전성 격차, 테스트 커버리지 구멍, LLM 친화성 문제를 찾습니다.
pi-agent-integration
sentry
Integrate `@mariozechner/pi-agent-core` as the agent abstraction inside another library or runtime. Use when implementing or refactoring Pi Agent wrappers,…
sentry-debug-issue
sentry
Sentry 이슈를 디버깅하고 수정합니다 — (링크, ID 또는 검색으로) 찾고, 전체 컨텍스트(스택 트레이스, 브레드크럼, 트레이스, 로그)를 가져오고, 선택적으로 Seer 근본 원인 분석을 실행합니다…
sentry-svelte-sdk
sentry
Svelte 및 SvelteKit을 위한 완전한 Sentry SDK 설정입니다. "Svelte에 Sentry 추가", "SvelteKit에 Sentry 추가", "@sentry/sveltekit 설치" 또는 구성 요청 시 사용하세요.
sentry-svelte-sdk
sentry
Svelte 및 SvelteKit을 위한 완전한 Sentry SDK 설정입니다. "Svelte에 Sentry 추가", "SvelteKit에 Sentry 추가", "@sentry/sveltekit 설치" 또는 구성 요청 시 사용하세요.
skill-scanner
sentry
에이전트 스킬의 보안 문제를 스캔합니다. "스킬 스캔" 요청 시 사용하세요.
prompt-optimizer
sentry
에이전트 프롬프트, 시스템 프롬프트, 개발자 프롬프트 및 재사용 가능한 프롬프트 템플릿을 생성, 최적화, 반복적으로 개선합니다. 개선 요청 시 사용합니다.
commit
sentry
commit — AI 에이전트를 위한 설치 가능한 스킬로, getsentry/sentry-docs에서 게시했습니다.