Skip to main content
Glama
apidog-mcp

apidog-mcp

by ixlammm

apidog-mcp

apidog-mcp is a stdio MCP server for Apidog. It lets an MCP client such as opencode list projects, inspect API trees, create modules and folders, and add or update requests without configuring every Apidog project by hand.

Quick start

Use the published package with npx from your MCP client configuration.

{
  "mcp": {
    "apidog": {
      "type": "local",
      "command": ["npx", "-y", "@byixlam/apidog-mcp"],
      "environment": {
        "APIDOG_ACCESS_TOKEN": "adgp_xxx",
        "APIDOG_TEAM_ID": "679680"
      }
    }
  }
}

APIDOG_ACCESS_TOKEN is required for Apidog API calls. The server still starts without it, but tools will return a clear setup error until the token is configured and the MCP client is restarted.

Optional environment variables:

  • APIDOG_TEAM_ID: default team for apidog_list_team_projects.

  • APIDOG_LOCALE: defaults to en-US.

  • APIDOG_CLIENT_VERSION: defaults to 2.8.34.

Configure a default project

Most tools accept projectId. If you do not want to pass it every time, run apidog_configure_project once in the workspace:

{
  "projectId": 1312991,
  "branchId": 0
}

This writes apidog.json and adds it to .gitignore.

Related MCP server: apidog-tests-mcp

Tools

Setup and discovery

  • apidog_check_auth

  • apidog_configure_project

  • apidog_list_user_projects

  • apidog_list_user_teams

  • apidog_list_team_projects

Project navigation

  • apidog_list_modules

  • apidog_list_environments

  • apidog_list_api_tree

  • apidog_list_api_detail_folders

  • apidog_list_api_responses

  • apidog_list_test_case_categories

  • apidog_list_test_case_tags

  • apidog_list_runners

  • apidog_get_http_api

Modules

  • apidog_create_module

  • apidog_update_module

  • apidog_rename_module

  • apidog_delete_module

Delete tools require confirmDelete: true.

Folders

  • apidog_create_api_detail_folder

  • apidog_rename_api_detail_folder

  • apidog_delete_api_detail_folder

Delete tools require confirmDelete: true.

Apidog-native requests

These tools work directly with Apidog HTTP API details.

  • apidog_add_request

  • apidog_update_request

  • apidog_delete_request

  • apidog_create_api_detail

  • apidog_update_api_detail

  • apidog_delete_api_detail

Use apidog_add_request and apidog_update_request for normal request creation and editing. Use the raw api_detail tools when you need full control over Apidog-specific fields.

When a URL contains path parameters such as /users/{id}/posts/{postId}, the request tools automatically create path parameters for id and postId unless they already exist.

OpenAPI import/export

  • apidog_export_openapi

  • apidog_get_openapi

  • apidog_validate_openapi

  • apidog_import_openapi

  • apidog_add_endpoint

  • apidog_update_endpoint

  • apidog_upsert_endpoint

  • apidog_delete_endpoint

  • apidog_patch_openapi

The endpoint tools use an export-modify-validate-import flow. Before importing anything, the server validates the OpenAPI document. apidog_delete_endpoint requires both confirmDelete: true and deleteUnmatchedResources: true.

Common examples

Create a folder

{
  "moduleId": 1312066,
  "name": "Billing",
  "parentId": 0,
  "type": "http"
}

Add a request inside a folder

{
  "moduleId": 1312066,
  "folderId": 9034034,
  "name": "Get invoice",
  "method": "get",
  "path": "/invoices/{invoiceId}",
  "status": "developing",
  "responses": [
    {
      "code": 200,
      "name": "Success",
      "contentType": "json",
      "jsonSchema": {
        "type": "object",
        "properties": {
          "invoiceId": { "type": "string" }
        }
      },
      "itemSchema": {}
    }
  ]
}

Add a folder placeholder request

Apidog allows a request with an empty path inside a folder. This is useful for drafts.

{
  "moduleId": 1312066,
  "folderId": 9034034,
  "name": "Draft request",
  "method": "get",
  "path": ""
}

Update an endpoint through OpenAPI

{
  "moduleId": 1312066,
  "path": "/invoices/{invoiceId}",
  "method": "get",
  "patch": {
    "summary": "Get invoice by ID",
    "responses": {
      "200": {
        "description": "Invoice returned"
      }
    }
  }
}

