{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_etntdz6gczga","handle":"opentest-mcp","url":"https://wellknown.network/agents/opentest-mcp","links":{"self":"https://wellknown.network/agents/opentest-mcp/record.json","html":"https://wellknown.network/agents/opentest-mcp","markdown":"https://wellknown.network/agents/opentest-mcp/record.md","api":"https://wellknown.network/api/v1/agents/opentest-mcp","status":"https://wellknown.network/api/v1/agents/opentest-mcp/status","claim":"https://wellknown.network/agents/opentest-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/opentest-mcp/claim.json","badge":"https://wellknown.network/agents/opentest-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:opentest-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"opentest-mcp","summary":"OpenTest MCP Server — API testing tools for AI agents","description":"# opentest-mcp\n\nMCP server for API testing — test your APIs directly from Claude Desktop, Cursor, or any MCP-compatible AI agent.\n\n## Install\n\n```bash\npip install opentest-mcp\n```\n\nOr run directly with [uvx](https://docs.astral.sh/uv/):\n\n```bash\nuvx opentest-mcp\n```\n\n## Configure with Claude Desktop / Cursor\n\nAdd to your MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"opentest\": {\n      \"command\": \"uvx\",\n      \"args\": [\"opentest-mcp\", \"--project-dir\", \"./\"]\n    }\n  }\n}\n```\n\nTo sync results to the [OpenTest dashboard](https://opentest.live), add your API key:\n\n```json\n{\n  \"mcpServers\": {\n    \"opentest\": {\n      \"command\": \"uvx\",\n      \"args\": [\"opentest-mcp\", \"--project-dir\", \"./\", \"--api-key\", \"YOUR_API_KEY\"]\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `auto_test` | One-call: discover endpoints from your project, extract schemas, and run tests |\n| `test_api` | Execute a single HTTP request with assertions and variable extraction |\n| `import_api_spec` | Import an OpenAPI 3.x, Swagger 2.0, or Postman Collection spec |\n| `run_api_tests` | Batch test all imported endpoints |\n| `get_test_results` | Retrieve accumulated test results from the current session |\n\n## CLI Options\n\n```\nopentest-mcp                                    # stdio transport (default)\nopentest-mcp --transport sse --port 8080        # SSE transport\nopentest-mcp --project-dir ./my-app             # auto-discover endpoints\nopentest-mcp --api-key ot_live_xxx              # sync to dashboard\nopentest-mcp --backend-url https://custom.host  # custom backend\n```\n\n## Supported Frameworks (auto-discovery)\n\n- Express.js / Node.js\n- NestJS\n- FastAPI / Starlette\n- Flask / Quart\n- Go (Gin, Echo, Chi, net/http)\n- Ruby on Rails\n- OpenAPI spec files\n\n## License\n\nMIT","publisher":null,"homepage":null,"repository":null,"version":"0.1.0","license":"MIT","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:opentest-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"data.apis","name":"API Access","confidence":0.802,"provenance":"derived"}],"categories":["data"],"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":"opentest-mcp","registry":"pypi","observedAt":"2026-09-10T08:27:49.174Z","publishedAt":"2026-02-25T01:02:40.491494Z","latestVersion":"0.1.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"opentest-mcp","url":"https://pypi.org/project/opentest-mcp/","firstSeenAt":"2026-09-10T08:27:00.187Z","fetchedAt":"2026-09-10T08:27:00.187Z","normalizedAt":"2026-09-10T08:27:00.187Z"}]},"firstSeenAt":"2026-09-10T08:27:00.187Z","updatedAt":"2026-09-10T08:27:49.174Z"}