Skip to main content

mcpseal

PyPI CI License: MIT

Source, issues and docs: https://github.com/confuseddude/mcpseal

An MCP tool-integrity CLI: pins the hash of every approved MCP tool definition and blocks execution the instant a tool's description or input schema drifts — the pattern known as a "rug pull," where a server changes a tool's behavior after you've already trusted it. Free, local, zero-infra.

What it does

  1. mcpseal init launches each MCP server your client is configured to use, records every tool's name/description/input schema as a cryptographic hash, and writes a .mcp-lock.json you commit to your repo (like package-lock.json).
  2. mcpseal install rewrites your client's config so it launches your servers through mcpseal proxy instead of directly.
  3. From then on, every time a tool definition is served to your client, mcpseal re-hashes it and compares against the pinned hash. A match forwards normally. A mismatch gets blocked before your client ever sees it, with the exact old-vs-new description shown.

Privacy

Nothing leaves your machine, ever, unless you explicitly run mcpseal login. No telemetry, no network calls, no account required. login is entirely optional and only relevant if your organization runs the paid Control Plane — everything above is the complete product for a solo developer.

Quickstart

uvx mcpseal init
uvx mcpseal install

or, if you prefer a persistent install:

pip install mcpseal
mcpseal init
mcpseal install

Commands

Command What it does
mcpseal init Discover MCP servers, hash every tool, write .mcp-lock.json
mcpseal install Route your client's servers through the proxy
mcpseal uninstall Restore your original client config exactly
mcpseal scan [--json] Re-check all tools now; non-zero exit on drift (CI-friendly)
mcpseal approve <server> <tool> Trust a tool's current definition (local lockfile only)
mcpseal deny <server> <tool> Block a tool even if its hash matches
mcpseal diff Show the old-vs-new description for any drifted tool
mcpseal status [--json] LOCAL HEALTH + CONTROL PLANE summary, always works offline
mcpseal doctor [--json] Deeper diagnostics; Control Plane unreachability never fails it
mcpseal login / logout Optional: connect/disconnect this machine to a hosted workspace
mcpseal policy-pull Fetch and verify a signed org policy, if connected

Full source, architecture docs, and the Node.js twin of this CLI are in the same monorepo this package is built from.

Verifying what you installed

Every release is published from GitHub Actions with no stored credentials, and carries build provenance you can check yourself:

mcpseal --version
npm audit signatures            # npm: verifies the SLSA provenance attestation

PyPI attestations (PEP 740) are shown on the project page and name the exact repo, workflow and commit that produced the artifact.

Reporting a vulnerability

See SECURITY.md.

Download files

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

Source Distribution

mcpseal-0.1.4.tar.gz (54.8 kB view details)

Uploaded Source

Built Distribution

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

mcpseal-0.1.4-py3-none-any.whl (47.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcpseal-0.1.4.tar.gz
  • Upload date:
  • Size: 54.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mcpseal-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1b0b99e7ab9ecbb6dd2aaef60f38b7edf463c5468ff5a835257e75b40d57b468
MD5 c4b40b580bf4d3bcf552137ce9433aa1
BLAKE2b-256 171ec2e2e729173635070e702bcd8b79982f82e7e9896acf1149f24834046684

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpseal-0.1.4.tar.gz:

Publisher: publish.yml on confuseddude/mcpseal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: mcpseal-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 47.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mcpseal-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cedc447949e7d8d98a208f9c996aa941e6585cf9e2260620af4c76d5c22f75de
MD5 2928784947f37b9a9c3c4e1df5190f09
BLAKE2b-256 c4df88f62d82290d665a5654cdec5070036f86e5117c66804ca29d72f5dac278

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpseal-0.1.4-py3-none-any.whl:

Publisher: publish.yml on confuseddude/mcpseal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 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