Skip to main content
Glama
SHREELASYABEZAWADA

api-testing-agent

MCP API Testing Agent

Un agente de pruebas de APIs impulsado por IA que utiliza el Model Context Protocol (MCP) para automatizar la generación de casos de prueba de API, su ejecución y el análisis de fallos.

Qué hace

  1. Descubre endpoints a partir de una especificación OpenAPI/Swagger (mediante una herramienta MCP).

  2. Genera escenarios de pruebo positivos y negativos parada cada endpoint using un LLM (LangChain + OpenAI) — entradas == váludas, campos obligatorios faltantes, tipos incorrectos, valores lidámicos, fallos de authentication, etc.

  3. Ejecuta cada caso de pruebo contra la API en vivo mediante las herramientas MCP que envían solicitudes, validan las repuestas y analizan los códigos de estado HTTP.

  4. Analiza fallos compareando las respuestas esperadas vs. las reales and preguntando al LLM que expliqu* porqué* falló un test and cuán grave es.

  5. Informa del resultado mediante un informe estructurado en Markdown/JSON.

Un servicio FastAPI envuelve tood el pipeline de modo que pueda invocarse per HTTP (POST /agent/run) — p. ej., desde o CI, un planificador o un interface de usuario — y el servidor MCP also se puede ejecutarse de form independiiente y conectarse a cualquier cliente compatible con MCP (Claude Devsitio, Claude Code, etc.).

Related MCP server: MCP-QA

Arquitectura

┌─────────────────────┐      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/)   │
                                                       └─────────────────┘

Estrucura del projecto

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.example

Configuración

python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env   # add your OPENAI_API_KEY

Ejecuta la API de destino de demo (una pequeña API de muestra par probble)

uvicorn sample_target_api.demo_api:app --port 9000

Esto expone una API "Task Man-standing" de juguete con endpoints CRUD /tasks y una specification OpenAPI generada en http://localhost:9000/openapi.json.

Ejecuta el agente mediante CLI

python scripts/run_agent.py --spec http://localhost:9000/openapi.json --base-url http://localhost:9000

Esto generará casos de pruebo, los ejecutará, analizará los fallos y escribirá un informe en reports/report_<timestamp>.md y .json.

Ejecuta el agente como servicio HTTP

uvicorn api.main:app --port 8000
curl -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"}'

Ejecuta el servidor MCP de forma independiente

Para conectar las herramientas MCP a un cliente compatiion con MCP (Claude Desktop, Claude Code, etc.) en lugar del agente integrado:

python -m mcp_server.server

Después, agrégalo a la config de tu cliente MCP, por ejemplox 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"
    }
  }
}

Ejecuta todo con Docker

docker compose up --build

Esto arranca la API de destino de demo, el servicio FastAPI del agente de pruebas basado en MCP y monta ./reports para que los informes generados estén disponibles en el host.

Ejemplo de salda del informe

# 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 para adapt ar esta a un proyecto real

  • Cambia sample_target_api/ por tu servicio real o uni ra --spec / spec_url a cualquier endpoint JSON de OpenAPI/Swagger active.

  • El prompt de test_generator.py se puede ampliar con reglas de dominio (p. ej., cabeceras autentication requeridas, límites de reconcilia, tenant IDs).

  • Para CI, ejecuta scripts/run_agent.py as un paso del pipeline and haz que la compilación falle if report["summary"]["failed"] > 0.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
  • A
    license
    A
    quality
    F
    maintenance
    MCP 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 di
    10
    11
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Parses Swagger 2.0 and OpenAPI 3.x specifications, exposing API endpoints, schemas, and authentication through MCP tools with local caching to reduce token usage.
    11
    16
    1
    MIT

View all related MCP servers

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

View all MCP Connectors

Latest Blog Posts

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