Skip to content

Releases: OlegNickeshin/canmcp

Release list

CanMCP 0.2.0

Choose a tag to compare

@OlegNickeshin OlegNickeshin released this 09 Sep 16:19

CanMCP checks a public remote MCP endpoint for protocol, transport, OAuth, and likely ChatGPT/Claude compatibility from your own machine. It never executes the endpoint's tools.

This first public release includes:

  • DNS, TLS certificates, redirects, and a shared SSRF boundary for every outbound request.
  • Streamable HTTP, MCP revision discovery/initialization, tool listing, and static schema validation.
  • Generic, ChatGPT, and Claude profiles with PASS/WARN/FAIL explanations and primary-source links for client rules.
  • OAuth metadata checks by default; optional --oauth login with S256 PKCE, issuer/state validation, DCR or a pre-registered client, and protected MCP inspection.
  • Text and JSON reports. No hosted service or database.

Install and run

Python 3.11 or newer is required. Install from PyPI:

python -m pip install canmcp
canmcp check https://example.com/mcp
canmcp check https://example.com/mcp --json
canmcp check https://example.com/mcp --oauth

Replace the example URL with your public MCP endpoint. Private and loopback scan targets are blocked by default. Interactive OAuth uses a temporary local callback and can create a provider-side client registration.

Validation and scope

201 tests passed locally on Python 3.12, including a full OAuth flow against a local TLS fixture. Ruff, strict Twine metadata checks, and installation in a clean virtual environment passed. The PyPI distribution hashes match the wheel and source archive attached here; checksums are in SHA256SUMS.

The profiles are bounded local diagnostics, not cloud-client certification. No actual ChatGPT/Claude connection or arbitrary tool invocation is performed.

Part of tools for an agent-native web, alongside PeopleMCP and Telegram Business MCP.

Documentation · Changelog · Issues