# web2mcp (remote · web2mcp.cwei59969.workers.dev)

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

- Trust score: 69/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `web2mcp.cwei59969.workers.dev`: 69/100 (this document), [markdown](https://verifymcp.io/servers/charleswei118-web2mcp/web2mcp.md), [page](https://verifymcp.io/servers/charleswei118-web2mcp/web2mcp)

## Channel facts

- Endpoint: `https://web2mcp.cwei59969.workers.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 81/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 1589 tokens (~105/item across 15 items; 15 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the web2mcp MCP server?

web2mcp is a hosted endpoint at https://web2mcp.cwei59969.workers.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http charleswei118-web2mcp 'https://web2mcp.cwei59969.workers.dev/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "charleswei118-web2mcp": {
      "url": "https://web2mcp.cwei59969.workers.dev/mcp"
    }
  }
}
```

### VS Code

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

### Codex

```toml
[mcp_servers.charleswei118-web2mcp]
url = "https://web2mcp.cwei59969.workers.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "charleswei118-web2mcp": {
      "type": "remote",
      "url": "https://web2mcp.cwei59969.workers.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add charleswei118-web2mcp --url 'https://web2mcp.cwei59969.workers.dev/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  charleswei118-web2mcp:
    url: "https://web2mcp.cwei59969.workers.dev/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "charleswei118-web2mcp": {
      "Transport": "http",
      "Url": "https://web2mcp.cwei59969.workers.dev/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add charleswei118-web2mcp -t streamable-http -u 'https://web2mcp.cwei59969.workers.dev/mcp'
```

### Other

```json
{
  "mcpServers": {
    "charleswei118-web2mcp": {
      "type": "http",
      "url": "https://web2mcp.cwei59969.workers.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 67, +1)

- [functional regression] Schema quality: 1197 → 1589
- [functional] New tool “baiduhot_realtime”
- [functional] New tool “holidaycn_year”
- [functional] New tool “shici_random”

### 2026-11-01 (score 66, +4)

- [security] Tool “currency_latest” rewrote its description, which is the text the model reads
- [security] Tool “geocode_search” rewrote its description, which is the text the model reads
- [security] Tool “github_repo” rewrote its description, which is the text the model reads
- [security] Tool “github_search_repos” rewrote its description, which is the text the model reads
- [security] Tool “hackernews_front_page” rewrote its description, which is the text the model reads
- [security] Tool “hackernews_search” rewrote its description, which is the text the model reads
- [security] Tool “weather_forecast” rewrote its description, which is the text the model reads
- [security] Tool “wikipedia_search” rewrote its description, which is the text the model reads
- [security] Tool “wikipedia_summary” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 50 → 99
- [functional improvement] Tool coverage: 53% → 100%
- [functional improvement] Stability: unverified → 0.03
- [functional] Schema quality: good → excellent
- [functional] New tool “arxiv_search”
- [functional] New tool “npm_package”
- [functional] New tool “npmstats_downloads”
- [cosmetic] “geocode_search” reworded the description of “limit”
- [cosmetic] “github_repo” reworded the description of “owner”
- [cosmetic] “github_repo” reworded the description of “repo”
- [cosmetic] “github_search_repos” reworded the description of “limit”
- [cosmetic] “github_search_repos” reworded the description of “query”
- [cosmetic] “github_search_repos” reworded the description of “sort”
- [cosmetic] “hackernews_search” reworded the description of “query”
- [cosmetic] “weather_forecast” reworded the description of “days”
- [cosmetic] “weather_forecast” reworded the description of “latitude”
- [cosmetic] “weather_forecast” reworded the description of “longitude”

### 2026-10-31 (score 62)

First indexed and scored.

## MCP tools (15)

### `wikipedia_search` (~71 tokens)

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.

Input parameters:

- `limit` (integer): Max results (1-20)
- `query` (string, required): What to search for

### `wikipedia_summary` (~75 tokens)

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.

Input parameters:

- `title` (string, required): Exact article title, e.g. 'Cloudflare'

### `hackernews_front_page` (~78 tokens)

Hacker News: 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.

Input parameters:

- `limit` (integer): Max stories (1-30)

### `hackernews_search` (~107 tokens)

Hacker News: 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.

Input parameters:

- `limit` (integer): Max results (1-30)
- `query` (string, required): Keywords to match in story titles and text, e.g. 'model context protocol'

### `geocode_search` (~117 tokens)

Open-Meteo Geocoding: 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.

Input parameters:

- `language` (string): Result language, e.g. en, zh
- `limit` (integer): Max candidate places to return (1-10)
- `name` (string, required): Place name, e.g. 'Shanghai'

### `weather_forecast` (~131 tokens)

Open-Meteo 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 location's local timezone.

Input parameters:

- `days` (integer): Number of forecast days including today (1-16)
- `latitude` (number, required): Latitude in decimal degrees, e.g. 31.23
- `longitude` (number, required): Longitude in decimal degrees, e.g. 121.47

### `currency_latest` (~96 tokens)

Frankfurter exchange rates: 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.

Input parameters:

- `base` (string): Base currency, e.g. USD
- `symbols` (string): Comma-separated targets, e.g. CNY,EUR (optional)

### `github_search_repos` (~150 tokens)

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, language, url, updated_at). Unauthenticated calls share a low rate limit.

Input parameters:

- `limit` (integer): Max repositories to return (1-30)
- `query` (string, required): Search text with optional GitHub qualifiers, e.g. 'mcp server language:typescript'
- `sort` (string): Sort order: most stars, most recently updated, or most forks

### `github_repo` (~110 tokens)

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.

Input parameters:

- `owner` (string, required): User or organization that owns the repo, e.g. 'cloudflare'
- `repo` (string, required): Repository name only, without the owner, e.g. 'workers-sdk'

### `npm_package` (~66 tokens)

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.

Input parameters:

- `name` (string, required): Package name, e.g. 'express' or '@types/node'

### `npmstats_downloads` (~75 tokens)

npm stats: 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.

Input parameters:

- `name` (string, required): Package name, e.g. 'express' or '@types/node'

### `arxiv_search` (~88 tokens)

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.

Input parameters:

- `limit` (integer): Max results (1-20)
- `query` (string, required): Keywords, e.g. 'model context protocol'

### `holidaycn_year` (~144 tokens)

China public holidays: 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, false = make-up workday). Ordinary weekends are not listed; a date that is absent follows the normal Mon-Fri rule. Data usually appears in November for the next year.

Input parameters:

- `year` (integer, required): Four-digit year, e.g. 2026 (data from 2007 on)

### `baiduhot_realtime` (~94 tokens)

Baidu hot search: 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 (rank; the pinned item has none) and url (Baidu search link).

### `shici_random` (~154 tokens)

Chinese classical poetry: 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 古诗文-抒情-感恩).

Input parameters:

- `theme` (string): Theme: all (default), or a category path such as shuqing (抒情), siji (四季), shanshui (山水), tianqi (天气), renwu (人物), shenghuo (生活), jieri (节日), dongwu (动物), zhiwu (植物)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/charleswei118-web2mcp/web2mcp#diagnostics

## Score history

- 2026-11-05: 69
- 2026-11-04: 68
- 2026-11-03: 68
- 2026-11-02: 67
- 2026-11-01: 66
- 2026-10-31: 62

## Common questions

### What is the web2mcp MCP server?

web2mcp is an MCP server listed in the public MCP registry as io.github.charleswei118/web2mcp. Zero-dependency Cloudflare Worker gateway turning websites and REST APIs into MCP tools. This page covers its hosted endpoint (https://web2mcp.cwei59969.workers.dev/mcp).

### Is the web2mcp MCP server safe to use?

web2mcp scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the web2mcp MCP server expose?

web2mcp exposes 15 tools: wikipedia_search, wikipedia_summary, hackernews_front_page, hackernews_search, geocode_search, and 10 more. Their descriptions and schemas cost roughly 1,556 tokens of context every time the server is loaded.

### Does the web2mcp MCP server require authentication?

No. We connected to web2mcp without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the web2mcp MCP server still maintained?

web2mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://web2mcp.cwei59969.workers.dev/mcp
- Repository: https://github.com/charleswei118/web2mcp
- Website: https://web2mcp.cwei59969.workers.dev/
- Changelog RSS feed: https://verifymcp.io/servers/charleswei118-web2mcp/web2mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/charleswei118-web2mcp/web2mcp.json
- HTML version of this page: https://verifymcp.io/servers/charleswei118-web2mcp/web2mcp
