Mcpaudit

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.2Updated Nov 2, 2026

Audit any MCP server: handshake, schemas, descriptions, error handling, scored.

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Audits MCP servers: launches them over stdio, checks handshake, tool schemas, descriptions and error handling, and returns a scored report.

What you can do
  • Launch and audit one MCP server from a command and arguments, scoring handshake, protocol version, server info, tool names, descriptions, input schemas, parameter docs and error handling
  • Audit every server in an MCP client config file, or a single named entry, with one scored report per server
  • Validate a tools/list array offline without launching anything, checking names, descriptions, schema shape, required-vs-properties consistency and duplicates
  • Report a 0-100 score with PASS, WARN, FAIL or UNREACHABLE verdicts and named, evidence-backed issues
When to use it
Useful when you are choosing, publishing or maintaining MCP servers and want a deterministic, repeatable quality check before trusting a server with an agent. Also fits CI pipelines, since exit codes distinguish pass, fail and usage errors.
Requirements
Runs locally over stdio via npx or a Docker image; no account, API key or environment variable is declared. Servers being audited must be launchable as local stdio commands; remote HTTP servers are reported as unreachable rather than audited. Network access is needed for npx or image pulls and for any server it launches.
Before you install
The audit launches the target server as a real process on your machine, so that server's own code runs with your permissions and may use its configured environment. It also deliberately makes a bad tool call to test error handling. Only stdio servers are covered; remote HTTP entries are not audited.

Installation

In SourceWeft

  1. Open Mcpaudit in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcpaudit

Point it at any MCP server. Get a score, and the receipts.

