mcp-audit

par sentry

Auditer les serveurs MCP pour la conformité au protocole, la dérive des métadonnées et les régressions de compatibilité. Utiliser lors de la révision des annotations d'outils, des schémas d'outils/résultats, structurés…

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.

Plus de skills de sentry

generate-frontend-forms
sentry
Guide pour créer des formulaires à l'aide du nouveau système de formulaires de Sentry. À utiliser lors de l'implémentation de formulaires, de champs de formulaire, de validation ou de fonctionnalité de sauvegarde automatique.
official
sentry-snapshots-cocoa
sentry
Configuration complète de Sentry Snapshots pour les projets Apple/Cocoa. Utiliser lorsqu’on demande de « configurer SnapshotPreviews », « configurer les tests de snapshots Apple », « télécharger les snapshots Apple vers…
official
architecture-review
sentry
Revue de la santé du codebase au niveau de l'équipe. Détecte les modules monolithiques, les échecs silencieux, les lacunes de sécurité de type, les trous de couverture de test et les problèmes de convivialité pour les LLM.
official
linear-type-labeler
sentry
Classe les tickets Linear et applique un label de type issu de la taxonomie de labels de l'espace de travail Sentry, en fonction du contenu du titre et de la description de chaque ticket.
official
sentry-flutter-sdk
sentry
Configuration complète du SDK Sentry pour Flutter et Dart. Utiliser lorsqu'il est demandé d'« ajouter Sentry à Flutter », d'« installer sentry_flutter », de « configurer Sentry dans Dart » ou de paramétrer la gestion des erreurs…
official
sentry-svelte-sdk
sentry
Configuration complète du SDK Sentry pour Svelte et SvelteKit. Utiliser lorsqu'il est demandé d'« ajouter Sentry à Svelte », d'« ajouter Sentry à SvelteKit », d'« installer @sentry/sveltekit », ou de configurer…
official
vercel-react-best-practices
sentry
Directives d'optimisation des performances React et Next.js de l'équipe Vercel Engineering. Cette compétence doit être utilisée lors de l'écriture, de la révision ou du refactoring de code React/Next.js…
official
sentry-tanstack-start-sdk
sentry
Configuration complète du SDK Sentry pour TanStack Start React. À utiliser lorsqu'on vous demande "ajouter Sentry à TanStack Start", "installer @sentry/tanstackstart-react", ou configurer la gestion des erreurs…
official