
Test MCP servers and the agents that call them in pytest
Your MCP unit tests pass, but did the agent call the tool? M3 runs your server through real Claude Code, Codex, OpenCode or Pi and asserts on the calls they actually made, in plain pytest. Direct tests need no API key. m3 ui shows every trace and tool call; m3 ci test --upload gates PRs and keeps runs on app.m3.sineframe.com. Open source, Apache-2.0.
SineFrame M3 is an open-source testing tool that verifies MCP server interactions with agents using pytest, without requiring an API key. It provides a user interface for tracing calls and integrates with CI/CD workflows to manage pull requests.
A source that found nothing is a measurement. A source that has not run is a gap. Neither means the launch lacks the thing.