api-testing-agent
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@api-testing-agentRun API tests from the OpenAPI spec at http://localhost:9000/openapi.json"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP API Testing Agent
An AI-powered API testing agent that uses the Model Context Protocol (MCP) to automate API test-case generation, execution, and failure analysis.
What it does
Discovers endpoints from an OpenAPI/Swagger spec (via an MCP tool).
Generates positive and negative test scenarios for each endpoint using an LLM (LangChain + OpenAI) — valid inputs, missing required fields, wrong types, boundary values, auth failures, etc.
Executes each test case against the live API through MCP tools that send requests, validate responses, and analyze HTTP status codes.
Analyzes failures by diffing expected vs. actual responses and asking the LLM to explain why a test failed and how severe it is.
Reports results as a structured Markdown/JSON test report.
A FastAPI service wraps the whole pipeline so it can be triggered over HTTP
(POST /agent/run) — e.g. from CI, a scheduler, or a UI — and the MCP server
can also be run standalone and plugged into any MCP-compatible client
(Claude Desktop, Claude Code, etc.).
Related MCP server: MCP-QA
Architecture
┌─────────────────────┐ OpenAPI spec / target base URL
│ FastAPI Service │◄──────────────────────────────────
│ (api/main.py) │
└──────────┬───────────┘
│ triggers
┌──────────▼───────────┐
│ Testing Agent │
│ (agent/*.py) │
│ │
│ 1. TestGenerator │──uses──► OpenAI (LangChain)
│ (positive/negative │
│ scenarios) │
│ │
│ 2. TestExecutor │──calls──► MCP Client ──stdio──► MCP Server
│ (runs each case) │ │
│ │ ┌───────┴────────┐
│ 3. FailureAnalyzer │ │ MCP Tools: │
│ (LLM explains diff) │ │ - discover_ │
│ │ │ endpoints │
│ 4. ReportGenerator │ │ - send_request │
│ (md/json report) │ │ - validate_ │
└─────────────────────────┘ │ response │
│ - analyze_ │
│ status_code │
└────────┬───────┘
│ HTTP
┌────────▼───────┐
│ Target API │
│ (any REST API, │
│ e.g. sample_ │
│ target_api/) │
└─────────────────┘Project layout
mcp-api-testing-agent/
├── mcp_server/
│ ├── server.py # MCP server (FastMCP) exposing the 4 tools
│ └── tools/
│ ├── discover.py # discover_endpoints — parses OpenAPI spec
│ ├── request_tool.py # send_request — issues HTTP calls
│ ├── validate.py # validate_response — schema/status checks
│ └── status_analyzer.py # analyze_status_code — status code semantics
├── agent/
│ ├── mcp_client.py # stdio MCP client used by the agent
│ ├── test_generator.py # LLM-based positive/negative test generation
│ ├── test_executor.py # runs generated test cases via MCP tools
│ ├── failure_analyzer.py # LLM explains expected-vs-actual mismatches
│ └── report_generator.py # Markdown + JSON report writer
├── api/
│ └── main.py # FastAPI app: POST /agent/run, GET /agent/reports/{id}
├── schemas/
│ └── models.py # Pydantic models shared across the app
├── sample_target_api/
│ └── demo_api.py # tiny FastAPI service to test the agent against
├── scripts/
│ └── run_agent.py # CLI entrypoint (no FastAPI needed)
├── reports/ # generated test reports land here
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── .env.exampleSetup
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # add your OPENAI_API_KEYRun the demo target API (a small sample API to test against)
uvicorn sample_target_api.demo_api:app --port 9000This exposes a toy "Task Manager" API with /tasks CRUD endpoints and a
generated OpenAPI spec at http://localhost:9000/openapi.json.
Run the agent via CLI
python scripts/run_agent.py --spec http://localhost:9000/openapi.json --base-url http://localhost:9000This will generate test cases, execute them, analyze any failures, and write
a report to reports/report_<timestamp>.md and .json.
Run the agent as an HTTP service
uvicorn api.main:app --port 8000curl -X POST http://localhost:8000/agent/run \
-H "Content-Type: application/json" \
-d '{"spec_url": "http://localhost:9000/openapi.json", "base_url": "http://localhost:9000"}'Run the MCP server standalone
To plug the tools into an MCP-compatible client (Claude Desktop, Claude Code, etc.) instead of the built-in agent:
python -m mcp_server.serverThen add it to your MCP client config, e.g. for Claude Desktop
(claude_desktop_config.json):
{
"mcpServers": {
"api-testing-agent": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "/absolute/path/to/mcp-api-testing-agent"
}
}
}Run everything with Docker
docker compose up --buildThis starts the demo target API, the MCP-backed testing agent FastAPI
service, and mounts ./reports so generated reports are available on the
host.
Sample report output
# API Test Report — 2026-02-03T10:15:00
Target: http://localhost:9000
Total: 18 Passed: 15 Failed: 3 Pass rate: 83%
## Failures
### POST /tasks — missing required field "title" (negative test)
Expected: 422 Unprocessable Entity
Actual: 500 Internal Server Error
Analysis: The endpoint does not validate the request body before hitting the
database layer, so a missing "title" causes an unhandled exception instead
of a client-error response. Severity: High — indicates missing input
validation.Notes on adapting this to a real project
Swap
sample_target_api/for your real service, or point--spec/spec_urlat any live OpenAPI/Swagger JSON endpoint.test_generator.py's prompt can be extended with domain rules (e.g. required auth headers, rate limits, tenant IDs).For CI, run
scripts/run_agent.pyas a pipeline step and fail the build ifreport["summary"]["failed"] > 0.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server that provides tools for exploring and testing APIs through Swagger/OpenAPI documentation.517612MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server for the comprehensive analysis of Swagger 2.0 and OpenAPI 3.x contracts. It allows users to extract detailed information about endpoints, request/response schemas, parameters, and security configurations from API documentation.
- AlicenseAqualityFmaintenanceMCP server for API test case generation from Swagger/OpenAPI specs. Parses Swagger 2.0 and OpenAPI 3.x, generates test cases across 8 categories (positive, negative, boundary, auth, security, idempotency, pagination, business logic), and exports to Postman, TestRail, Allure, k6, pytest, Gherkin, and CSV. Supports internal corporate APIs with auth headers. Auto-saves export files to your working di10112MIT
- AlicenseAqualityCmaintenanceParses Swagger 2.0 and OpenAPI 3.x specifications, exposing API endpoints, schemas, and authentication through MCP tools with local caching to reduce token usage.11161MIT
Related MCP Connectors
MCP server for AI access to Swagger by SmartBear.
APIs.guru MCP — keyless directory of 2,500+ public APIs and their OpenAPI specs.
Search, document and execute authenticated API calls across 700+ apps via one MCP server
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SHREELASYABEZAWADA/Mcp-Api-Testing-Agent--Model-Context-Protocol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server