npm package: @ivanherula/apidog-mcp-server
Description: MCP server for Apidog API specs and test management
Latest version: 0.1.2

# @ivanherula/apidog-mcp-server

MCP server for Apidog — read API specs, manage test cases, scenarios, suites, test data, and import/export OpenAPI specs from Claude Code or any MCP client.

## Quick Start

```json
{
  "mcpServers": {
    "apidog": {
      "command": "npx",
      "args": [
        "-y",
        "@ivanherula/apidog-mcp-server@latest"
      ],
      "env": {
        "APIDOG_ACCESS_TOKEN": "your-token",
        "APIDOG_PROJECT_ID": "your-project-id"
      }
    }
  }
}
```

## Environment Variables

| Variable | Required | Default | Description |
|---|---|---|---|
| `APIDOG_ACCESS_TOKEN` | Yes | — | Apidog API access token |
| `APIDOG_PROJECT_ID` | Yes | — | Apidog project ID |
| `APIDOG_BRANCH_ID` | No | — | Branch ID (for branched projects) |
| `APIDOG_BASE_URL` | No | `https://api.apidog.com/api/v1` | Internal API base URL |
| `APIDOG_API_VERSION` | No | `2024-03-28` | `X-Apidog-Api-Version` header value used for import/export calls |

## Tools (36)

### Spec (5)
- `list_environments` — List all environments (DEV, TEST, PROD, etc.) with their base URLs
- `list_endpoints` — List the full endpoint tree with IDs, names, and folder structure. Supports `moduleId` and `search` filters.
- `get_endpoint_statistics` — Get endpoint test coverage statistics
- `list_test_case_categories` — List all test case categories
- `list_test_case_tags` — List all test case tags

### Test Cases (6)
- `list_test_cases` — List test cases filtered by endpoint ID, with pagination
- `get_test_case` — Get full details of a single test case
- `create_test_case` — Create a test case. Requires `apiDetailId` (from `list_endpoints`) and `responseId` (from the internal endpoint details API — see note below)
- `bulk_create_test_cases` — Create multiple test cases in one call
- `update_test_case` — Merge-update a test case (fetches current state, applies only provided fields)
- `delete_test_case` — Delete a test case

> **`responseId` note:** This is the internal ID of a response definition on an endpoint. Fetch it with:
> ```bash
> curl -s "https://api.apidog.com/api/v1/projects/{projectId}/http-apis/{endpointId}?locale=en-US" \
>   -H "Authorization: Bearer $APIDOG_ACCESS_TOKEN" \
>   | python3 -c "import sys,json; d=json.load(sys.stdin); [print(r['id'], r['name']) for r in d['data']['responses']]"
> ```
> Pass it as a **string** (e.g., `"177230609"`).

### Test Scenarios (7)
- `list_test_scenarios` — List all test scenarios
- `get_test_scenario_steps` — Get the steps of a scenario
- `create_test_scenario` — Create a test scenario
- `update_test_scenario_steps` — Replace the steps of a scenario
- `delete_test_scenario` — Delete a scenario
- `create_scenario_folder` — Create a scenario folder
- `delete_scenario_folder` — Delete a scenario folder

### Test Suites (7)
- `list_test_suites` — List all test suites
- `get_test_suite` — Get suite details including scenario IDs and environment
- `create_test_suite` — Create a test suite
- `update_test_suite` — Update a test suite
- `delete_test_suite` — Delete a test suite
- `create_suite_folder` — Create a suite folder
- `delete_suite_folder` — Delete a suite folder

### Test Data (5)
- `list_test_data` — List test data sets
- `get_test_data` — Get a test data set with all rows
- `create_test_data` — Create a parameterized test data set (CSV format)
- `update_test_data` — Update a test data set
- `delete_test_data` — Delete a test data set

### Import / Export (5)
- `import_openapi` — Import a full OpenAPI/Swagger spec (JSON or YAML string) into the project. Supports Swagger 2.0, OpenAPI 3.0, and 3.1. Control target folders and overwrite behavior per resource type.
- `import_endpoint` — Import a single endpoint without writing a full spec. Accepts structured parameters, requestBody, and responses objects directly.
- `import_schema` — Import a single data model/schema component.
- `import_endpoints_from_url` — Import an OpenAPI/Swagger spec from a remote URL, with optional basic auth. Endpoint and schema overwrite behaviors are controlled independently.
- `export_openapi` — Export the project spec in OpenAPI 3.0, 3.1, or Swagger 2.0 format (JSON or YAML), optionally filtered by endpoints, folders, or tags.

> **Tags become sub-folders:** If an imported spec includes `tags` on path operations, Apidog places the endpoints in a sub-folder named after the tag inside `targetEndpointFolderId`. Omit `tags` (or strip them before import) to land endpoints directly in the target folder.

### Runners (1)
- `list_runners` — List self-hosted test runners

## License

MIT