Delete a request

{
  "apiDetailId": 37814603,
  "confirmDelete": true
}

How it works

The server talks to https://api.apidog.com and sends the access token as a Bearer token. Project-scoped calls include the project ID and branch ID headers when available.

There are two editing paths:

  1. Direct Apidog tools for modules, folders, and Apidog-native request details.

  2. OpenAPI tools for contract-style endpoint changes using Apidog import/export.

Use direct request tools when you care about Apidog-specific fields. Use OpenAPI tools when you want to make portable API contract changes.

Local development

Install dependencies and build:

npm install
npm run build

Run checks:

npm run typecheck
npm pack --dry-run

Start locally:

APIDOG_ACCESS_TOKEN=adgp_xxx node dist/index.js

The server uses stdio, so it does not print a startup banner.

Testing safely

When testing write tools against a real Apidog project:

  1. Use a disposable project or copy.

  2. Create a temporary module with a unique name.

  3. Create folders and requests only inside that module.

  4. Delete the temporary module when finished.

  5. List modules and the API tree to confirm cleanup.

Avoid testing delete tools against existing project resources.

Notes

This project uses both documented Apidog import/export APIs and endpoints used by the Apidog web app. Those web-app endpoints can change without notice.

Keep destructive tools behind confirmDelete: true, and do not store session cookies or other browser session values in this repository.

Donations

USDT BEP20: 0x589aC54204D9BfBe7E455E09b5fcbD4231C0F55b

Available Tools

36 tools
apidog_add_endpointC

Add an endpoint by export-modify-validate-import.

Inputs: path (required), method (required), operation (required), options, +8 more.

apidog_add_requestC

Create an Apidog HTTP request/API detail with practical defaults.

Inputs: name (required), method (required), moduleId (required), auth, +11 more.

apidog_check_authA

Verify APIDOG_ACCESS_TOKEN by calling Apidog's current user endpoint.

Inputs: no named parameters.

apidog_configure_projectB

Write apidog.json in the current directory and add it to .gitignore.

Inputs: projectId (required), branchId.

apidog_create_api_detailC

Create an Apidog API detail using raw Apidog form fields.

Inputs: apiDetail (required), branchId, projectId.

apidog_create_api_detail_folderC

Create an API detail folder.

Inputs: name (required), moduleId (required), type, branchId, +2 more.

apidog_create_moduleB

Create a module in an Apidog project.

Inputs: name (required), branchId, projectId.

apidog_delete_api_detailC

Delete an Apidog API detail/request. Requires confirmDelete=true.

Inputs: apiDetailId (required), confirmDelete (required), branchId, projectId.

apidog_delete_api_detail_folderB

Delete an API detail folder. Requires confirmDelete=true.

Inputs: folderId (required), confirmDelete (required), branchId, projectId.

apidog_delete_endpointC

Delete an endpoint by export-modify-validate-import. Requires confirmDelete=true.

Inputs: path (required), method (required), confirmDelete (required), deleteUnmatchedResources (required), +9 more.

apidog_delete_moduleB

Delete a module in an Apidog project. Requires confirmDelete=true.

Inputs: moduleId (required), confirmDelete (required), branchId, projectId.

apidog_delete_requestB

Alias for deleting an Apidog HTTP API detail/request. Requires confirmDelete=true.

Inputs: apiDetailId (required), confirmDelete (required), branchId, projectId.

apidog_export_openapiC

Export OpenAPI from Apidog.

Inputs: branchId, moduleId, projectId, oasVersion, +4 more.

apidog_get_http_apiB

Get an Apidog HTTP API detail by ID.

Inputs: apiDetailId (required), branchId, projectId.

apidog_get_openapiD

Alias for apidog_export_openapi.

Inputs: branchId, moduleId, projectId, oasVersion, +4 more.

apidog_import_openapiC

Validate and import OpenAPI into Apidog.

Inputs: document (required), options, branchId, moduleId, +1 more.

apidog_list_api_detail_foldersA

List API detail folders for endpoint placement reference.

Inputs: branchId, projectId.

apidog_list_api_responsesC

List reusable API response components.

Inputs: branchId, projectId.

