Skip to content

mcp-lint v1.2

Latest

Choose a tag to compare

@7shep 7shep released this 08 Nov 21:16
72061cc

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-linter

The package is mcp-linter; the command is still mcp-lint.

What's new

  • Streamable HTTP transport. run, lock and init-fixtures take --url instead 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.yml is a composite Action that works with a command or a url and writes the report to the job summary. .pre-commit-hooks.yaml adds the hook mcp-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-env is refused over plain http:// unless the host is loopback, and plain http:// 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, run and lock --check redact it, and lock and init-fixtures refuse to write it to disk.

Changed

  • Now requires mcp>=2.3 and httpx2.
  • run --json adds server.transport.

Known limits

  • Benign query values such as ?mode=read count as secrets.
  • Tokens in the URL path get no echo protection.
  • proxy and eval are stdio only.

Requires Python 3.10+.