Skip to main content

Scaffold, audit, and inspect Model Context Protocol (MCP) servers from the CLI.

Project description

MCP Anvil

Scaffold, audit, and inspect Model Context Protocol (MCP) servers from one CLI. The missing toolbox for MCP server authors.

PyPI version Python Site

pipx install mcp-anvil
mcp-anvil new my-server          # scaffold a real working server  (free)
mcp-anvil audit ./my-server      # 21-rule security + health audit (paid)
mcp-anvil inspect ./my-server    # live tool playground :7800       (paid)

Why MCP Anvil

Every MCP server shipped in 2026 reinvents the same plumbing — manifest, tool hygiene, a security audit nobody runs, a debugger that's barely there. Anthropic's official MCP Inspector is fine for one-off pokes but not a toolbox. The published fault taxonomies (arXiv 2506.13538 — 1,899 servers empirically studied; arXiv 2603.05637 — two-thirds Windows-specific faults) aren't productized anywhere.

MCP Anvil fills the gap. One CLI for the three things every MCP author does between "git init" and "ship":

1. Scaffold (free forever — lead-magnet on purpose)

mcp-anvil new my-server --lang python

Generates a complete project — pyproject.toml, MCP manifest, FastMCP-based server, working sample tool, tests, Dockerfile, README. Python and TypeScript templates both pass mcp-anvil audit . on first run.

2. Audit (21-rule security + health pass)

mcp-anvil audit ./my-server                   # full audit
mcp-anvil audit ./my-server --html report.html # share with security review
mcp-anvil audit ./my-server --strict          # fail CI on any warning

12 static rules + 9 runtime probes, grounded in the published research above + AgentDojo's injection benchmark. Sample findings:

  • static.tools.name_collisionSearch and search differ only by case
  • static.security.hardcoded_secretsk-ant-api03-... shape in your manifest
  • runtime.handshake.failed — server crashes on initialize
  • runtime.windows.large_payload_breaks_stream — cp1252 mangles long JSON

Adversarial fuzzing is opt-in (--enable-fuzz) because it really does call your tools with injection payloads.

3. Inspect (live playground at localhost:7800)

mcp-anvil inspect ./my-server

Opens a browser dashboard that auto-renders forms from each tool's JSON schema, fires real MCP calls through a held stdio connection, and shows a run history with per-call latency. Beats the official MCP Inspector on polish — fixture-saving and response-diffing land in v1.1.

Pricing

Tier Price What you get
Free $0 new command + demo mode for audit/inspect
Personal $29 one-time Everything. 1 developer, 1 year of updates
Team $99 one-time Everything. 5 developer seats, 1 year

14-day full-feature trial on first paid-command run. No signup. License is Ed25519-signed offline — no network call on the happy path. 14-day refund on email request.

Buy a license

Install

pipx install mcp-anvil          # recommended — isolated install
# or
pip install mcp-anvil           # works fine too

Requirements: Python 3.11+. Docker, Node, etc. are NOT required by MCP Anvil itself — they're requirements of the servers you scaffold.

Quickstart

mcp-anvil new my-first-server
cd my-first-server
python -m venv .venv
.venv\Scripts\activate          # Windows
# source .venv/bin/activate    # macOS/Linux
pip install -e .
mcp-anvil inspect .

Click the echo tool in the browser dashboard, type something, watch the round-trip in the timeline. That's the trial loop.

Activate a license

After purchase, you receive a base32-encoded blob via email. Activate it:

mcp-anvil license activate "AB3CD4EF..."   # paste your key
mcp-anvil license status                   # confirm

The license is stored at ~/.mcp-anvil/license.json. Verified locally with the embedded public key — no phoning home.

Status

v0.1.x — alpha. API surface is stable; rule additions ship in patch releases. v0.2 plans: fixture saving, response diffing, AgentDojo full-corpus adapter, Rust + Go templates.

Support

Built by AI Infra Decoded. Commercial license, single-developer terms — see LICENSE.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_anvil-0.1.2.tar.gz (73.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_anvil-0.1.2-py3-none-any.whl (71.1 kB view details)

Uploaded Python 3

File details

Details for the file mcp_anvil-0.1.2.tar.gz.

File metadata

  • Download URL: mcp_anvil-0.1.2.tar.gz
  • Upload date:
  • Size: 73.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for mcp_anvil-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8068f3bc39bc3f62119f08c33a155055a17b3786e1b6940ab644b6e40be5d110
MD5 e13a9e3ec09f8fa59f66549776a8ba06
BLAKE2b-256 6be5da4805e0079fbe8e0c83e7a9efa8334d93bb4f2288e681885e6018f7df03

See more details on using hashes here.

File details

Details for the file mcp_anvil-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: mcp_anvil-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 71.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for mcp_anvil-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a364bbac75549045eb9599197af0fe9a0d49f7349fa7415a04d13fe375ad14be
MD5 7c03d9e6270b4d30b878047e0c2ba2e2
BLAKE2b-256 078aa24d9309c64036946533d2245b91528c860a29aadfb622e989d1761295d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page