# cocaxcode/api-testing-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/cocaxcode/api-testing-mcp  
**GitHub Stars:** 13  
**npm Downloads (last month):** 356  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/cocaxcode-api-testing-mcp

## Description
The most complete API testing MCP — Postman inside your AI assistant. Per-project environment groups with {{variable}} interpolation, saved collections, multi-step flows with response extraction, assertions, load testing, and OpenAPI mock generation. 42 tools, zero cloud account needed.

## Tools
Capabilities this server exposes over MCP:

- **request** — Ejecuta un HTTP request. URLs relativas (/path) usan BASE_URL del entorno activo. Soporta {{variables}}. La respuesta se comprime por defecto (verbosity=normal) para ahorrar tokens; usa verbosity=full o inspect_last_response si necesitas la respuesta completa.
- **collection_save** — Guarda un request en la colección local. Si ya existe un request con el mismo nombre, lo sobreescribe.
- **collection_list** — Lista todos los requests guardados en la colección. Opcionalmente filtra por tag.
- **collection_get** — Obtiene los detalles completos de un request guardado por su nombre.
- **collection_delete** — Elimina un request guardado de la colección.
- **env_create** — Crea un nuevo entorno. PREGUNTA al usuario: nombre, grupo (o global) y variables. Si el grupo no existe, se crea automaticamente.
- **env_list** — Lista todos los entornos disponibles e indica cuál está activo.
- **env_set** — Establece una variable en un entorno. Si no se especifica entorno, usa el activo.
- **env_get** — Obtiene una variable específica o todas las variables de un entorno. Los valores sensibles (token, password, secret, api_key...) se enmascaran por defecto. Pide una variable por nombre para ver su valor completo.
- **env_spec** — Asocia o desasocia un spec API a un entorno. Si no se especifica entorno, usa el activo.
- **env_rename** — Renombra un entorno existente. Si es el entorno activo, actualiza la referencia.
- **env_delete** — Elimina un entorno y todas sus variables. Si es el entorno activo, lo desactiva.
- **env_switch** — Cambia el entorno activo. Sin project cambia el global. Con project, solo aplica a ese directorio.
- **env_project_clear** — Elimina la asociación de entorno específico de un proyecto. El proyecto no tendrá entorno activo hasta que se asigne uno.
- **env_project_list** — Lista todos los proyectos con entornos específicos asignados.
- **env_group_create** — Crea un nuevo grupo de entornos. Luego añade scopes (directorios) con env_group_add_scope.
- **env_group_list** — Lista todos los grupos con sus scopes, default y entornos.
- **env_group_delete** — Elimina un grupo. Los entornos del grupo quedan como globales.
- **env_group_add_scope** — Añade un directorio (scope) a un grupo. Los entornos del grupo seran accesibles desde ese directorio.
- **env_group_remove_scope** — Quita un directorio (scope) de un grupo.
- **env_set_default** — Marca un entorno como el default de su grupo. El default se activa automaticamente al entrar al proyecto.
- **env_set_group** — Asigna o cambia el grupo de un entorno existente. Para sacarlo a global, pasar group vacío "".
- **api_import** — Importa un spec OpenAPI/Swagger desde una URL o archivo local (JSON o YAML). Guarda los endpoints y schemas para consulta.
- **api_spec_list** — Lista todos los specs de API importados. Úsalo para descubrir qué APIs están disponibles.
- **api_endpoints** — Lista los endpoints de un API importada. Filtra por tag, método o path. Si no se especifica nombre y solo hay un spec importado, lo usa automáticamente.
- **api_endpoint_detail** — Muestra el detalle completo de un endpoint: parámetros, body schema, y respuestas. Útil para saber qué datos enviar.
- **assert** — Ejecuta un request y valida la respuesta con assertions. Retorna resultado pass/fail por cada assertion.
- **flow_run** — Ejecuta una secuencia de requests en orden. Extrae variables de cada respuesta para usar en pasos siguientes con {{variable}}.
- **export_curl** — Genera un comando cURL a partir de un request guardado en la colección. Listo para copiar y pegar.
- **diff_responses** — Ejecuta dos requests y compara sus respuestas. Útil para detectar regresiones o comparar entornos.
- **bulk_test** — Ejecuta todos los requests guardados en la colección y reporta resultados. Filtrable por tag.
- **export_collection** — Exporta los requests guardados en formato nativo (JSON) a .atm/. Carpeta portable — cópiala a otro proyecto para importar.
- **import_collection** — Importa requests desde .atm/collection.json o un archivo específico. Auto-detecta .atm/ en el proyecto.
- **export_environment** — Exporta un entorno en formato nativo (JSON) a .atm/. Carpeta portable — cópiala a otro proyecto para importar.
- **import_environment** — Importa un entorno desde .atm/ o un archivo específico. Auto-detecta archivos .env.json en .atm/.
- **export_postman_collection** — Exporta los requests guardados como una Postman Collection v2.1 (JSON). Escribe el archivo en disco, importable directamente en Postman.
- **import_postman_collection** — Importa una Postman Collection v2.1 (JSON) como requests guardados en la colección. Soporta folders, auth, headers, body y query params.
- **import_postman_environment** — Importa un Postman Environment (JSON) como entorno local. Soporta variables con valores initial/current.
- **export_postman_environment** — Exporta un entorno como Postman Environment (JSON). Escribe el archivo en disco, importable directamente en Postman.
- **mock** — Genera datos mock/fake para un endpoint basándose en su spec OpenAPI importada. Útil para frontend sin backend.
- **load_test** — Lanza N requests concurrentes al mismo endpoint y mide tiempos promedio, percentiles y tasa de errores.
- **inspect_last_response** — Recupera la respuesta HTTP completa de una llamada previa de `request` cuando la versión comprimida no basta. Usa el call_id que aparece en el campo call_id de la respuesta comprimida. Sin call_id devuelve la más reciente.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "api-testing-mcp": {
    "command": "npx",
    "args": ["-y","@cocaxcode/api-testing-mcp@latest"]
  }
}
```

## Documentation

## What cocaxcode/api-testing-mcp does

cocaxcode/api-testing-mcp provides an MCP interface for exercising and inspecting HTTP APIs from an AI assistant. The `request` tool supports common HTTP methods, headers, query parameters, JSON bodies, authentication, custom timeouts, and `{{variable}}` interpolation. Relative URLs such as `/users` use `BASE_URL` from the active environment.

Requests can be saved in a local collection, listed with optional tag filtering, retrieved by name, or deleted. The server can also generate a cURL command from a saved request. Environment management includes creating, renaming, switching, grouping, assigning project scopes, setting defaults, and masking sensitive values when variables are displayed.

## How it works

The server runs locally through an MCP client and keeps its data as local JSON rather than requiring a cloud account. An active environment supplies variables to requests. Groups can make environments available to selected directory scopes, while project-specific assignments determine which environment applies in a given directory.

Responses from `request` are compressed by default to reduce context usage. The verbosity can be changed to `minimal`, `normal`, or `full`; selected body fields and a maximum body size can also be requested. Each compressed response includes a call identifier that can be used with `inspect_last_response` to recover the stored response without sending the request again.

OpenAPI and Swagger documents can be imported from a URL or local JSON/YAML file. After import, endpoint lists can be filtered by tag, method, or path, and endpoint details expose parameters, request schemas, and response information. If only one specification is available, endpoint tools can use it automatically when no name is supplied.

## Setup and configuration

cocaxcode/api-testing-mcp is installed with `npx` and requires Node.js 20 or later according to the repository metadata. The README provides configurations for Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Codex CLI, and Gemini CLI. A typical stdio configuration runs `npx -y @cocaxcode/api-testing-mcp@latest`.

After installation, create an environment with a `BASE_URL`, then switch to it or mark it as the default for its group. Import an API specification when schema-aware endpoint discovery is useful. Environment values are supplied through the server’s environment tools rather than documented process-level environment variables.

## Tools and capabilities

- Execute HTTP requests with variable interpolation and configurable response detail.
- Save, inspect, list, filter, and delete reusable collection requests.
- Create and manage global, grouped, and project-scoped environments.
- Import OpenAPI or Swagger files and inspect available endpoints and schemas.
- Validate responses with assertions and run ordered request flows with extracted variables.
- Compare two request responses and export saved requests as cURL.

## Limitations and notes

The default response is not the complete raw response: headers may be filtered and the body may be truncated. Use `verbosity=full`, selected fields, or `inspect_last_response` when complete data is required. Sensitive environment values are masked by default and must be requested by name to view their full value.

The provided installation uses a local stdio process, and the repository describes storage as plain JSON owned by the user. The material does not document hosted execution, built-in cloud synchronization, or required process-level environment variables.

_Full upstream README: https://allmcps.com/mcp/cocaxcode-api-testing-mcp/readme_

