MCP.so Server Directory Scraper
MCP.so Server Directory Scraper
Scrape the complete MCP.so server directory — the 3rd canonical MCP registry alongside Smithery and Glama. Extracts name, author, category, tags, capabilities, tool count, install command, GitHub repo URL, README markdown, and more for every listed MCP server.
What does it scrape?
MCP.so is one of the top-3 community indexes for Model Context Protocol (MCP) servers — the protocol used by Claude Desktop, Cursor, Windsurf, and Codex to connect AI models to external tools. This scraper enumerates every server in the directory and returns a structured record per entry.
Data fields returned
| Field | Description |
|---|---|
server_id |
Unique identifier in <slug>/<author> format |
server_name |
Display name of the MCP server |
server_slug |
URL slug |
author_username |
GitHub username of the author |
author_avatar_url |
Author avatar image URL |
tagline |
Short description |
description |
Full description |
category |
Category (databases, developer-tools, etc.) |
tags |
Comma-separated tags |
capabilities |
MCP capability types present (tools, resources, prompts) |
tool_count |
Number of MCP tools exposed |
install_command |
npx / uvx / docker installation command |
npm_package |
NPM package name (if applicable) |
pypi_package |
PyPI package name (if applicable) |
docker_image |
Docker image name (if applicable) |
github_repo |
GitHub repository URL |
is_official |
Whether this is an official MCP team server |
is_verified |
Whether marked as featured/verified |
listed_at |
Date first listed on mcp.so |
updated_at |
Last update timestamp |
readme_markdown |
Full README content |
profile_url |
URL of the mcp.so server page |
scraped_at |
Scrape timestamp |
Usage
Set maxItems to limit the number of servers returned. The directory has ~2,000 servers across two sitemaps.
Input
{
"maxItems": 100
}
Output sample
{
"server_id": "redis/modelcontextprotocol",
"server_name": "Redis",
"server_slug": "redis",
"author_username": "modelcontextprotocol",
"category": "databases",
"tags": null,
"capabilities": "tools",
"tool_count": 13,
"install_command": "docker run -i --rm mcp/redis {redis_url}",
"docker_image": "mcp/redis",
"github_repo": "https://github.com/modelcontextprotocol/servers/tree/main/src/redis",
"is_official": false,
"is_verified": false,
"listed_at": null,
"profile_url": "https://mcp.so/servers/redis"
}
Triple MCP Coverage
This scraper completes our 3-index MCP directory coverage:
| Registry | Actor |
|---|---|
| Smithery | jungle_synthesizer/smithery-mcp-registry-scraper |
| Glama | jungle_synthesizer/glama-mcp-registry-scraper |
| MCP.so | This actor |
Use all three to build an exhaustive MCP server catalog for agent platform development, ecosystem analysis, or security research.
Notes on data availability
mcp.so migrated its front-end to TanStack Start (2026-07, FR 480), which changed both the sitemap shape (/sitemap.xml index → ?section=servers&page=N children) and the detail-page URL shape (/server/<slug>/<author> → /servers/<slug>). Structured data is now sourced from the page's JSON-LD SoftwareApplication block plus the rendered install-config code block and tools accordion, rather than the old embedded RSC payload.
As a result the following fields are no longer exposed by mcp.so and will always be null/false in every record: tags, resource_count, prompt_count, github_stars, github_forks, language, license, view_count, install_count, listed_at, updated_at, documentation_url, is_official, is_verified (is_official/is_verified are always false — there is no longer a reliable official/verified signal on the detail page). github_stars, github_forks, language, and license would require GitHub API enrichment as a separate step.