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의 다른 스킬

generate-frontend-forms
sentry
Sentry의 새로운 폼 시스템을 사용하여 폼을 생성하는 가이드입니다. 폼, 폼 필드, 유효성 검사 또는 자동 저장 기능을 구현할 때 사용하세요.
official
sentry-snapshots-cocoa
sentry
Apple/Cocoa 프로젝트를 위한 전체 Sentry Snapshots 설정입니다. "SnapshotPreviews 설정", "Apple 스냅샷 테스트 설정", "Apple 스냅샷 업로드" 요청 시 사용하세요.
official
architecture-review
sentry
직원 수준의 코드베이스 건강 검토. 모놀리식 모듈, 무음 실패, 타입 안전성 격차, 테스트 커버리지 구멍, LLM 친화성 문제를 찾습니다.
official
linear-type-labeler
sentry
Linear 이슈를 분류하고, 각 이슈의 제목과 설명 내용을 기반으로 Sentry 워크스페이스의 레이블 분류 체계에서 Type 레이블을 적용합니다.
official
sentry-flutter-sdk
sentry
Flutter 및 Dart를 위한 완전한 Sentry SDK 설정입니다. "Flutter에 Sentry 추가", "sentry_flutter 설치", "Dart에서 Sentry 설정" 또는 오류 구성을 요청받았을 때 사용하세요.
official
sentry-svelte-sdk
sentry
Svelte 및 SvelteKit을 위한 완전한 Sentry SDK 설정입니다. "Svelte에 Sentry 추가", "SvelteKit에 Sentry 추가", "@sentry/sveltekit 설치" 또는 구성 요청 시 사용하세요.
official
vercel-react-best-practices
sentry
Vercel Engineering의 React 및 Next.js 성능 최적화 가이드라인입니다. 이 스킬은 React/Next.js 코드를 작성, 검토 또는 리팩토링할 때 사용해야 합니다.
official
sentry-tanstack-start-sdk
sentry
TanStack Start React용 전체 Sentry SDK 설정. "TanStack Start에 Sentry 추가", "@sentry/tanstackstart-react 설치" 또는 오류 구성 요청 시 사용…
official