MCP Audit logo

MCP Audit

Audits MCP tool descriptions and traffic, detects suspicious content, records JSONL events, and supports configurable blocking.

Install MCP Audit

Pick your client, then add it in one click or paste the config.

No confirmed install command yet

We only publish a config when the install details come from the project itself — its README, its docs, or a verified owner. We haven’t found those for mcp-audit, and we’d rather show nothing than a guess you’d paste into your client.

Open setup steps on GitHub

Overview

The mcp-audit MCP server proxies local stdio or remote Streamable HTTP MCP servers while recording tool traffic and checking descriptions and results for suspicious content. It pins observed tool descriptions and schemas, reports later changes, and stores messages in a local JSONL audit log. Use it when you need visibility into MCP tool calls, reviewable change detection, or heuristic checks for tool poisoning and prompt injection. Local operation is the default, with optional webhook delivery and allow/deny policy rules.

Use cases

  • Record MCP tool calls for local review
  • Detect changes to tool descriptions and schemas
  • Flag suspicious instructions in tools and results
  • Proxy remote Streamable HTTP MCP servers
  • Apply allow and deny rules to MCP activity

Key features

  • Local stdio and remote Streamable HTTP proxy modes
  • JSONL recording of MCP messages and tool calls
  • Tool description and schema change detection
  • Heuristic scanning for poisoning and result injection
  • Optional allow/deny policy rules
  • Local operation with optional webhook output

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

4/4 checks healthy over the last 41d

Supply-chain signal

2 high-severity advisories on record for this package. Most advisories affect transitive dependencies and may not be exploitable in this server's actual usage — this is a directional signal, not a security audit.

Critical 0High 2Medium 0Low 0

Scanned 15d ago via OSV.dev

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars2Stargazers on the source repository.
Last commit2d agoMost recent push to the default branch.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How MCP Audit works

What mcp-audit MCP server does

The mcp-audit MCP server places a transparent proxy between an MCP client and an upstream server. It supports two connection patterns: run -- wraps a local command that communicates over stdio, while serve forwards requests to a remote Streamable HTTP endpoint. Authentication is passed through rather than managed by the proxy, including authorization headers, OAuth flows, and Mcp-Session-Id values.

The proxy records MCP messages to a local JSONL file. Events can include the server name, direction, method, tool name, arguments, results, timestamps, and policy flags. Developers can inspect this file with standard command-line tools such as jq to review which tools were called and what arguments were supplied.

How it works

On first observation, the mcp-audit MCP server stores each tool description and schema as a baseline. If a later session changes either one, it raises an alarm until the change is inspected with mcp-audit lock diff and approved with mcp-audit lock approve. This provides a review step for changes that could represent a tool “rug pull.”

The proxy also scans advertised tool descriptions and schema fields for heuristic indicators such as instruction overrides, concealed instructions, credential-related bait, exfiltration language, cross-tool commands, and invisible characters. Tool results receive a narrower scan for instruction overrides, hidden instructions, and concealment. Results may be text, embedded resources, resource links, structured content, or JSON-RPC errors.

Detection normally flags events without blocking them. Policy rules can be configured to allow or deny selected activity, and the default shadow mode records activity without blocking calls. The project reports zero false positives in its included benign corpus, but notes that the corpus is limited and does not measure attack detection rates.

Setup and configuration

For a local server, place mcp-audit run -- before the command already used by the MCP client:

bash
mcp-audit run -- npx -y @modelcontextprotocol/server-filesystem /tmp

For a remote server, start the HTTP proxy and point the client at its listening address:

bash
mcp-audit serve --target https://example.com/mcp --listen :9000

The default audit log is ~/.mcp-audit/logs/events.jsonl. No configuration file is required for the basic setup. The repository provides client configuration examples for Claude Desktop, Cursor, and Windsurf.

The npm package and release binaries described in the README are version 0.1.0 and predate mcp-audit lock and result scanning. To use those features before the stated 0.2.0 release, build from source with Go 1.24 or newer, or install the current Go package.

Tools and capabilities

The mcp-audit MCP server provides these operational capabilities:

  • Wrap local stdio MCP processes.
  • Proxy remote Streamable HTTP MCP servers.
  • Record requests, responses, tool calls, arguments, and results as JSONL.
  • Detect suspicious patterns in tool descriptions, schemas, and results.
  • Compare and approve changed tool locks through the lock diff and lock approve commands.
  • Apply optional allow/deny policy rules.

All processing runs locally unless a webhook is configured. The project is licensed under Apache-2.0.

Limitations and notes

The detectors are heuristics, so an alert is an item for review rather than proof of an attack. The published benign-result measurement comes from one MCP server, and the project does not provide attack detection-rate figures. The proxy records by default, while blocking requires explicit policy configuration.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about MCP Audit

mcp-audit is an MCP server that proxies local stdio or remote Streamable HTTP MCP servers, records messages to JSONL, scans tool descriptions and results for suspicious instructions, and detects changes to tool schemas and descriptions. Its main commands include run, serve, and lock diff or lock approve for reviewing changes.

Run it through npm, download a release binary, or build it from source. The documented 0.1.0 packages predate lock and result-scanning features.

Put `mcp-audit run --` before the existing server command. For example, run `mcp-audit run -- npx -y @modelcontextprotocol/server-filesystem /tmp`; then configure the MCP client to launch that command.

Yes, Cursor is supported through the standard wrapper configuration. Keep the server command used by Cursor and prepend `mcp-audit run --`; the repository includes a Cursor configuration example.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMCP Audit AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/mcp-audit-2?style=directory)](https://allmcps.com/mcp/mcp-audit-2)
HTML Embed
<a href="https://allmcps.com/mcp/mcp-audit-2"><img src="https://allmcps.com/api/badge/mcp-audit-2?style=directory" alt="MCP Audit on AllMCPs" /></a>