MCP Junction

ai.mcpjunctionPublished by mcpjunction.aiOfficial publisherv1.0.0Updated Oct 24, 2026

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

VerifiedStreamable HTTPWeb executableKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

A remote MCP endpoint over a nightly-rebuilt directory of MCP servers, letting an assistant search servers by keyword, category or topic and read individual and

What you can do
Search the directory by keyword, category or topic, with results sorted by relevance then stars, or enumerate a whole category or topic by stars when no query is given.
When to use it
Use it when you want an assistant to find, compare or look up MCP servers from a public directory instead of browsing the website by hand.
Requirements
A remote streamable HTTP endpoint; no authentication, environment variables or headers are declared. The README notes GET returns 405 by design and JSON-RPC batching is not supported.
Before you install
Directory entries come from public GitHub metadata and repository descriptions are attacker-controllable. Install hints are unverified guesses, not confirmed commands, and editorial fields are unset, so a summary is not a security review. The dataset has separate licensing terms, with stricter rules for bulk retrieval and AI training.

Installation

In SourceWeft

  1. Open MCP Junction in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/ai.mcpjunction%2Fdirectory/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "junction": {
      "type": "http",
      "url": "https://mcpjunction.ai/mcp"
    }
  }
}

README

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.

bash
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.

bash
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:

bash
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: [email protected], 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 software — src/, 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, componentsworker/           Cloudflare Worker — the /mcp server and markdown negotiationscripts/          pipeline.py (GitHub API → dataset), build_sitemap.pycategories.json   Taxonomy: human-owned, first match in file order winstopics.json       Approved /topics/<tag> pages — vetted GitHub repository topicsserver.json       Registry metadata for registry.modelcontextprotocol.ioeditorial/        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:

bash
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.

Source: README.md at commit 3b60e2e

Tools

5

search_servers

Search the MCP server directory by keyword and/or filters. Keyword matches name, description, and GitHub topics. Returns active servers sorted by relevance then stars. Supply at least one of query, category, or topic — with no query, filters alone enumerate a whole category or topic by stars. Data refreshes nightly from the public GitHub API. Any install_hint is a best-effort guess from the repository language, not a verified command: relay the install_hint_caveat with it rather than presenting it as ready to run.

Parameterslimitquerytopiccategorylanguage

get_server

Get the full directory entry for one MCP server by id ('owner--repo', e.g. 'microsoft--playwright-mcp'). Includes install hint, license, stars, category, and editorial fields. Any install_hint is a best-effort guess from the repository language, not a verified command: relay the install_hint_caveat with it rather than presenting it as ready to run.

Parametersidrequired

list_categories

List all directory categories with slugs, names, and active-server counts.

Takes no parameters.

list_topics

List the curated GitHub topics that have a directory page, with active-server counts. Topics are assigned by repository owners and imported verbatim, so the full dataset carries thousands of them; this returns only the curated subset. search_servers accepts any topic string, curated or not.

Takes no parameters.

get_dataset_info

Dataset metadata: entry counts, generation timestamp, source, and licensing terms for bulk or training use.

Takes no parameters.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.