Catalog
fauziyasin-s2m4qw/mcp-audit

Audit MCP servers for protocol compliance, metadata drift, and compatibility regressions. Use when reviewing tool annotations, tool/result schemas, structured output, lifecycle/init handshake, capabilities, prompts/resources support, transports, auth, security, version drift, or Warden/CI MCP compatibility checks. Trigger phrases include "audit MCP", "check MCP spec compliance", "review tool hints", "validate tools/list", "check initialize handshake", "review prompt or resource capabilities", and "check MCP compatibility in Warden".

v1.0LATEST
NewUpdated Oct 5, 2026

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.
Files5
5 files · 22.1 KB

Select a file to preview

Overall Score

88/100

Grade

A

Excellent

Grades are signals, not a certification. Always review a skill yourself before use.

Safety

90

Quality

87

Clarity

88

Completeness

85

Summary

This skill provides a comprehensive workflow for auditing MCP (Model Context Protocol) servers against protocol specifications and compatibility constraints. It guides an agent through eight major steps: establishing a protocol baseline, auditing lifecycle/capabilities, reviewing tools, auditing prompts/resources, checking transports/auth/security, identifying version drift, running validation, and generating a structured audit report. The skill emphasizes separating released-spec violations from draft-only watchpoints and compatibility risks, and includes failure-handling guidance for older protocol versions and framework-specific transformations.

Detected Capabilities

read specification filesread reference documentationread source codeanalyze metadata and schema definitionsverify wire-level protocol behaviorcompare source declarations against exported metadatarun integration tests or validation commandsgenerate audit reports

Trigger Keywords

Phrases that agents use to match this skill to user intent.

audit MCP servercheck MCP spec compliancereview tool annotationsvalidate MCP capabilitiescheck protocol version driftaudit tool safety hintsreview resource paginationMCP security auditcheck initialize handshakeMCP compatibility check

Risk Signals

INFO

Outbound reference to modelcontextprotocol.io documentation

SKILL.md, SOURCES.md, multiple references files
INFO

Reads external specification URLs for protocol baseline

SOURCES.md (specification/2025-11-25/server/tools, etc.)
INFO

Recommends running repo-specific validation commands

SKILL.md step 7, checklist.md automation section

Referenced Domains

External domains referenced in skill content, detected by static analysis.

modelcontextprotocol.io

Use Cases

  • Audit a new MCP server implementation for protocol compliance with the latest released specification
  • Review tool definitions, annotations, and safety hints against MCP wire contract expectations
  • Identify compatibility gaps when migrating an MCP server from an older protocol version to the latest release
  • Validate lifecycle behavior, capability declaration accuracy, and transports/auth before deploying an MCP server
  • Check for security issues such as SSRF risk, DNS-rebinding exposure, or improper credential handling in MCP servers
  • Separate released-spec violations from draft-only or host-specific extensions during an MCP audit
  • Audit prompt and resource implementations for proper pagination, notification handling, and URI/MIME-type consistency
  • Verify that mutating tools declare correct safety hints (readOnlyHint, destructiveHint, openWorldHint) and build an upstream-mutation inventory

Quality Notes

  • Clear multi-step workflow with explicit ordering and dependencies between audit phases
  • Well-structured reference files (spec-baseline, version-watchpoints, common-findings, checklist) that provide context-specific guidance without hardcoding repo-specific mutations
  • Excellent failure-handling section that acknowledges version drift, framework transformations, and inherited transport/auth behavior
  • Comprehensive tool-audit guidance that covers metadata (title, icons, schema), result semantics (structuredContent, structured vs. protocol errors), safety hints, and upstream-mutation inventory
  • Thoughtful separation of released-spec requirements from draft-only and SEP-only watchpoints with explicit guidance to not over-enforce unreleased behavior
  • Strong emphasis on wire-level behavior verification rather than just source inspection when frameworks can transform metadata before export
  • Checklist provides repeatable, domain-agnostic audit items without inventing non-authoritative requirements
  • SOURCES.md provides full provenance for all guidance, including trust tier and specific confidence assessments
  • Coverage of security audit dimensions (input validation, SSRF, DNS rebinding, least privilege, rate limits) with security-best-practices guidance integrated
  • Clear control hierarchy preservation (prompts user-controlled, resources app-controlled, tools model-controlled) to guide scope decisions
Model: claude-haiku-4-5-20251001Analyzed: Oct 5, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use fauziyasin-s2m4qw/mcp-audit in your dev environment

Command Palette

Search for a command to run...