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.4.tar.gz (76.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.4-py3-none-any.whl (74.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_anvil-0.1.4.tar.gz
  • Upload date:
  • Size: 76.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.4.tar.gz
Algorithm Hash digest
SHA256 09c2587c0fdccc4c458972de4422e8e4b75c8e0cb87b8a0383e28e8438167324
MD5 5db5d005b327a2751be150c2bc82b993
BLAKE2b-256 d3fd894811dff9237ace86a9c4fcd12f045f97a1aadec61c3e4bbe39bc0a7f00

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcp_anvil-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 74.7 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2d235f3df6240344d515286c46f073535c903e744c0be61ed0b68c0e912b3f06
MD5 fa3bba354d60c190339d2f09b9bcbb63
BLAKE2b-256 b107302ed2d1884cb2e20f52876e9b26e8971dbd452842a2f5aa6766537db92b

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