Discover/mcp API
live

mcp APImcp.so

Access the mcp.so directory via API. List, search, and get detailed metadata on MCP servers and clients including tags, categories, tools, and GitHub URLs.

Endpoint health
verified 5d ago
get_top_servers_with_metadata
get_server_tools
search_servers
list_tags
list_categories
10/10 passing latest checkself-healing
Endpoints
10
Updated
21d ago

What is the mcp API?

The mcp.so API exposes 10 endpoints covering the full mcp.so directory of Model Context Protocol servers and clients. Use get_server_detail to retrieve structured metadata for any server — including its category, tags, inferred language, configuration JSON, and GitHub URL — or use search_servers to find servers by keyword. The API also enumerates all available categories, tags, and MCP client applications.

Try it
Filter tab. Accepted values: 'featured', 'latest'. Omitting returns all servers.
Page number for pagination.
api.parse.bot/scraper/02196c50-9b62-48df-83c5-292bcc15eb74/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/02196c50-9b62-48df-83c5-292bcc15eb74/list_servers?tab=featured&page=1' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace mcp-so-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.mcp_so_marketplace_api import MCPMarketplace, Tab

mcp = MCPMarketplace()

# Browse featured servers
for server in mcp.servers.list(tab=Tab.FEATURED, limit=5):
    print(server.name, server.url, server.short_description)

# Search for database-related servers
for result in mcp.servers.search(query="database", limit=3):
    print(result.name, result.url)

# Get top servers with metadata
for top in mcp.servers.top(limit=3):
    print(top.name, top.short_description)

# List categories and browse servers in one
for cat in mcp.categories.list(limit=3):
    print(cat.name, cat.slug)

# Get servers in a specific category
databases = mcp.category("databases")
for srv in databases.servers(limit=5):
    print(srv.name, srv.url)

# Get servers by tag
github_tag = mcp.tag("github")
for srv in github_tag.servers(limit=3):
    print(srv.name, srv.short_description)

# List all tags
for tag in mcp.tags.list(limit=5):
    print(tag.name, tag.url)

# List MCP clients
for client in mcp.clients.list(limit=3):
    print(client.name, client.short_description)
All endpoints · 10 totalmissing one? ·

Fetch a paginated list of MCP servers. Returns server names, URLs, and short descriptions. Supports filtering by tab (featured or latest). Each page returns up to ~50 servers.

Input
ParamTypeDescription
tabstringFilter tab. Accepted values: 'featured', 'latest'. Omitting returns all servers.
pageintegerPage number for pagination.
Response
{
  "type": "object",
  "fields": {
    "tab": "string, active filter tab or empty string",
    "page": "integer, current page number",
    "servers": "array of server objects with name, url, and short_description"
  },
  "sample": {
    "data": {
      "tab": "",
      "page": 1,
      "servers": [
        {
          "url": "https://mcp.so/server/edgeone-pages-mcp/TencentEdgeOne",
          "name": "EdgeOne Pages MCP",
          "short_description": "An MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL."
        }
      ]
    },
    "status": "success"
  }
}

About the mcp API

Server Discovery and Search

The list_servers endpoint returns a paginated array of server objects, each with name, url, and short_description. You can filter by tab to get featured or latest servers, or omit it to retrieve all. For keyword-based discovery, search_servers accepts a query string and returns matching servers in the same shape. Both endpoints are suitable for building indexes or autocomplete features over the mcp.so catalog.

Detailed Server Metadata

get_server_detail fetches the full record for a single server identified by slug (e.g., github, puppeteer, blender). When multiple servers share a slug, supply the optional author parameter (e.g., modelcontextprotocol) to disambiguate. The response includes tags (array of strings), category, language (inferred, e.g., TypeScript/JavaScript, Python, Docker), github_url, config (the MCP server configuration object or null), and a full description. The get_server_tools endpoint accepts the same slug/author inputs and returns each tool the server exposes — name and description per tool — making it useful for capability diffing across servers.

Categories, Tags, and Clients

list_categories returns all category objects with name, slug, and url. Pass a slug to list_servers_by_category to get paginated servers within that category (e.g., developer-tools, browser-automation, databases). The same pattern applies to tags: list_tags gives all available tags, and list_servers_by_tag accepts a tag string plus optional page. The list_clients endpoint returns MCP client applications — such as Cursor, VSCode, Windsurf, and Cline — each with name, url, and short_description.

