Repository navigation
mcp-lint v1.2 lints remote MCP servers, adds a CI gate for rug pulls, and is the first release on PyPI.
pip install mcp-linterThe package is mcp-linter; the command is still mcp-lint.
What's new
- Streamable HTTP transport.
run,lockandinit-fixturestake--urlinstead of a launch command.--header "Name: value"is for non-secret headers.--header-env "Name=VAR"reads a secret header value from an environment variable. - GitHub Action and pre-commit hook for
lock --check.action.ymlis a composite Action that works with acommandor aurland writes the report to the job summary..pre-commit-hooks.yamladds the hookmcp-lint-lock. - PyPI releases. Publishing uses Trusted Publishing, so no API token is stored.
Secret handling over HTTP
- The URL is shown only as
scheme://host. Locks and reports store a hash of the scheme, host, port and path, never user info or the query string. - Header values are never stored or hashed, so rotating a token isn't a lock change.
--header-envis refused over plainhttp://unless the host is loopback, and plainhttp://clients ignore proxy environment variables.- A redirect to another origin isn't followed, so headers aren't sent there.
- If a server echoes a secret back,
runandlock --checkredact it, andlockandinit-fixturesrefuse to write it to disk.
Changed
- Now requires
mcp>=2.3andhttpx2. run --jsonaddsserver.transport.
Known limits
- Benign query values such as
?mode=readcount as secrets. - Tokens in the URL path get no echo protection.
proxyandevalare stdio only.
Requires Python 3.10+.