pytest plugin for mcp-assert: run MCP server assertions as pytest test items
Listed on its own since 2026-09-27. Until then it was part of mcp-assert, where its earlier checks remain.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"pytest-mcp-assert","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# pytest-mcp-assert pytest plugin for [mcp-assert](https://github.com/blackwell-systems/mcp-assert). Run MCP server assertions as pytest test items. ## Install ```bash pip install pytest-mcp-assert ``` You also need the mcp-assert binary. Any of these: ```bash brew install blackwell-systems/tap/mcp-assert pip install mcp-assert npm install -g @blackwell-systems/mcp-assert ``` ## Usage Write assertion YAML files (see [mcp-assert docs](https://blackwell-systems.github.io/mcp-assert)): ```yaml # evals/echo.yaml name: echo returns the message server: command: my-mcp-server assert: tool: echo args: message: hello expect: not_error: true contains: ["hello"] timeout: 30s ``` Run with pytest: ```bash pytest --mcp-suite evals/ ``` Each YAML file becomes a pytest test item with pass/fail/skip semantics. ## Options | Option | pyproject.toml | Description | |--------|---------------|-------------| | `--mcp-suite DIR` | `mcp_suite` | Directory containing assertion YAML files | | `--mcp-fixture DIR` | `mcp_fixture` | Fixture directory (substituted for `{{fixture}}`) | | `--mcp-server CMD` | | Override server command for all assertions | | `--mcp-timeout DUR` | `mcp_timeout` | Per-assertion timeout (default: 30s) | | `--mcp-binary PATH` | | Path to mcp-assert binary | ## Configuration ```toml # pyproject.toml [tool.pytest.ini_options] mcp_suite = "evals/" mcp_fixture = "fixtures/" mcp_timeout = "30s" ``` Then just run `pytest` with no extra flags. ## How it works The plugin discovers `.yaml` files in the suite directory, creates a pytest Item for each one, and calls `mcp-assert run --suite <file> --json` to execute it. The JSON result is mapped to pytest outcomes: - `status: "pass"` becomes a pytest pass - `status: "fail"` becomes a pytest failure with the detail as the message - `status: "skip"` becomes a pytest skip - `skip: true` in the YAML skips the test (for known bugs) The Go binary handles all MCP protocol interaction. The plugin is…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.