REST API ยท v1

MCPHub API

Discover, search, and integrate MCP servers, skills, and stacks into your own tooling, CLIs, and AI workflows.

https://mcphub.io

Overview

Format

JSON (application/json)

Version

1.0.0

OpenAPI

3.1.0

Rate limits

POST /api/servers5 req / hour
POST /api/skills10 req / hour
POST /api/servers/{slug}/reviews10 req / hour

Rate-limited responses return HTTP 429 with a Retry-After header.

Authentication

Most read endpoints are public. Endpoints marked ๐Ÿ”’ require a GitHub OAuth session โ€” sign in at /auth/signin and the session cookie is set automatically.

Session cookie name

next-auth.session-token

Servers

GET/api/servers

Returns MCP servers with optional filtering and full-text search.

Parameters

q
string

Full-text search (supports quoted phrases and -term exclusions)

tag
string

Filter by tag

client
enum

claude-code ยท cursor ยท continue ยท other

limit
integer

Max results. Default 50, max 100.

Response

{
  "servers": [
    {
      "id": "clx...",
      "slug": "github-mcp",
      "name": "GitHub MCP",
      "description": "Interact with GitHub via MCP",
      "stars": 1420,
      "downloadCount": 3800,
      "avgRating": 4.7,
      "verified": true,
      "tags": ["github", "git"]
    }
  ],
  "total": 42
}
GET/api/servers/{slug}

Returns a single MCP server by its slug.

Parameters

slugrequired
string

Server slug, e.g. github-mcp

Response

{
  "server": {
    "slug": "github-mcp",
    "name": "GitHub MCP",
    "installCmd": "npx -y @modelcontextprotocol/server-github",
    "transport": "stdio",
    "license": "MIT",
    "envVars": [
      { "name": "GITHUB_TOKEN", "required": true }
    ]
  }
}
POST/api/servers

Submits a new MCP server to the registry. Requires GitHub authentication. Rate-limited to 5 per hour.

Request body

namerequired
string

2โ€“60 characters

descriptionrequired
string

20โ€“280 characters

repoUrlrequired
uri

GitHub repository URL

tagsrequired
string[]

1โ€“8 tags

toolsrequired
string[]

MCP tools exposed by this server

clientsrequired
string[]

claude-code ยท cursor ยท continue

npmPackage
string

npm package name

installCmd
string

Install command, e.g. npx -y pkg

transport
enum

stdio (default) ยท sse ยท http

license
string

SPDX identifier, default MIT

Response

{
  "server": {
    "slug": "my-mcp-server",
    "name": "My MCP Server",
    "createdAt": "2025-01-15T10:00:00Z"
  }
}
POST/api/servers/{slug}/install

Increments download and install counters. Called automatically by the CLI on successful install.

Parameters

slugrequired
string

Server slug

Response

{ "ok": true }

Reviews

GET/api/servers/{slug}/reviews

Returns all reviews for a server, ordered newest first.

Parameters

slugrequired
string

Server slug

Response

{
  "reviews": [
    {
      "id": "clx...",
      "rating": 5,
      "comment": "Works great with Claude Code",
      "author": "diegoalvarezf",
      "createdAt": "2025-01-10T08:00:00Z"
    }
  ]
}
POST/api/servers/{slug}/reviews

Submits a review. Rate-limited to 10 per hour. Updates the server's cached avgRating and reviewCount.

Parameters

slugrequired
string

Server slug

Request body

ratingrequired
integer

1โ€“5

authorrequired
string

Max 80 characters

comment
string

Optional. Max 1000 characters.

Response

{
  "review": {
    "id": "clx...",
    "rating": 5,
    "author": "diegoalvarezf",
    "createdAt": "2025-01-15T10:00:00Z"
  }
}

Skills & Agents

GET/api/skills

Returns paginated published skills (prompts and agents), 24 per page.

Parameters

q
string

Search query

type
enum

prompt ยท agent

tag
string

Filter by tag

page
integer

Page number, 1-based. Default 1.

Response

{
  "skills": [
    {
      "slug": "review-pr",
      "name": "Review PR",
      "type": "prompt",
      "installCount": 840,
      "stars": 120
    }
  ],
  "total": 38,
  "pages": 2
}
GET/api/skills/{slug}

Returns a single skill by slug, including the full Markdown content. Increments install counters.

Parameters

slugrequired
string

Skill slug, e.g. review-pr

Response

{
  "slug": "review-pr",
  "name": "Review PR",
  "type": "prompt",
  "content": "Review the current changes...",
  "tags": ["code-review", "git"]
}
POST/api/skills

Creates a new skill or agent. Requires GitHub auth. Rate-limited to 10 per hour.

Request body

slugrequired
string

URL-safe identifier, used as slash command

namerequired
string

Display name

descriptionrequired
string

Short description

contentrequired
string

Markdown prompt or system prompt

type
enum

prompt (default) ยท agent

tags
string[]

Up to 8 tags

repoUrl
uri

Source repository

published
boolean

Visible in registry. Default false.

Response

{
  "slug": "review-pr",
  "name": "Review PR",
  "published": true
}

Stacks

GET/api/stacks

Returns all public community stacks with their items.

Response

[
  {
    "slug": "fullstack-dev",
    "name": "Full-stack Dev",
    "icon": "โšก",
    "public": true,
    "createdBy": "diegoalvarezf",
    "items": [
      { "type": "server", "itemSlug": "github-mcp", "order": 0 }
    ]
  }
]
POST/api/stacks

Creates a new stack. Requires GitHub auth.

Request body

namerequired
string

Stack name

description
string

Optional description

icon
string

Emoji icon. Default ๐Ÿ“ฆ

public
boolean

Visible to everyone. Default false.

Response

{
  "slug": "my-stack",
  "name": "My Stack",
  "createdAt": "2025-01-15T10:00:00Z"
}
POST/api/stacks/{slug}/items

Adds a server, skill, or agent to a stack. Owner only.

Parameters

slugrequired
string

Stack slug

Request body

typerequired
enum

server ยท skill ยท agent

itemSlugrequired
string

Slug of the item to add

Response

{ "ok": true }
DELETE/api/stacks/{slug}/items

Removes an item from a stack. Owner only.

Parameters

slugrequired
string

Stack slug

Request body

itemSlugrequired
string

Slug of the item to remove

Response

{ "ok": true }