Search DevTools

Jump to any tool or page

MCP Junction

Unexplored

Search a nightly-refreshed directory of MCP servers by keyword, category or topic.

rickstek1 stars0 forksDeveloper Tools
View source

Install

mcp_config.json

{
  "mcpServers": {
    "ai-mcpjunction-directory": {
      "url": "https://mcpjunction.ai/mcp",
      "type": "streamable-http"
    }
  }
}

Documentation

mcpjunction.ai

A directory of Model Context Protocol servers, rebuilt nightly from public GitHub metadata. Roughly 1,800 servers in a hand-owned category taxonomy, also browsable by repository topic, published as a website, a downloadable dataset, and an MCP endpoint your agent can query directly.

mcpjunction.ai · Dataset · Categories · Licensing

Not affiliated with Anthropic or the Model Context Protocol project.

This repository is the whole thing: the pipeline that builds the dataset, the Astro site that renders it, and the Cloudflare Worker that serves it.

Use the data

Three ways in, all public and all free to read.

Bulk download. The full directory, regenerated nightly with a generated_at timestamp.

curl -O https://mcpjunction.ai/data/mcp_servers.json
  • mcp_servers.json — ~2.3 MB, 28 fields per server plus a dataset envelope with counts and per-category totals
  • mcp_servers.csv — the same data as 16 flat columns

Query it from an agent. /mcp is itself an MCP server — streamable HTTP, stateless JSON-RPC over POST, protocol version 2025-06-18, no authentication.

claude mcp add --transport http mcpjunction https://mcpjunction.ai/mcp
ToolWhat it does
search_serversFree-text search, optionally filtered by category and language
get_serverOne server by id (owner--repo, e.g. microsoft--playwright-mcp)
list_categoriesEvery category with active counts
get_dataset_infoCounts, generated_at, source, and licensing terms

GET /mcp returns 405 by design; POST your JSON-RPC messages. JSON-RPC batching is not supported — it was removed in protocol 2025-06-18.

Read it as markdown. Every server and category page has a clean markdown twin with no navigation or styling to strip. Either negotiate for it:

curl -H 'Accept: text/markdown' https://mcpjunction.ai/servers/microsoft--playwright-mcp

…or just append .md to the canonical URL — /servers/microsoft--playwright-mcp.md, /categories/databases.md. Each HTML page advertises its twin via <link rel="alternate" type="text/markdown">.

Machine-readable entry points are collected in llms.txt.

How a server gets listed

Listing is automatic. There is no submission form, and none is planned — the pipeline runs five GitHub search queries (topic:mcp-server, topic:model-context-protocol, topic:mcp, and two name/description phrase searches), then keeps repositories that clear a 2-star floor and match a Model Context Protocol name/topic heuristic. If your server is on GitHub and meets that bar, it will appear on the next nightly run.

Corrections, removals, and licensing: licensing@mcpjunction.ai, acknowledged within three business days.

Contributing

Open to read and reuse; deliberately narrow about what comes back.

Corrections are the most useful thing you can send. A wrong install hint, a stale license, a repository that moved, a server sitting in the wrong category — open an issue or email the address above with the server id (owner--repo) and what's wrong. One maintainer cannot check 1,800 entries by hand, and the people who hit these find them first.

Pull requests are welcome for the softwaresrc/, worker/, scripts/, docs/. Bug fixes need no preamble. Open an issue first for anything that changes rendered output or the dataset shape, because the constraints in the next section are load-bearing and easy to undo by accident.

Three things don't take pull requests, for reasons rather than ceremony:

  • public/data/ — regenerated nightly, so the edit is gone within a day. If a server is missing, the fix is upstream: tag the repository and the next run finds it.
  • editorial/summaries.md — summaries are written in-house. A directory that other people cite lives or dies on whether its prose is trustworthy, and reviewing a summary properly costs about what writing one costs.
  • categories.json and topics.json — every slug is a permanent public URL, and category order is matching precedence rather than presentation. Propose one in an issue, with the servers it would cover; adding a category is a decision, not a patch.

The code is MIT and contributions to it are accepted on those terms. The dataset is separately licensed — see Licensing.

How the data is kept honest

A directory other people cite has to fail safe. These are the constraints the code actually enforces:

  • Automation cannot promote anything. security_reviewed, verified_badge, sponsor_tier, editorial_notes, and editorial_summary are set by hand and only carried forward by the pipeline — never written by it. A machine cannot grant a badge or a security clearance here. These fields are currently unset across the entire dataset; a written summary, when one exists, is a description and not a security review.
  • Collapse guard. A run aborts if the active server count falls more than 10% against the previous dataset, or if more than 50 servers would be newly delisted at once. A separate check refuses to deploy below 200 servers. A bad day at the GitHub API should not silently gut the directory.
  • Delisted repositories persist 30 days as status: archived_or_removed with a delisted_at timestamp, then drop. Stable URLs, without unbounded growth.
  • Identity guard. If a repository's numeric GitHub id changes under the same owner--repo name — a rename, or a released username claimed by someone else — the editorial state is dropped rather than inherited.
  • CSV injection is neutralised. Cells beginning =, +, -, or @ are quote-prefixed before publication. Repository descriptions are attacker-controllable: anyone can name a GitHub repo.
  • Install hints never auto-confirm. No npx -y, no --yes. The registry package sharing a repository's name may belong to someone else entirely, so hints are published as unverified suggestions.
  • No dead links. The sitemap lists only files present on disk at build time.
  • One source, used as documented. The official GitHub REST API, authenticated and rate-limit aware, public repository metadata only.

How it's built

src/              Astro static site — pages, layouts, components
worker/           Cloudflare Worker — the /mcp server and markdown negotiation
scripts/          pipeline.py (GitHub API → dataset), build_sitemap.py
categories.json   Taxonomy: human-owned, first match in file order wins
topics.json       Approved /topics/<tag> pages — vetted GitHub repository topics
server.json       Registry metadata for registry.modelcontextprotocol.io
editorial/        Human-written server summaries (summaries.md)
public/           Passthrough assets — robots.txt, license.xml, llms.txt, _headers, data/
dist/             Build output and the Worker's asset root (not committed)

Every night a GitHub Action runs pipeline.py, builds the site with Astro, generates the sitemap, commits the refreshed dataset, deploys the Worker, and then verifies the live result — licensing surface, /mcp handshake, crawler access rules, and markdown negotiation — before it calls the run a success.

Locally:

npm ci && npm run dev

The pipeline needs Python 3 and a GITHUB_TOKEN; deploys need Cloudflare credentials. See docs/OPERATIONS.md.

Licensing

The code is MIT. src/, worker/, scripts/, and the configuration are yours to reuse — see LICENSE.

The dataset is not. public/data/** is excluded from the MIT grant and governed by the RSL terms in public/license.xml: search indexing is free, agent and inference-time use is free site-wide with attribution during the launch phase, and AI training requires a license. Bulk /data/ retrieval carries stricter terms. Details at mcpjunction.ai/licensing; see also NOTICE.

Citing us is easy and appreciated: via mcpjunction.ai.

Sourced from the repository README.

More in Developer Tools