mcp-assert

Blackwell Systems·BlackwellSystems.mcp-assert

Deterministic correctness testing for MCP servers. CLI, CI, and zero-config audit.

A single Go binary that connects to your MCP server over stdio, SSE, or HTTP, calls your tools, and asserts the results. Define assertions in YAML, run them in CI. Works with servers written in Go, TypeScript, Python, Rust, Java, or anything else that speaks MCP.

winget install --id BlackwellSystems.mcp-assert --exact --source winget

Latest 0.12.3·June 4, 2026

Release Notes

v0.12.3: Lint False Positive Fix

Fixed E105/E107 false positive reduction (#23) On servers with many tools sharing path/ID/content params (e.g., 65-tool code intelligence servers), E105 and E107 were generating thousands of unusable findings. This release eliminates the noise:

  • E105 now skips params that are unconstrained by design: filesystem paths (*_path, *_file, _dir), identifiers (_id, *_uri), and free-text content (new_text, query, filter, command, description, scope, etc.)
  • E107 collapses cycle variants to one finding per unique cycle (was reporting every path permutation)
  • E107 downgraded from error to warning (circular deps are advisory) Before (65-tool server): 2,784 E105 errors + 751 E107 errors = 3,535 unusable findings After: 0 E105 errors, 2 E107 warnings Real issues (missing descriptions, missing examples, schema drift) are no longer buried.

Upgrade Notes If you pinned --threshold to a high number to work around E105/E107 noise, you can lower it now. --threshold 0 should work for well-documented servers.

Installer type: zip

ArchitectureScopeDownloadSHA256
x64Download62E33D01C47DCCAB7E72A5E7C038D5A7681C2AAB450924AC17C9278E75836AE0
arm64DownloadC08A5BC635D30C8BD63C85AA88E86F5BCC47BFF563A3950CC306DECEAB9374DA

Details

Homepage
https://github.com/blackwell-systems/mcp-assert
License
MIT
Publisher
Blackwell Systems
Support
https://github.com/blackwell-systems/mcp-assert/issues

Tags

clideveloper-toolsmcpmodel-context-protocoltesting

Older versions (1)

0.6.0
ArchitectureScopeDownloadSHA256
x64DownloadF5AE0C8E39070A31E84C63BA6ABB6F331B7213AC25BC553D9E5C1DDF086C5B40
arm64Download20BF9742CD8C03C1A25E8A2C89D82609D519B389CA0EE428774ECDEA5EDAC4BD