Skip to main content

mcp-scorecard

License: MIT GitHub Sponsors Ko-fi

⚠️ Status: v0.1 alpha — under active development. Rules, thresholds, and scoring are being calibrated against real-world MCP servers.

Pre-flight checks for MCP (Model Context Protocol) servers.

mcp-scorecard answers one question: "Is this MCP server safe and efficient enough for LLMs to actually use?" — before you publish it, install it, or let it into your agent config.

Existing MCP tools cover runtime security (MCP-Scan) and protocol compliance (MCP Inspector). This one covers the missing layer: how expensive is the server just to keep registered, and are its tools scoped well enough for an LLM to pick the right one?

Companion tool to the book 『MCP実践セキュリティ』 (Impress NextPublishing).

The four layers

Layer What it measures Status
A. Passive Footprint Tokens the server steals from every LLM turn just by being listed. tools/list initial load, per-tool cost, bloat ratio, schema verbosity v0.1
B. Use-Case Scoping Whether each tool is narrow enough that the LLM knows when to use it. When-to-use present, vague verb scan, overlap detection, naming consistency, AI Slop v0.1
C. Security Own rules (prompt injection in description, tool shadowing, hardcoded secrets, transport hygiene) + optional MCP-Scan wrap v0.1 own rules; wrap in v0.2
D. Name Safety Case collision, brand similarity, separator variants, namespace hygiene v0.1

Design details: docs/design.md.

Install

pip install mcp-scorecard              # CLI + library
pip install "mcp-scorecard[mcp]"       # + MCP server (stdio)

Use as a CLI

# Full scan
mcp-scorecard scan ./path/to/server.py
mcp-scorecard scan http://localhost:8000/
mcp-scorecard scan pypi:some-mcp

# Layer-only
mcp-scorecard footprint ./server.py
mcp-scorecard scoping ./server.py
mcp-scorecard security ./server.py
mcp-scorecard name my-new-mcp

# CI-friendly
mcp-scorecard scan ./server.py --json
mcp-scorecard scan ./server.py --format sarif
# exit codes: 0=GREEN/YELLOW, 1=ORANGE, 2=RED

Use as an MCP server (self-hosting)

Register mcp-scorecard itself as an MCP tool in Claude Code / Cursor / Windsurf, then ask the LLM to audit another MCP:

{
  "mcpServers": {
    "mcp-scorecard": {
      "command": "mcp-scorecard-mcp"
    }
  }
}

Then in chat: "score the MCP server at ./my-server.py".

Why passive footprint matters

Every tool description and inputSchema in a registered MCP server is sent to the LLM on every turn — because the model needs to see them to decide which tool to call. A single verbose server can silently burn 5,000+ tokens per turn before anyone touches it.

mcp-scorecard footprint measures exactly that, so you can trim before you publish.

Roadmap

  • v0.1 — Layers A + B + D full, Layer C own rules, CLI + MCP server
  • v0.2 — MCP-Scan wrap, SARIF, real MCP client negotiation
  • v0.3 — Book『MCP実践セキュリティ』章別ルール取り込み
  • v0.4 — Registry-source targets (github: / npm:)

Support this project

License

MIT.

Metadata

Release files for mcp-scorecard 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-scorecard 0.1.1
File Size Uploaded
mcp_scorecard-0.1.1.tar.gz 23.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-scorecard 0.1.1
File Interpreter ABI Platform
mcp_scorecard-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 44.6 kB

Release files / mcp_scorecard-0.1.1.tar.gz

Download URL mcp_scorecard-0.1.1.tar.gz
Size 23.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4c3803d7153373016ef5135e8f188afd95f3a3aed7d94f14db55fc1cc69caa3d
BLAKE2b-256 checksum
How to use checksums
eba45399c605cc40c3d623e0efce7fef3ee06f82e53e64a69941ffc38bd633db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 13, 2026.

Transparency log

Release files / mcp_scorecard-0.1.1-py3-none-any.whl

Download URL mcp_scorecard-0.1.1-py3-none-any.whl
Size 21.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8840b72cfb3dc66d25b1f2b936decfbc8b375e1a2d71edc179a35d1978bfce06
BLAKE2b-256 checksum
How to use checksums
1775b2f884ebe913212d34d9b70cff9599f9e00fe426f0e2f6c242e309bef159
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page