The MCP Registry is filling up with servers nobody has ever audited. A server can list tools with no descriptions (so models never call them correctly), schemas that contradict themselves (required fields that don't exist), or — the dangerous one — cheerfully return success when you call a tool that doesn't exist. None of that shows up until a user's agent does something weird in production.

mcpaudit launches the server the way a real client does, runs the full handshake, inspects every tool, deliberately makes a bad call, and prints one scored report with named, evidence-backed issues. No LLM anywhere in the audit: every check is deterministic and repeatable.

What it checks

checkwhat it proves
handshakeThe server completes initialize — and how long it took
protocol versionThe negotiated version is present and one this build knows
server infoserverInfo.name and serverInfo.version are present
tool namesPresent, unique, and inside the MCP character/length guidance
descriptionsEvery tool described, in more than a token gesture, not just its own name repeated
input schemasPresent, an object schema, valid properties, required fields that actually exist
parameter docsTools whose parameters are all undescribed get flagged — models guess semantics from descriptions
error handlingA call to a nonexistent tool returns a proper error, fast, without killing the server
prompts / resourcesA server with no tools is not failed for it: when it advertises prompts/resources, mcpaudit lists them and audits it as what it is

Scoring: start at 100, each error costs 8, each warning costs 3. Verdicts: PASS (clean), WARN (works, but the issues will cost it users or correctness), FAIL (error-severity issues), UNREACHABLE (the handshake never completed — reported with the launch error, never a guessed score).

mcpaudit audits stdio servers. Remote (HTTP) servers — config entries with a url, or a URL passed as the command — are reported as UNREACHABLE with that explanation, never silently skipped and never spawned.

New in 0.1.1, from the first real-production validation battery (25+ external servers, three runs each, findings hand-checked against raw ground truth): server arguments starting with -- pass through verbatim (see Usage), prompt/resource-only servers pass, the default per-step timeout is 60s so npx/uvx cold starts are not mistaken for dead servers, and --json always emits one parseable document.

Usage

CLI

bash
# Audit a server by its launch commandnpx @reneturcios/mcpaudit audit npx -y @reneturcios/shipcheck mcpnpx @reneturcios/mcpaudit audit node dist/cli.js mcp
# Audit every server in an MCP client config (or one named entry)npx @reneturcios/mcpaudit audit --config ~/.claude/claude_desktop_config.jsonnpx @reneturcios/mcpaudit audit --config ./mcp.json --server greenlight
# Server arguments that start with -- pass through untouchednpx @reneturcios/mcpaudit audit uvx mcp-server-git --repository /path/to/repo
# Use a literal -- to force everything after it into the server command# (even flags that share a name with mcpaudit's own, like --timeout)npx @reneturcios/mcpaudit audit node server.js -- --timeout 5000
# Quoted command line, machine-readable output, custom timeoutnpx @reneturcios/mcpaudit audit --cmdline "npx -y @scope/pkg mcp" --json --timeout 30000
# Offline: validate a tools/list dump without launching anythingnpx @reneturcios/mcpaudit tools tools.json

Example output:

mcpaudit npx -y @reneturcios/shipcheck mcp: PASS (score 100/100, grade A)  server: shipcheck 0.1.0 · protocol 2025-11-25 · 3 tool(s) · initialize 1813ms · tools/list 16ms  error handling: bad tool call returned a proper error  No issues found.PASS: handshake, schemas, and error handling all check out.

(That is a real run, from the first MCP Server Index seed, 2026-10-22. Initialize time is measured from spawn and includes npx cold-start overhead, and the report says so. A slow initialize is only scored when the server itself is slow once running: if tools/list answers within 5s, a 30s+ initialize is reported as unscored launch path evidence, because that time went to the launcher or to first-run downloads.)

Exit codes: 0 for PASS/WARN, 1 for FAIL/UNREACHABLE, 2 for usage errors — CI-ready.

MCP server

Add to your MCP client config:

json
{  "mcpServers": {    "mcpaudit": {      "command": "npx",      "args": ["-y", "@reneturcios/mcpaudit", "mcp"]    }  }}

Tools:

  • audit_server: launch and audit one server from a command + args (+ optional env, timeout).
  • audit_config: audit every server in a config file, or one named entry.
  • audit_tools: offline validation of a tools/list array.

Docker

bash
docker run -i ghcr.io/cloudcorprecords/mcpaudit mcpdocker run --rm ghcr.io/cloudcorprecords/mcpaudit audit node server.js mcp

The MCP Server Index

mcpaudit is the engine behind a growing public dataset, the MCP Server Index: scored audits of real, published MCP servers, run with the published binary and refreshed as servers ship. The seed — the author's own tool family, audited first because you audit yourself before you audit anyone else — lives in the 100-packages workspace and grows with every wave.

The toolkit

mcpaudit is Wave 1, package 4 of a planned family of small, single-purpose developer tools by the same author, all built the same way: one bin that serves a CLI and an MCP server, deterministic checks with evidence, no invented answers.

  • greenlight: pre-flight checks for open-source contributions: is this issue actually landable?
  • shipcheck: release verification — git tag, GitHub release, npm, MCP Registry, and GHCR must all agree, or NO-GO.
  • cidiff: base-vs-head CI differ for PRs.
  • reprocheck: red-first repro verifier.
  • prwatch: attention report for your open PRs.
  • claimcheck: stale-claim states and parked fixes on forks.
  • gatefile: extract hidden contribution gates into machine-readable contribution-gates.json.
  • pkgverdict: pre-install verdicts for npm packages: GO, RISKY, FAKE, or MISSING.

Development

bash
npm installnpm run buildnpm test   # validator/scoring unit tests + live probes against fixture servers

License

MIT

Source: README.md at commit bdb9c23

Tools

3

audit_server

Audit an MCP server by launching it over stdio: initialize handshake, protocol version, server info, tools/list quality (names, descriptions, inputSchema validity, undescribed parameters), response times, and error handling on a deliberately bad tool call. Returns a scored report (0-100) with named, evidence-backed issues.

ParametersenvargscommandrequiredtimeoutMs

audit_config

Audit every server in an MCP client config file (Claude/Cursor style: {"mcpServers": {name: {command, args}}}) or a single named entry. Each server is launched and audited like audit_server. Returns one scored report per server.

ParameterspathrequiredservertimeoutMs

audit_tools

Offline audit of a tools/list array (no server launched): validates tool names, descriptions, inputSchema shape, required-vs-properties consistency, and duplicate names. Returns a scored report.

Parameterslabeltoolsrequired

Version history

3
  1. v0.1.2LatestOct 26, 2026
  2. v0.1.1Oct 23, 2026
  3. v0.1.0Oct 23, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts