mcp-assert
A testing tool for MCP servers that connects over real stdio, SSE or HTTP transport, checks tool responses against YAML-defined assertions, and lints and fuzzes servers for schema and protocol issues.
mcp-assert connects to an MCP server the way a real client would, over stdio, SSE or HTTP, performing the full initialize handshake and actual tool calls, then checks the responses against assertions defined in YAML. It reports pass or fail per assertion so a server that passes should work with any MCP client.
An audit mode needs no YAML: it connects to a server, discovers every tool through tools/list, calls each one with schema-generated inputs, and reports which tools respond normally and which crash, using structured, numbered error codes. A separate mode generates starter YAML assertion files from that audit for use in continuous integration, for example as a GitHub Action.
The project also runs its checks, including 14 lint rules, across many public MCP servers and publishes the resulting scorecard of schema and protocol issues it finds.