プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

web2mcp

作者:charleswei118バージョン 0.2.0i★ –iクラウドで動く
レジストリ名io.github.charleswei118/web2mcp

インストール

概要

作者による説明(英語の原文)

Zero-dependency Cloudflare Worker gateway turning websites and REST APIs into MCP tools.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: 開発者ツール

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://web2mcp.cwei59969.workers.dev/mcp

ターミナルでこれを実行します

claude mcp add --transport http web2mcp https://web2mcp.cwei59969.workers.dev/mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "web2mcp": {
      "url": "https://web2mcp.cwei59969.workers.dev/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "web2mcp": {
      "type": "http",
      "url": "https://web2mcp.cwei59969.workers.dev/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://web2mcp.cwei59969.workers.dev/mcp

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。

  • 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 古诗文-抒情-感恩).

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント charleswei118 で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • ✓ 合格

    エンドポイントが応答する

    54ミリ秒で応答(HTTP 200)

  • – 対象外

    OAuthでサインイン

    サインイン不要

  • ✓ 合格

    ツールの説明に隠れた指示がない

    15件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした

開発者ツールのほかのサーバーとの比較i

  • このカテゴリのほかの1393件のうち0%よりスターが多い
  • このカテゴリのほかの1393件のうち86%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1393件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

web2mcpは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは6 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

GitHub

作者:github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

パソコンでもクラウドでも★ 34,245MIT3 日前更新
インストール

Desktop Commander

作者:wonderwhy-er

MCP server for terminal commands, file operations, and process management

パソコンで動く★ 10,225MIT15 日前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

web2mcp

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 …

Try it now

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.

Why

  • Config, not code. A connector is a plain object: base URL, path, query, params. No SDK to learn.
  • Zero runtime dependencies. ~500 lines of readable JavaScript. Audit it in 10 minutes.
  • Token-friendly output. pick and fields trim giant JSON responses down to what the model needs.
  • Free hosting. Runs on the Cloudflare Workers free plan. Deploy in one click.
  • Safe by default. Requests are locked to each connector's host, arguments are type-checked, secrets stay server-side, optional bearer auth.
  • OpenAPI import. Convert any OpenAPI 3 spec into a connector with one command.

Built-in connectors (no API keys)

ToolWhat it does
wikipedia_search, wikipedia_summarySearch Wikipedia, read article summaries
hackernews_front_page, hackernews_searchHacker News stories
geocode_searchPlace name → coordinates (Open-Meteo)
weather_forecastCurrent weather + daily forecast (Open-Meteo)
currency_latestECB exchange rates (Frankfurter)
github_search_repos, github_repoPublic GitHub repositories (set GITHUB_TOKEN on Workers: shared IPs hit GitHub's anonymous limit)
reader_readAny web page → clean Markdown (Jina Reader)
npm_package, npmstats_downloadsnpm package info and weekly downloads
arxiv_searchSearch arXiv research papers
holidays_listPublic holidays by country and year (Nager.Date)
holidaycn_yearMainland China holidays and make-up workdays (调休) for a year
baiduhot_realtimeBaidu real-time hot search (百度热搜)
shici_randomA random line of classical Chinese poetry (今日诗词)
bilibili_popular, bilibili_rankingBilibili trending / ranking videos (stdio & self-hosted only: Bilibili blocks Cloudflare IPs)

Deploy your own in one click

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.

Quick start

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

Connect an AI client

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

Write a connector

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:

SyntaxMeaning
"{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: 10Truncate 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.

From an OpenAPI spec
node scripts/openapi2connector.js https://petstore3.swagger.io/api/v3/openapi.json petstore --only GET > connectors/petstore.js

Catalog mode: 665 endpoints, 2 tools

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 schemas
  • call_api — run one operation by name with an arguments object

Measured with GitHub's full REST OpenAPI spec (GET operations only, converted with scripts/openapi2connector.js):

ModeTools in tools/listApprox. context
Default (one tool per endpoint)665~147,000 tokens
Catalog2~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.

Endpoints

Path
POST /mcpMCP Streamable HTTP endpoint (JSON responses, batch supported)
POST /mcp?mode=catalogSame, in catalog mode (search_api + call_api)
GET /Human-readable list of tools
GET /toolsTool list as JSON
GET /healthHealth 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.

Roadmap

  • Catalog mode (search_api + call_api) — v0.2
  • Load OpenAPI specs at runtime from a URL
  • One-click “Deploy to Cloudflare” — v0.2
  • HTML scraping connectors (CSS selectors via HTMLRewriter)
  • Per-tool rate limits and KV caching
  • OAuth for connectors that need user accounts
  • Connector registry: share connectors as JSON files
  • Agent-to-agent (A2A) chat rooms on Durable Objects

PRs with new connectors are very welcome — see CONTRIBUTING.md.

Responsible use

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.

License

MIT

If web2mcp saves you time, please ⭐ the repo — it helps others find it.

PopNxに聞く