apidog_list_api_treeC

List the Apidog API tree for the configured or specified project.

Inputs: branchId, projectId.

apidog_list_environmentsB

List environments in an Apidog project.

Inputs: branchId, projectId.

apidog_list_modulesB

List modules in an Apidog project.

Inputs: branchId, projectId.

apidog_list_runnersA

List self-hosted general runners for a project.

Inputs: branchId, projectId.

apidog_list_team_projectsA

List projects for APIDOG_TEAM_ID, or for an explicit teamId.

Inputs: teamId.

apidog_list_test_case_categoriesA

List test case categories for a project.

Inputs: branchId, projectId.

apidog_list_test_case_tagsB

List test case tags for a project.

Inputs: branchId, projectId.

apidog_list_user_projectsA

List projects accessible by the current user.

Inputs: no named parameters.

apidog_list_user_teamsA

List teams accessible by the current user.

Inputs: no named parameters.

apidog_patch_openapiA

Apply RFC 6902 JSON Patch to exported OpenAPI, validate, then import.

Inputs: patch (required), options, branchId, moduleId, +6 more.

apidog_rename_api_detail_folderC

Rename an API detail folder.

Inputs: name (required), folderId (required), branchId, projectId.

apidog_rename_moduleC

Rename a module in an Apidog project.

Inputs: name (required), moduleId (required), branchId, projectId.

apidog_update_api_detailA

Update an Apidog API detail using raw Apidog form fields. Prefer passing a full detail body from apidog_get_http_api.

Inputs: apiDetail (required), apiDetailId (required), branchId, projectId.

apidog_update_endpointC

Patch an existing endpoint operation by export-modify-validate-import. Null values remove fields.

Inputs: path (required), patch (required), method (required), options, +8 more.

apidog_update_moduleC

Update module fields. Use for renaming modules.

Inputs: patch (required), moduleId (required), branchId, projectId.

apidog_update_requestB

Update an Apidog HTTP request/API detail with practical defaults. Include all fields you want preserved.

Inputs: name (required), method (required), moduleId (required), apiDetailId (required), +12 more.

apidog_upsert_endpointC

Create or update an endpoint operation by export-modify-validate-import.

Inputs: path (required), method (required), operation (required), options, +8 more.

apidog_validate_openapiA

Validate an OpenAPI JSON or YAML document without importing it.

Inputs: document (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.4/5.0

    Scored across 36 tools

    Disambiguation2/5

    Multiple tools overlap significantly: create_api_detail, add_request, and add_endpoint all create API endpoints; update_api_detail, update_request, update_endpoint, and patch_openapi all handle updates; delete_api_detail, delete_request, and delete_endpoint are near-duplicates. Agents will struggle to choose the correct tool without deep inspection.

    Naming Consistency3/5

    All tools share a consistent 'apidog_' prefix and snake_case format, mostly following verb_noun. However, there are inconsistencies: 'add' vs 'create' for similar operations, 'get_openapi' is an alias for 'export_openapi', and 'update_module' overlaps with 'rename_module'.

    Tool Count2/5

    With 36 tools, the surface is too large for a single MCP server. Many tools are aliases or redundant variants (e.g., three creation methods, three update methods, three delete methods), inflating the count without adding distinct capability.

    Completeness2/5

    The API lifecycle is covered through multiple overlapping paths, but there are notable gaps: no environment CRUD beyond listing, no test case management beyond listing tags/categories, and the export-modify-validate-import cycle suggests missing native mutation endpoints. The surface is broad but not cleanly complete.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      D
      maintenance
      An MCP server that integrates Apifox API documentation with AI assistants, allowing AI to extract and understand API information from Apifox projects.
      2
      46 npm
      ISC
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for managing Apidog test cases, scenarios, suites, and test data, providing full read/write access to Apidog's test management features.
      30
      70 npm
      1
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      MCP server for executing MySQL SQL, managing Apifox API documentation, and parsing/executing curl commands.
      6
      32 npm
      ISC
    • A
      license
      A
      quality
      D
      maintenance
      MCP server that provides 22 tools to manage Apidog API documentation, including importing OpenAPI specs, exporting, diffing, analyzing, and bulk-editing endpoints.
      22
      24 npm
      3
      MIT