Bulk Metadata Retrieval

get_top_servers_with_metadata returns enriched server objects — including category, tags, github_url, and language — for the top N servers in one call. Because it fetches detail pages per server, response time scales with the limit parameter. For large batch needs, prefer iterating list_servers with pagination combined with individual get_server_detail calls to control throughput.

Reliability & maintenanceVerified

The mcp API is a managed, monitored endpoint for mcp.so — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mcp.so changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official mcp.so API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
10/10 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a searchable index of MCP servers filtered by category or tag for a developer portal.
  • Audit the tool surface of multiple MCP servers by comparing get_server_tools output across slugs.
  • Track newly listed servers by polling list_servers with tab=latest and storing new entries.
  • Populate a server recommendation UI using search_servers query results keyed to user intent.
  • Aggregate GitHub URLs from get_server_detail to cross-reference repository activity metrics.
  • Enumerate all MCP-compatible client applications from list_clients for a compatibility matrix.
  • Filter servers by inferred language field to surface Python-only or Docker-based integrations.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does mcp.so have an official developer API?+
mcp.so does not publish an official public developer API or documented REST interface. This Parse API provides structured access to the directory data that mcp.so exposes on its website.
When multiple servers share the same slug, how do I get the right one?+
Pass the optional author parameter alongside slug in get_server_detail or get_server_tools. For example, slug github with author modelcontextprotocol returns a different record than the same slug under a different author handle. If author is omitted and a slug is ambiguous, the API returns whichever record resolves first.
Does the API expose download counts, install counts, or popularity metrics for servers?+
Not currently. The API returns metadata fields including tags, category, language, github_url, config, and description, but no numeric popularity or usage signals. You can fork this API on Parse and revise it to add an endpoint that pulls any such metrics if mcp.so surfaces them on individual server pages.
Does `get_top_servers_with_metadata` return all servers in the directory?+
It returns up to the number specified by the limit parameter, selecting from the top of the mcp.so listing. It does not guarantee full catalog coverage. For broader coverage, use list_servers with pagination and request detail per server individually.
Does the API return version history or changelog data for individual MCP servers?+
Not currently. Server records include a github_url field which you can use to query GitHub's API for version and commit history independently. You can fork this API on Parse and revise it to add an endpoint that fetches and returns version metadata from those GitHub URLs.
Page content last updated . Spec covers 10 endpoints from mcp.so.
Related APIs in Developer ToolsSee all →
mcpservers.org API
Search and discover MCP servers, clients, and Claude skills from mcpservers.org, including featured and official recommendations organized by category. Browse detailed server information, remote server options, and find exactly what you need with powerful search and filtering capabilities.
minecraft-mp.com API
Search and discover Minecraft multiplayer servers with detailed information like player counts, statistics, and voting data. Ping servers, filter by specific criteria, and access comprehensive server lists and historical performance metrics all in one place.
minecraftservers.org API
Search and discover Minecraft servers with real-time player counts, server details, and statistics directly from minecraftservers.org. Find the perfect server by filtering results and viewing comprehensive information like gameplay modes, player capacity, and server ratings.
planetminecraft.com API
Find and explore Minecraft servers (Java and Bedrock) by searching through thousands of options with detailed stats, player counts, and descriptions. Discover trending, top-voted, and newly added servers to find your next gaming community.
topg.org API
Discover and compare Minecraft servers by version, type, location, and player count, plus track voting scores and historical player data to find the best server for your gameplay. Search across multiple game categories, view newly launched servers, and submit your own server votes to help others discover quality gaming communities.
cursor.directory API
Search and discover AI cursor rules, MCP servers, and job listings organized by category to enhance your development workflow. Browse detailed information about each rule and server to find the tools and configurations that best fit your needs.
mcsrvstat.us API
Check whether Minecraft servers are online and retrieve live server details including player counts, server icons, MOTD, and version metadata for both Java and Bedrock Edition servers.
curseforge.com API
Search and explore CurseForge game mods and projects, retrieve detailed information about specific mods, access file listings and versions, and track dependencies between projects. Find mods across different games and categories to discover exactly what you need for your gaming setup.