https://github.com/New1Direction/webmcp-anything
Turn any URL into agent-callable MCP tools. One spec-compliant MCP server endpoint, no per-site build.
https://github.com/New1Direction/webmcp-anything
ai-agents anthropic claude cloudflare-workers cursor json-ld json-rpc llm-tools mcp mcp-server model-context-protocol oauth openapi shopify streamable-http tool-use typescript web-agents
Last synced: 12 days ago
JSON representation
Turn any URL into agent-callable MCP tools. One spec-compliant MCP server endpoint, no per-site build.
- Host: GitHub
- URL: https://github.com/New1Direction/webmcp-anything
- Owner: New1Direction
- License: mit
- Created: 2026-05-26T17:14:48.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-09T20:05:11.000Z (22 days ago)
- Last Synced: 2026-06-09T21:24:03.363Z (22 days ago)
- Topics: ai-agents, anthropic, claude, cloudflare-workers, cursor, json-ld, json-rpc, llm-tools, mcp, mcp-server, model-context-protocol, oauth, openapi, shopify, streamable-http, tool-use, typescript, web-agents
- Language: TypeScript
- Homepage: https://wmcp.sh
- Size: 13.8 MB
- Stars: 1
- Watchers: 0
- Forks: 2
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
- awesome-mcp-servers - **New1Direction/webmcp-anything: Turn any URL into agent-callable MCP tools. 5-tier adapter chain (Shopify ~4M storefronts / generic JSON-LD / OpenAPI compiler / known providers like Stripe/Slack/Notion/GitHub / Claude 3.5 Haiku fallback). Hosted at wmcp.sh** - free public API, paid tier with custom adapters + verified directory listings. `api` `web` `http` `json` `ai` (π€ AI/ML)
README
# wmcp.sh
**Add any website to Claude, Cursor, or Codex as agent-callable MCP tools β in one line of config. No per-server build, no SDK.**
[](https://wmcp.sh)
[](./LICENSE)
[](https://modelcontextprotocol.io)
[](#whats-in-the-repo)
[](https://glama.ai/mcp/servers/New1Direction/webmcp-anything)
βΆ Watch the 30-sec demo β paste a URL β tools appear β agent calls add_to_cart.
`wmcp.sh` is a real, spec-compliant **MCP server** (JSON-RPC 2.0 over Streamable HTTP) that turns *any URL* into agent-callable tools β Shopify product pages, OpenAPI specs, JSON-LD pages, OAuth-protected APIs. Every other MCP server is one-per-service and hand-built; wmcp is one endpoint that adapts to whatever URL you point it at. Paste a config line and your agent can read prices, list variants, or call an API on a site that ships no MCP server of its own.
**Live now:** [wmcp.sh](https://wmcp.sh) Β· [Directory](https://wmcp.sh/directory) Β· [Blog](https://wmcp.sh/blog) Β· [`/llms.txt`](https://wmcp.sh/llms.txt)
---
## 30-second quickstart
### Connect any URL to your MCP client (the flagship)
Point any MCP client β **Claude Code, Claude Desktop, Cursor, Codex, Cline, VS Code** β at a per-URL endpoint: `/mcp/u/`. That's the whole install. The server exposes that page's extracted tools natively (`tools/list` + `tools/call`):
```json
{
"mcpServers": {
"allbirds": {
"type": "http",
"url": "https://wmcp.sh/mcp/u/aHR0cHM6Ly93d3cuYWxsYmlyZHMuY29tL3Byb2R1Y3RzL21lbnMtd29vbC1ydW5uZXJz"
}
}
}
```
That base64url string decodes to `https://www.allbirds.com/products/mens-wool-runners`. Encode your own:
```bash
node -e "process.stdout.write(Buffer.from('https://your-url.example').toString('base64url'))"
```
**Compose several sites into one MCP server** β repeat the `url` param; tool names are namespaced per host (`site_a__add_to_cart`):
```json
{ "mcpServers": { "wmcp": { "type": "http", "url": "https://wmcp.sh/mcp/url?url=https://site-a.example&url=https://site-b.example" } } }
```
`tools/list` (discovery) is free. `tools/call` (live execution) needs a paid key, passed as a Bearer header:
```json
{ "mcpServers": { "wmcp": { "type": "http", "url": "https://wmcp.sh/mcp/u/", "headers": { "Authorization": "Bearer webmcp_live_β¦" } } } }
```
`type` may be `"http"` or `"streamable-http"` (same transport). For Claude Desktop builds without remote-MCP support, bridge with `npx mcp-remote `. Full walkthrough: [`/how-to/install-claude-desktop-mcp`](https://wmcp.sh/how-to/install-claude-desktop-mcp).
### Or just hit the REST API (no client, no key for reads)
```bash
# any URL β MCP-shaped tool list
curl 'https://wmcp.sh/api/v1/tools?url=https://www.allbirds.com/products/mens-wool-runners'
```
Returns a JSON tool list in the [Claude `tool_use`](https://docs.anthropic.com/en/docs/build-with-claude/tool-use) / OpenAI `function_call` / MCP shape β `get_price`, `add_to_cart`, `list_variants` β that any agent can invoke.
---
## How it works
A 5-tier extraction chain turns most URLs into tools with zero per-site work. Each tier is tried in order; the first that detects the URL wins. The last tier is an LLM fallback that produces best-effort tools and caches the result.
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β URL in β β
β 1. Shopify (~4M storefronts, <50ms) β
β 2. JSON-LD (schema.org Product, etc.) β
β 3. OpenAPI (any 3.x / Swagger 2.0 β tools)β
β 4. Provider (Stripe, GitHub, Slackβ¦) β
β 5. LLM-fallback (Claude Haiku, cached 30d) β
β β MCP tools out β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
Cached on Cloudflare KV; sub-50ms on a cache hit. Discovery (`tools/list`) is free; live execution (`tools/call`) runs through the same engine and needs a paid key. For sites that block bot fetches or hydrate client-side from authed APIs, a [Chrome extension](#directory--sdks--extension) extracts schemas in your browser and pushes them back to the shared cache. Full design in [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md).
---
## What makes it different
Today, "an MCP server for X" means someone wrote, built, and deployed a dedicated server for service X. There are hundreds of them, each one a separate repo and a separate install.
wmcp inverts that:
| | Hand-built MCP server | wmcp.sh |
|---|---|---|
| **Coverage** | One service per server | Any URL, one endpoint |
| **Setup** | Clone, build, configure, deploy | Paste one config line |
| **New target** | Write & ship a new server | Encode the URL β done |
| **Auth'd upstreams** | Bake credentials into each server | Shared OAuth/credential vault proxy at `/mcp/` |
| **Discovery** | Find/trust each repo | Public [directory](https://wmcp.sh/directory) of what's already cached |
There's also a **saved toolset** endpoint β `/mcp/set/` β that bundles a curated set of URLs behind one stable MCP server (a Pro feature). It's genuinely novel: instead of one-per-service, wmcp turns arbitrary URLs into MCP tools on demand.
---
## Directory, SDKs & extension
- **Directory** β every URL the community has indexed, browsable and searchable: [wmcp.sh/directory](https://wmcp.sh/directory). Submit your site (free): [wmcp.sh/directory/submit](https://wmcp.sh/directory/submit).
- **OAuth-vault proxy** β connect an OAuth-protected upstream once; call it as MCP from any client: `https://wmcp.sh/mcp/` (Google, GitHub, Slack, Notion, Linear, Discord, Stripe, Anthropic).
- **Python SDK** β `pip install wmcp`. Native `fetch`-style client, zero required deps.
- **JavaScript/TypeScript SDK** β `npm install @wmcp/sdk` with one-line adapters for `@wmcp/sdk/anthropic`, `@wmcp/sdk/openai`, `@wmcp/sdk/langchain`, and `@wmcp/sdk/vercel-ai`.
```ts
import { WmcpClient } from "@wmcp/sdk";
import { toAnthropicTools } from "@wmcp/sdk/anthropic";
const client = new WmcpClient(); // anonymous = 100 reads/day per IP
const tools = toAnthropicTools(await client.tools("https://www.allbirds.com/products/mens-wool-runners"));
```
- **Chrome extension** β for SPA / bot-walled / auth-walled sites. Extracts client-side, pushes cached schemas back to the hosted API so the next person gets them instantly β even if they never install it.
---
## Pricing
Two separate ladders. Self-serve API plans for anyone, and a done-for-you service if you want a custom adapter built and run for you.
**Self-serve API** (manage at [/dashboard](https://wmcp.sh/dashboard)):
| Tier | Cost | What you get |
|---|---|---|
| **Free** | $0 | `tools/list` + REST reads, IP-rate-limited, no live execute |
| **Builder** | $39/mo | Entry paid tier: live `tools/call` execute, OAuth vault, higher quotas |
| **Pro** | $99/mo | High quotas, priority cache, full execute + vault |
| **Reseller** | $299/mo | High-volume quotas, email support |
**Done-for-you service** ([/managed](https://wmcp.sh/managed)):
| Tier | Cost | What you get |
|---|---|---|
| **Starter** | $499 one-time | Custom adapter built for your site + verified directory badge |
| **Managed Retainer** | $999/mo | Ongoing maintenance, featured listing, white-label MCP at `mcp.yourbrand.com` |
| **Enterprise** | $4,999+/mo | Self-hosted deployment + SLA + dedicated support |
---
## What's in the repo
```
.
βββ adapters/ Shared adapter library (worker + extension import the same files)
β βββ shopify.js ~4M storefronts, read + add_to_cart
β βββ jsonld.js generic schema.org Product
β βββ openapi.js any OpenAPI 3.x / Swagger 2.0 β tools
β βββ llm.js Claude Haiku fallback
β βββ CONTRACT.md the detect() / extract() / actions interface
β βββ _template/ starter scaffold for new adapters
β βββ _test/run.mjs node:test harness, zero deps
β
βββ worker/ Hosted API + MCP server at wmcp.sh
β βββ src/ Hono routes, mcp_server.ts, OAuth, billing, SEO pages, token vault
β
βββ extension/ Chrome MV3 extension (cache-back path)
β
βββ sdks/
β βββ python/wmcp/ pip install wmcp
β βββ javascript/src/ @wmcp/sdk (+ anthropic / openai / langchain / vercel-ai adapters)
β
βββ docs/ QUICKSTART Β· ARCHITECTURE Β· API Β· SELF_HOSTING
βββ launch/ Launch artifacts (HN draft, registry submissions, demo)
βββ AGENTS.md rules for AI coding agents working on this repo
βββ CONTRIBUTING.md how to send a PR
βββ ADAPTERS_WANTED.md open targets, ranked by difficulty
βββ LICENSE MIT
```
---
## Contributing
New adapters are welcome via PR. The whole point is that adding a site shouldn't mean building a new server.
```bash
git clone https://github.com/New1Direction/webmcp-anything
cd webmcp-anything
cp -r adapters/_template adapters/mysite
# edit adapters/mysite/adapter.js β implement detect() + extract()
node adapters/_test/run.mjs
```
Adapter files are **plain ES modules with zero npm deps** so the same file runs in Cloudflare Workers, Chrome MV3 service workers, and Node 18+. Read [CONTRIBUTING.md](./CONTRIBUTING.md), the [adapter contract](./adapters/CONTRACT.md), and open targets in [ADAPTERS_WANTED.md](./ADAPTERS_WANTED.md). If you're an AI coding agent, read [AGENTS.md](./AGENTS.md) first.
---
## Status
- β
Production at [wmcp.sh](https://wmcp.sh) (Cloudflare Workers + KV)
- β
Spec-compliant MCP server (JSON-RPC 2.0 over Streamable HTTP) β per-URL, multi-URL, and saved-toolset endpoints
- β
5-tier extraction chain + free REST API (`/api/v1/tools`)
- β
OAuth-vault proxy for 8+ providers (Google, GitHub, Slack, Notion, Linear, Discord, Stripe, Anthropic)
- β
Public directory (submit, badge, verified/featured)
- β
Python (`pip install wmcp`) + JS (`@wmcp/sdk`) SDKs and a Chrome extension
- π‘ Stripe billing wired; self-serve dashboard upgrade in progress
- π‘ Registry submissions in progress β see [`launch/registry/SUBMISSION_PLAYBOOK.md`](./launch/registry/SUBMISSION_PLAYBOOK.md)
Found a bug? [Open an issue](https://github.com/New1Direction/webmcp-anything/issues). Have a site we should support? [ADAPTERS_WANTED.md](./ADAPTERS_WANTED.md).
---
## License
MIT. See [LICENSE](./LICENSE). Repo: [github.com/New1Direction/webmcp-anything](https://github.com/New1Direction/webmcp-anything).