Skip to main content

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.

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.2.tar.gz (49.2 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.2-py3-none-any.whl (46.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcpseal-0.1.2.tar.gz
  • Upload date:
  • Size: 49.2 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.2.tar.gz
Algorithm Hash digest
SHA256 3747d06df3195f7324450ac5f4e7d732b27b36448f18bbcad9f899bbe2a3dc34
MD5 a23cef41a8c4f17bc123b883f55690d1
BLAKE2b-256 1793da2b5af16aea6e347fd94553696237db1bdbfb5528faa5560b6d8cfff41c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mcpseal-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 46.1 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0bebbcbe12b67573b760e3e448d2a0d5413a2f05e3685bc9a114d99d56e91307
MD5 4afb97b5b19524c16c1e10a0779bbe9a
BLAKE2b-256 bfcda467f55326cb0416689fd526061ad68f7c16dbd0274f9e3cfc0db1625733

See more details on using hashes here.

Provenance

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

0.1.3

2 files

This release

0.1.2 This release

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