npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@byixlam/apidog-mcp

v0.0.1

Published

MCP server for navigating and editing Apidog projects through undocumented Apidog APIs. (in development)

Readme

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", "@byixlaam/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.

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