{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_gjfygjerq7jq","handle":"pytest-mcp-assert","url":"https://wellknown.network/agents/pytest-mcp-assert","links":{"self":"https://wellknown.network/agents/pytest-mcp-assert/record.json","html":"https://wellknown.network/agents/pytest-mcp-assert","markdown":"https://wellknown.network/agents/pytest-mcp-assert/record.md","api":"https://wellknown.network/api/v1/agents/pytest-mcp-assert","status":"https://wellknown.network/api/v1/agents/pytest-mcp-assert/status","claim":"https://wellknown.network/agents/pytest-mcp-assert/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/pytest-mcp-assert/claim.json","badge":"https://wellknown.network/agents/pytest-mcp-assert/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/pytest-mcp-assert/history","tools":"https://wellknown.network/api/v1/agents/pytest-mcp-assert/tools"},"ard":{"identifier":"urn:air::server:pytest-mcp-assert","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"pytest-mcp-assert","summary":"pytest plugin for mcp-assert: run MCP server assertions as pytest test items","description":"# pytest-mcp-assert\n\npytest plugin for [mcp-assert](https://github.com/blackwell-systems/mcp-assert). Run MCP server assertions as pytest test items.\n\n## Install\n\n```bash\npip install pytest-mcp-assert\n```\n\nYou also need the mcp-assert binary. Any of these:\n\n```bash\nbrew install blackwell-systems/tap/mcp-assert\npip install mcp-assert\nnpm install -g @blackwell-systems/mcp-assert\n```\n\n## Usage\n\nWrite assertion YAML files (see [mcp-assert docs](https://blackwell-systems.github.io/mcp-assert)):\n\n```yaml\n# evals/echo.yaml\nname: echo returns the message\nserver:\n  command: my-mcp-server\nassert:\n  tool: echo\n  args:\n    message: hello\n  expect:\n    not_error: true\n    contains: [\"hello\"]\ntimeout: 30s\n```\n\nRun with pytest:\n\n```bash\npytest --mcp-suite evals/\n```\n\nEach YAML file becomes a pytest test item with pass/fail/skip semantics.\n\n## Options\n\n| Option | pyproject.toml | Description |\n|--------|---------------|-------------|\n| `--mcp-suite DIR` | `mcp_suite` | Directory containing assertion YAML files |\n| `--mcp-fixture DIR` | `mcp_fixture` | Fixture directory (substituted for `{{fixture}}`) |\n| `--mcp-server CMD` | | Override server command for all assertions |\n| `--mcp-timeout DUR` | `mcp_timeout` | Per-assertion timeout (default: 30s) |\n| `--mcp-binary PATH` | | Path to mcp-assert binary |\n\n## Configuration\n\n```toml\n# pyproject.toml\n[tool.pytest.ini_options]\nmcp_suite = \"evals/\"\nmcp_fixture = \"fixtures/\"\nmcp_timeout = \"30s\"\n```\n\nThen just run `pytest` with no extra flags.\n\n## How it works\n\nThe 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:\n\n- `status: \"pass\"` becomes a pytest pass\n- `status: \"fail\"` becomes a pytest failure with the detail as the message\n- `status: \"skip\"` becomes a pytest skip\n- `skip: true` in the YAML skips the test (for known bugs)\n\nThe Go binary handles all MCP protocol interaction. The plugin is…","publisher":null,"homepage":"https://blackwell-systems.github.io/mcp-assert","repository":"https://github.com/blackwell-systems/mcp-assert","version":"0.12.3","license":null,"protocols":["mcp"],"tags":["pytest","mcp","testing","assertions","model-context-protocol"],"pricing":null,"endpoints":[{"url":"pypi:pytest-mcp-assert","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"code.testing","name":"Testing","confidence":1,"provenance":"declared"},{"slug":"dev.filesystem","name":"Filesystem","confidence":0.802,"provenance":"derived"}],"categories":["code","dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"pytest-mcp-assert","registry":"pypi","observedAt":"2026-11-03T22:25:48.476Z","publishedAt":"2026-06-04T19:36:05.113379Z","latestVersion":"0.12.3"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"pytest-mcp-assert","url":"https://pypi.org/project/pytest-mcp-assert/","firstSeenAt":"2026-09-10T10:24:45.455Z","fetchedAt":"2026-11-03T22:25:13.936Z","normalizedAt":"2026-11-03T22:25:13.936Z"}]},"firstSeenAt":"2026-09-10T10:24:45.455Z","updatedAt":"2026-11-03T22:25:48.476Z"}