Releases: OlegNickeshin/canmcp
Release list
CanMCP 0.2.0
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
--oauthlogin 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 --oauthReplace 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.