mcpseal
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
mcpseal initlaunches 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.jsonyou commit to your repo (likepackage-lock.json).mcpseal installrewrites your client's config so it launches your servers throughmcpseal proxyinstead of directly.- From then on, every time a tool definition is served to your client,
mcpsealre-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.
Metadata
Release files for mcpseal 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mcpseal-0.1.4.tar.gz | 54.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcpseal-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 102.5 kB
Release files / mcpseal-0.1.4.tar.gz
| Download URL | mcpseal-0.1.4.tar.gz |
|---|---|
| Size | 54.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1b0b99e7ab9ecbb6dd2aaef60f38b7edf463c5468ff5a835257e75b40d57b468
|
|
BLAKE2b-256 checksum How to use checksums |
171ec2e2e729173635070e702bcd8b79982f82e7e9896acf1149f24834046684
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 22, 2026.
Transparency logRelease files / mcpseal-0.1.4-py3-none-any.whl
| Download URL | mcpseal-0.1.4-py3-none-any.whl |
|---|---|
| Size | 47.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cedc447949e7d8d98a208f9c996aa941e6585cf9e2260620af4c76d5c22f75de
|
|
BLAKE2b-256 checksum How to use checksums |
c4df88f62d82290d665a5654cdec5070036f86e5117c66804ca29d72f5dac278
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 22, 2026.
Transparency logSecurity for mcpseal 0.1.4
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for mcpseal-0.1.4.tar.gz
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 Aug 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.