GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Beschreibung vom Entwickler (englisches Original)
Zero-dependency Cloudflare Worker gateway turning websites and REST APIs into MCP tools.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://web2mcp.cwei59969.workers.dev/mcpFühre das in deinem Terminal aus
claude mcp add --transport http web2mcp https://web2mcp.cwei59969.workers.dev/mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"web2mcp": {
"url": "https://web2mcp.cwei59969.workers.dev/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"web2mcp": {
"type": "http",
"url": "https://web2mcp.cwei59969.workers.dev/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://web2mcp.cwei59969.workers.dev/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Tool-Namen und -Beschreibungen genau so, wie der Server sie am 6. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.
wikipedia_search[wikipedia] Full-text search of English Wikipedia. Use this to find the right article title, then call wikipedia_summary with it. Returns titles, short descriptions and excerpts, best match first.
wikipedia_summary[wikipedia] Get the lead summary of an English Wikipedia article by its exact title (redirects are followed). If you are unsure of the title, use wikipedia_search first. Returns title, short description, the lead extract and the article url.
hackernews_front_page[hackernews] List the stories currently on the Hacker News front page, ranked as on the site. Use this to see what is trending now; use hackernews_search to find stories on a topic. Returns title, url, points, comment count and story id.
hackernews_search[hackernews] Full-text search of Hacker News stories (not comments) by keyword, ranked by relevance. Use this to find discussions about a product, project or topic; use hackernews_front_page for what is trending now. Returns title, url, points, comment count, date and story id.
geocode_search[geocode] Turn a city or place name into coordinates. Use this before weather_forecast, which needs latitude/longitude. A name can match several places, so up to `limit` candidates are returned, best match first, each with name, country, region, latitude, longitude and timezone.
weather_forecast[weather] Get current conditions and a daily forecast for a location given by coordinates. If you only have a place name, call geocode_search first. Returns temperature (°C), humidity, wind (km/h), WMO weather code, and per-day max/min temperature and precipitation (mm) in the lo
currency_latest[currency] Get the latest European Central Bank reference exchange rates (updated once per working day) from a base currency. Omit symbols to get all ~30 currencies. Returns an object with base, date and a rates map, e.g. rates.CNY.
github_search_repos[github] Find public GitHub repositories matching a query. Use this when you don't know the exact repo; use github_repo when you already have owner and name. Supports GitHub qualifiers like 'mcp language:rust stars:>100'. Returns up to `limit` repos (full_name, description, stars
github_repo[github] Get metadata for one public repository you already know by owner and name: description, stars, forks, language, license, topics, url and last push time. Use github_search_repos first if you only have keywords. Returns an error if the repo does not exist or is private.
npm_package[npm] Get the latest version, description, license and homepage of an npm package. For download counts use npmstats_downloads instead. Returns an error if the package does not exist.
npmstats_downloads[npmstats] Get how many times an npm package was downloaded in the last 7 days, as a popularity signal. For version or license info use npm_package instead. Returns package, downloads, start and end dates.
arxiv_search[arxiv] Search arXiv research papers by keyword across title, abstract and authors, ranked by relevance. Use it for academic preprints; use wikipedia_search for general background. Returns id/link, title, publication date, authors and abstract.
holidaycn_year[holidaycn] List every official holiday day off and every make-up workday (调休上班) in mainland China for one year, e.g. to tell whether a date is a working day or plan around 春节/国庆. Returns entries of name (Chinese holiday name), date (YYYY-MM-DD) and isOffDay (true = day off, fals
baiduhot_realtime[baiduhot] Get the current Baidu real-time hot search ranking (百度热搜榜): what Chinese internet users are searching for right now. Use it for Chinese news and trending topics; use hackernews_front_page for English tech news. Returns up to 50 entries of word (topic in Chinese), index
shici_random[shici] Get one random famous line of classical Chinese poetry (诗/词/曲), optionally from a theme. Use it for a daily quote, a greeting card line or a writing prompt. Returns content (the line), origin (poem title), author and category (theme path such as 古诗文-抒情-感恩).
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto charleswei118 bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Antwort in 54 ms (HTTP 200)
Keine Anmeldung nötig
Wir haben 15 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.2.0) kam vor 6 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: GitHub, Desktop Commander, Cloudflare MCP
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Turn any website or REST API into MCP tools — one tiny Cloudflare Worker, zero dependencies.
English · 简体中文
GitHub's 665 REST endpoints → 2 MCP tools, ~147,000 tokens of tool definitions → ~300 (catalog mode)
Every AI agent (Claude, ChatGPT, Cursor, your own bots…) now speaks the Model Context Protocol. But most websites and apps don't. web2mcp is the glue: describe an HTTP API in a few lines of config and it instantly becomes an MCP tool that any agent can call — hosted for free on Cloudflare's edge.
Claude / Cursor / any MCP client
│ MCP (Streamable HTTP, JSON-RPC) ▼ ┌──────────────────────────┐ │ web2mcp (CF Worker) │ connectors/*.js or CONNECTORS_JSON └──────────────────────────┘ │ │ │ Wikipedia GitHub any REST API / web page …
A public demo is running at https://web2mcp.cwei59969.workers.dev (tool list) with the MCP endpoint at:
https://web2mcp.cwei59969.workers.dev/mcp
Paste it into any client that supports remote MCP servers, or:
curl -s https://web2mcp.cwei59969.workers.dev/mcp -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"weather_forecast","arguments":{"latitude":35.68,"longitude":139.69}}}'
The demo is rate-limited by the free plan and has reader_read disabled. Deploy your own for real use.
pick and fields trim giant JSON responses down to what the model needs.| Tool | What it does |
|---|---|
wikipedia_search, wikipedia_summary | Search Wikipedia, read article summaries |
hackernews_front_page, hackernews_search | Hacker News stories |
geocode_search | Place name → coordinates (Open-Meteo) |
weather_forecast | Current weather + daily forecast (Open-Meteo) |
currency_latest | ECB exchange rates (Frankfurter) |
github_search_repos, github_repo | Public GitHub repositories (set GITHUB_TOKEN on Workers: shared IPs hit GitHub's anonymous limit) |
reader_read | Any web page → clean Markdown (Jina Reader) |
npm_package, npmstats_downloads | npm package info and weekly downloads |
arxiv_search | Search arXiv research papers |
holidays_list | Public holidays by country and year (Nager.Date) |
holidaycn_year | Mainland China holidays and make-up workdays (调休) for a year |
baiduhot_realtime | Baidu real-time hot search (百度热搜) |
shici_random | A random line of classical Chinese poetry (今日诗词) |
bilibili_popular, bilibili_ranking | Bilibili trending / ranking videos (stdio & self-hosted only: Bilibili blocks Cloudflare IPs) |
Click Deploy to Cloudflare above. Cloudflare copies this repo into your GitHub account, asks for an AUTH_TOKEN (any long random string, e.g. openssl rand -hex 32), then builds and deploys it. A minute later your server is live at https://web2mcp. .workers.dev/mcp, and every push to your copy redeploys it. The free Workers plan is enough.
git clone https://github.com/charleswei118/web2mcp && cd web2mcp
npm test # unit tests, no install needed (Node 20+) npm run smoke # calls every built-in tool against the real APIs npx wrangler dev # local server at http://localhost:8787/mcp npx wrangler deploy # your own https://web2mcp. .workers.dev/mcp
Optional: protect your endpoint
npx wrangler secret put AUTH_TOKEN
Claude Desktop / Cursor / Windsurf (via mcp-remote):
{
"mcpServers": { "web2mcp": { "command": "npx", "args": ["-y", "mcp-remote", "https://web2mcp. .workers.dev/mcp", "--header", "Authorization: Bearer ${WEB2MCP_TOKEN}"], "env": { "WEB2MCP_TOKEN": "your-token" } } } }
Run locally over stdio (no Cloudflare account needed; same connectors):
{
"mcpServers": { "web2mcp": { "command": "npx", "args": ["-y", "github:charleswei118/web2mcp"], "env": { "ENABLED_CONNECTORS": "wikipedia,hackernews,weather" } } } }
Or with Docker: docker build -t web2mcp . && docker run -i --rm web2mcp. Environment variables work the same as Worker bindings (ENABLED_CONNECTORS, CONNECTORS_JSON, MAX_OUTPUT_CHARS, TOOL_MODE=catalog).
Clients that support remote MCP servers natively (Claude.ai custom connectors, ChatGPT connectors, the OpenAI Responses API, Cloudflare AI Playground…) can use the URL directly. Test with the official inspector:
npx @modelcontextprotocol/inspector # transport: Streamable HTTP, URL: .../mcp
Create connectors/myapi.js and add it to connectors/index.js:
export default {
name: "openlibrary", // tool names become openlibrary_ description: "Search books on Open Library.", baseUrl: "https://openlibrary.org", headers: { /* "authorization": "Bearer ${MY_API_KEY}" */ }, tools: [ { name: "search", description: "Search books by title or author.", method: "GET", // GET | POST | PUT | PATCH | DELETE path: "/search.json", // "{arg}" in the path is URL-encoded query: { q: "{query}", limit: "{limit}" }, params: { query: { type: "string", required: true, description: "Title or author" }, limit: { type: "integer", minimum: 1, maximum: 20, default: 5 }, }, pick: "docs", // dotted path into the JSON response fields: ["title", "author=author_name", "year=first_publish_year"], }, ], };
Template rules:
| Syntax | Meaning |
|---|---|
"{arg}" | Tool argument. As a whole value it keeps its type; missing optional args are dropped. |
"${SECRET}" | Read from a Worker secret / var — never exposed to the model. |
"${?SECRET}" | Optional secret: the value is dropped when it is not set. |
pick: "a.b.*.c" | Select part of the response (* maps over arrays; a single value counts as a one-item list). |
fields: ["x", "alias=deep.path"] | Keep only these fields. |
limit: 10 | Truncate arrays. |
format: "public-url" (on a param) | Reject localhost, private/intranet IPs, cloud metadata, embedded credentials and odd ports before any request is made (SSRF guard). Used by reader_read. |
response: "xml" | Parse an XML/Atom/RSS response into JSON first, so pick / fields work on it (attributes become @name, namespace prefixes are dropped, repeated elements become arrays). Also "json", "text" (raw body) or "auto" (default). |
No-code option: put connectors in the CONNECTORS_JSON secret (a JSON array of the same objects) and they appear without touching the code. Use ENABLED_CONNECTORS="wikipedia,weather" to expose only some.
node scripts/openapi2connector.js https://petstore3.swagger.io/api/v3/openapi.json petstore --only GET > connectors/petstore.js
Exposing every endpoint as its own tool floods the model's context. In catalog mode web2mcp exposes just two tools:
search_api — find operations by keywords; returns their names and argument schemascall_api — run one operation by name with an arguments objectMeasured with GitHub's full REST OpenAPI spec (GET operations only, converted with scripts/openapi2connector.js):
| Mode | Tools in tools/list | Approx. context |
|---|---|---|
| Default (one tool per endpoint) | 665 | ~147,000 tokens |
| Catalog | 2 | ~300 tokens |
Turn it on per request with /mcp?mode=catalog, or for the whole deployment with the variable TOOL_MODE = "catalog" (?mode=tools switches back). Try it on the demo: https://web2mcp.cwei59969.workers.dev/mcp?mode=catalog.
| Path | |
|---|---|
POST /mcp | MCP Streamable HTTP endpoint (JSON responses, batch supported) |
POST /mcp?mode=catalog | Same, in catalog mode (search_api + call_api) |
GET / | Human-readable list of tools |
GET /tools | Tool list as JSON |
GET /health | Health check |
Supported MCP methods: initialize, ping, tools/list, tools/call, plus empty resources/list and prompts/list. Protocol versions 2025-06-18, 2025-03-26, 2024-11-05.
search_api + call_api) — v0.2HTMLRewriter)PRs with new connectors are very welcome — see CONTRIBUTING.md.
Only connect APIs and sites you are allowed to use. Respect each service's terms, robots rules and rate limits, and keep credentials in Worker secrets.
MIT
If web2mcp saves you time, please ⭐ the repo — it helps others find it.