wikipedia_search
Wikipedia: search
[wikipedia] Full-text search of Wikipedia. Returns titles, short descriptions and excerpts.
limitqueryrequired
io.github.charleswei118Published by GitHub account charleswei118v0.2.0Updated Nov 7, 2026
Zero-dependency Cloudflare Worker gateway turning websites and REST APIs into MCP tools.
A Cloudflare Worker gateway that exposes public web sources — Wikipedia, Hacker News, weather, geocoding, exchange rates and GitHub — as MCP tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
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/io.github.charleswei118%2Fweb2mcp/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.Add this to your client's mcpServers config.
{
"mcpServers": {
"web2mcp": {
"type": "http",
"url": "https://web2mcp.cwei59969.workers.dev/mcp"
}
}
}Turn any website or REST API into MCP tools — one tiny Cloudflare Worker, zero dependencies.
[CI] [License: MIT] [Runtime deps: 0] [MCP]
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.
A public demo is running at https://web2mcp.cwei59969.workers.dev (tool list) with the MCP endpoint at:
Paste it into any client that supports remote MCP servers, or:
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.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.<your-subdomain>.workers.dev/mcp, and every push to your copy redeploys it. The free Workers plan is enough.
Optional: protect your endpoint
Claude Desktop / Cursor / Windsurf (via mcp-remote):
Run locally over stdio (no Cloudflare account needed; same connectors):
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:
Create connectors/myapi.js and add it to connectors/index.js:
Template rules:
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.
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):
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.
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.
If web2mcp saves you time, please ⭐ the repo — it helps others find it.
Source: README.md at commit 76cbc3b
Wikipedia: search
[wikipedia] Full-text search of Wikipedia. Returns titles, short descriptions and excerpts.
limitqueryrequiredWikipedia: summary
[wikipedia] Get the lead summary of a Wikipedia article by exact title.
titlerequiredHacker News: front_page
[hackernews] Stories currently on the Hacker News front page.
limitHacker News: search
[hackernews] Search Hacker News stories by keyword.
limitqueryrequiredOpen-Meteo Geocoding: search
[geocode] Look up a city or place and get its coordinates, country and timezone.
namerequiredlimitlanguageOpen-Meteo Weather: forecast
[weather] Current conditions plus a daily forecast (max/min temperature, precipitation, weather code).
dayslatituderequiredlongituderequiredFrankfurter exchange rates: latest
[currency] Latest exchange rates from a base currency.
basesymbolsGitHub: search_repos
[github] Search repositories. Supports GitHub qualifiers like 'mcp language:rust stars:>100'.
sortlimitqueryrequiredGitHub: repo
[github] Get details of one repository.
reporequiredownerrequired100% 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.
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 …https://web2mcp.cwei59969.workers.dev/mcpcurl -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}}}'git clone https://github.com/charleswei118/web2mcp && cd web2mcpnpm test # unit tests, no install needed (Node 20+)npm run smoke # calls every built-in tool against the real APIsnpx wrangler dev # local server at http://localhost:8787/mcpnpx wrangler deploy # your own https://web2mcp.<you>.workers.dev/mcpnpx wrangler secret put AUTH_TOKEN{ "mcpServers": { "web2mcp": { "command": "npx", "args": ["-y", "mcp-remote", "https://web2mcp.<you>.workers.dev/mcp", "--header", "Authorization: Bearer ${WEB2MCP_TOKEN}"], "env": { "WEB2MCP_TOKEN": "your-token" } } }}{ "mcpServers": { "web2mcp": { "command": "npx", "args": ["-y", "github:charleswei118/web2mcp"], "env": { "ENABLED_CONNECTORS": "wikipedia,hackernews,weather" } } }}npx @modelcontextprotocol/inspector # transport: Streamable HTTP, URL: .../mcpexport default { name: "openlibrary", // tool names become openlibrary_<tool> 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"], }, ],};node scripts/openapi2connector.js https://petstore3.swagger.io/api/v3/openapi.json petstore --only GET > connectors/petstore.js