web2mcp@0.2.0
VERIFIEDPublisher claims: "Enables any AI agent to call websites and REST APIs as MCP tools through a config-driven, zero-dependency Cloudflare Workers gateway. Connectors map HTTP endpoints into type-checked tools with token-friendly responses, server-side secrets, and optional bearer auth." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Server started and answered tools/list.- Tested
- MCP initialize and tools/list · every tool description, for hidden instructions · every file read, file written and host contacted by what ran
- Not tested
- what the tools do when called with real credentials
Before you give it your token
- It will ask for
AUTH_TOKENMCP_TOKENConfiguration, not credentials: CONNECTORS_JSON, ENABLED_CONNECTORS, MAX_OUTPUT_CHARS, MCP_URL, NAME, TOOL_MODE- Where it talks to
- no vendor host named in the codeAlso open-meteo.com, arxiv.org, baidu.com, bilibili.com, crossref.org, frankfurter.dev, algolia.com, jsdelivr.net, nager.at, openlibrary.org, jina.ai, jinrishici.com, api.host, workers.dev — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- what the tools do when called with real credentials
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names open-meteo.com, arxiv.org, baidu.com, bilibili.com, crossref.org, frankfurter.dev, algolia.com, jsdelivr.net, nager.at, openlibrary.org, jina.ai, jinrishici.com, api.host, workers.dev as well as its own vendor. The guard injects AUTH_TOKEN, MCP_TOKEN only into requests to the host you bind (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios) on 2026-11-11 and scored it 85/100 (Verified). It did what it claims and nothing else we could detect: no undeclared network egress, no credential reads, no persistent instruction writes. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 20 s · 2 scenarios · 0 deviationsStatic findings
"http://user:[email protected]/", "ftp://example.com/", "file:///etc/passwd", "http://example.com:22/",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."http://100.64.0.1/", "http://0.0.0.0/", "http://[::1]/", "http://[fd00::1]/", "http://[fe80::1]/",Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.// Local stdio MCP server: `node bin/web2mcp.js` or `npx github:charleswei118/web2mcp`.Fix: Pin versions and sources; vendor anything fetched at install time."http://user:[email protected]/", "ftp://example.com/", "file:///etc/passwd", "http://example.com:22/",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."deploy": "npx wrangler deploy",Fix: Pin versions and sources; vendor anything fetched at install time."http://localhost/", "http://127.0.0.1/", "http://2130706433/", "http://0x7f000001/",Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.# Secrets (set with `npx wrangler secret put NAME`):Fix: Pin versions and sources; vendor anything fetched at install time."dev": "npx wrangler dev",Fix: Pin versions and sources; vendor anything fetched at install time."http://10.0.0.5/x", "http://172.16.1.1/", "http://192.168.1.1/", "http://169.254.169.254/latest/meta-data",Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls."http://100.64.0.1/", "http://0.0.0.0/", "http://[::1]/", "http://[fd00::1]/", "http://[fe80::1]/",Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls."http://10.0.0.5/x", "http://172.16.1.1/", "http://192.168.1.1/", "http://169.254.169.254/latest/meta-data",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.assert.throws(() => buildRequest(rd.connector, rd.tool, { url: "file:///etc/passwd" }), /must match/);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.