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.3.tar.gz (54.1 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.3-py3-none-any.whl (47.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcpseal-0.1.3.tar.gz
  • Upload date:
  • Size: 54.1 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.3.tar.gz
Algorithm Hash digest
SHA256 e2c1c97cb0a4c448ab69320496629f655a2eae5161217e5e6dabf99e437cb34e
MD5 6a07f63c7de0d10ba49a066be3380f5b
BLAKE2b-256 6adfafcd025b6a999d831c768405b054cc5341a168854ffdc86dc71ad42f13e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpseal-0.1.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: mcpseal-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 30e530f86c69a6ec0388bf06958429c8756da1fa34b0c097d3a8dd0128b1bb23
MD5 2511e644a1f2968bd8e35f1ecc254360
BLAKE2b-256 e7ecde22727aecd72f5a3a49ff9bee9ecf88426cdbde1a59233645d963189f53

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpseal-0.1.3-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

0.1.4

2 files

This release

0.1.3 This release

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