{"id":50534554,"url":"https://github.com/New1Direction/webmcp-anything","last_synced_at":"2026-06-20T10:00:54.570Z","repository":{"id":360907135,"uuid":"1250482335","full_name":"New1Direction/webmcp-anything","owner":"New1Direction","description":"Turn any URL into agent-callable MCP tools. One spec-compliant MCP server endpoint, no per-site build.","archived":false,"fork":false,"pushed_at":"2026-06-09T20:05:11.000Z","size":14426,"stargazers_count":1,"open_issues_count":11,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T21:24:03.363Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"https://wmcp.sh","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/New1Direction.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-26T17:14:48.000Z","updated_at":"2026-06-05T04:47:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/New1Direction/webmcp-anything","commit_stats":null,"previous_names":["new1direction/webmcp-anything"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/New1Direction/webmcp-anything","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/New1Direction%2Fwebmcp-anything","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/New1Direction%2Fwebmcp-anything/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/New1Direction%2Fwebmcp-anything/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/New1Direction%2Fwebmcp-anything/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/New1Direction","download_url":"https://codeload.github.com/New1Direction/webmcp-anything/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/New1Direction%2Fwebmcp-anything/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34565244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2026-06-03T16:00:32.408Z","updated_at":"2026-06-20T10:00:54.548Z","avatar_url":"https://github.com/New1Direction.png","language":"TypeScript","funding_links":[],"categories":["🤖 AI/ML"],"sub_categories":[],"readme":"# wmcp.sh\n\n**Add any website to Claude, Cursor, or Codex as agent-callable MCP tools — in one line of config. No per-server build, no SDK.**\n\n[![Live](https://img.shields.io/badge/live-wmcp.sh-7c5cff)](https://wmcp.sh)\n[![MIT License](https://img.shields.io/badge/license-MIT-4ade80)](./LICENSE)\n[![MCP compatible](https://img.shields.io/badge/MCP-compatible-00e5ff)](https://modelcontextprotocol.io)\n[![TypeScript](https://img.shields.io/badge/built%20with-TypeScript-3178c6)](#whats-in-the-repo)\n[![New1Direction/webmcp-anything MCP server](https://glama.ai/mcp/servers/New1Direction/webmcp-anything/badges/score.svg)](https://glama.ai/mcp/servers/New1Direction/webmcp-anything)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://wmcp.sh/demo/hero.mp4\"\u003e\n    \u003cimg src=\"https://wmcp.sh/og.png\" alt=\"wmcp.sh — paste any URL, get agent-callable MCP tools in Claude/Cursor/Codex\" width=\"640\" /\u003e\n  \u003c/a\u003e\n  \u003cbr/\u003e\n  \u003cem\u003e\u003ca href=\"https://wmcp.sh/demo/hero.mp4\"\u003e▶ Watch the 30-sec demo\u003c/a\u003e — paste a URL → tools appear → agent calls add_to_cart.\u003c/em\u003e\n\u003c/p\u003e\n\n`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.\n\n**Live now:** [wmcp.sh](https://wmcp.sh) · [Directory](https://wmcp.sh/directory) · [Blog](https://wmcp.sh/blog) · [`/llms.txt`](https://wmcp.sh/llms.txt)\n\n---\n\n## 30-second quickstart\n\n### Connect any URL to your MCP client (the flagship)\n\nPoint any MCP client — **Claude Code, Claude Desktop, Cursor, Codex, Cline, VS Code** — at a per-URL endpoint: `/mcp/u/\u003cbase64url-of-your-url\u003e`. That's the whole install. The server exposes that page's extracted tools natively (`tools/list` + `tools/call`):\n\n```json\n{\n  \"mcpServers\": {\n    \"allbirds\": {\n      \"type\": \"http\",\n      \"url\": \"https://wmcp.sh/mcp/u/aHR0cHM6Ly93d3cuYWxsYmlyZHMuY29tL3Byb2R1Y3RzL21lbnMtd29vbC1ydW5uZXJz\"\n    }\n  }\n}\n```\n\nThat base64url string decodes to `https://www.allbirds.com/products/mens-wool-runners`. Encode your own:\n\n```bash\nnode -e \"process.stdout.write(Buffer.from('https://your-url.example').toString('base64url'))\"\n```\n\n**Compose several sites into one MCP server** — repeat the `url` param; tool names are namespaced per host (`site_a__add_to_cart`):\n\n```json\n{ \"mcpServers\": { \"wmcp\": { \"type\": \"http\", \"url\": \"https://wmcp.sh/mcp/url?url=https://site-a.example\u0026url=https://site-b.example\" } } }\n```\n\n`tools/list` (discovery) is free. `tools/call` (live execution) needs a paid key, passed as a Bearer header:\n\n```json\n{ \"mcpServers\": { \"wmcp\": { \"type\": \"http\", \"url\": \"https://wmcp.sh/mcp/u/\u003cbase64url\u003e\", \"headers\": { \"Authorization\": \"Bearer webmcp_live_…\" } } } }\n```\n\n`type` may be `\"http\"` or `\"streamable-http\"` (same transport). For Claude Desktop builds without remote-MCP support, bridge with `npx mcp-remote \u003curl\u003e`. Full walkthrough: [`/how-to/install-claude-desktop-mcp`](https://wmcp.sh/how-to/install-claude-desktop-mcp).\n\n### Or just hit the REST API (no client, no key for reads)\n\n```bash\n# any URL → MCP-shaped tool list\ncurl 'https://wmcp.sh/api/v1/tools?url=https://www.allbirds.com/products/mens-wool-runners'\n```\n\nReturns 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.\n\n---\n\n## How it works\n\nA 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.\n\n```\n┌──────────────────────────────────────────────────┐\n│  URL in →                                          │\n│    1. Shopify       (~4M storefronts, \u003c50ms)       │\n│    2. JSON-LD       (schema.org Product, etc.)     │\n│    3. OpenAPI       (any 3.x / Swagger 2.0 → tools)│\n│    4. Provider      (Stripe, GitHub, Slack…)       │\n│    5. LLM-fallback  (Claude Haiku, cached 30d)     │\n│  → MCP tools out                                   │\n└──────────────────────────────────────────────────┘\n```\n\nCached 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).\n\n---\n\n## What makes it different\n\nToday, \"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.\n\nwmcp inverts that:\n\n| | Hand-built MCP server | wmcp.sh |\n|---|---|---|\n| **Coverage** | One service per server | Any URL, one endpoint |\n| **Setup** | Clone, build, configure, deploy | Paste one config line |\n| **New target** | Write \u0026 ship a new server | Encode the URL — done |\n| **Auth'd upstreams** | Bake credentials into each server | Shared OAuth/credential vault proxy at `/mcp/\u003cprovider\u003e` |\n| **Discovery** | Find/trust each repo | Public [directory](https://wmcp.sh/directory) of what's already cached |\n\nThere's also a **saved toolset** endpoint — `/mcp/set/\u003cid\u003e` — 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.\n\n---\n\n## Directory, SDKs \u0026 extension\n\n- **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).\n- **OAuth-vault proxy** — connect an OAuth-protected upstream once; call it as MCP from any client: `https://wmcp.sh/mcp/\u003cprovider\u003e` (Google, GitHub, Slack, Notion, Linear, Discord, Stripe, Anthropic).\n- **Python SDK** — `pip install wmcp`. Native `fetch`-style client, zero required deps.\n- **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`.\n\n```ts\nimport { WmcpClient } from \"@wmcp/sdk\";\nimport { toAnthropicTools } from \"@wmcp/sdk/anthropic\";\n\nconst client = new WmcpClient(); // anonymous = 100 reads/day per IP\nconst tools = toAnthropicTools(await client.tools(\"https://www.allbirds.com/products/mens-wool-runners\"));\n```\n\n- **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.\n\n---\n\n## Pricing\n\nTwo 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.\n\n**Self-serve API** (manage at [/dashboard](https://wmcp.sh/dashboard)):\n\n| Tier | Cost | What you get |\n|---|---|---|\n| **Free** | $0 | `tools/list` + REST reads, IP-rate-limited, no live execute |\n| **Builder** | $39/mo | Entry paid tier: live `tools/call` execute, OAuth vault, higher quotas |\n| **Pro** | $99/mo | High quotas, priority cache, full execute + vault |\n| **Reseller** | $299/mo | High-volume quotas, email support |\n\n**Done-for-you service** ([/managed](https://wmcp.sh/managed)):\n\n| Tier | Cost | What you get |\n|---|---|---|\n| **Starter** | $499 one-time | Custom adapter built for your site + verified directory badge |\n| **Managed Retainer** | $999/mo | Ongoing maintenance, featured listing, white-label MCP at `mcp.yourbrand.com` |\n| **Enterprise** | $4,999+/mo | Self-hosted deployment + SLA + dedicated support |\n\n---\n\n## What's in the repo\n\n```\n.\n├── adapters/                Shared adapter library (worker + extension import the same files)\n│   ├── shopify.js           ~4M storefronts, read + add_to_cart\n│   ├── jsonld.js            generic schema.org Product\n│   ├── openapi.js           any OpenAPI 3.x / Swagger 2.0 → tools\n│   ├── llm.js               Claude Haiku fallback\n│   ├── CONTRACT.md          the detect() / extract() / actions interface\n│   ├── _template/           starter scaffold for new adapters\n│   └── _test/run.mjs        node:test harness, zero deps\n│\n├── worker/                  Hosted API + MCP server at wmcp.sh\n│   └── src/                 Hono routes, mcp_server.ts, OAuth, billing, SEO pages, token vault\n│\n├── extension/               Chrome MV3 extension (cache-back path)\n│\n├── sdks/\n│   ├── python/wmcp/         pip install wmcp\n│   └── javascript/src/      @wmcp/sdk (+ anthropic / openai / langchain / vercel-ai adapters)\n│\n├── docs/                    QUICKSTART · ARCHITECTURE · API · SELF_HOSTING\n├── launch/                  Launch artifacts (HN draft, registry submissions, demo)\n├── AGENTS.md                rules for AI coding agents working on this repo\n├── CONTRIBUTING.md          how to send a PR\n├── ADAPTERS_WANTED.md       open targets, ranked by difficulty\n└── LICENSE                  MIT\n```\n\n---\n\n## Contributing\n\nNew adapters are welcome via PR. The whole point is that adding a site shouldn't mean building a new server.\n\n```bash\ngit clone https://github.com/New1Direction/webmcp-anything\ncd webmcp-anything\ncp -r adapters/_template adapters/mysite\n# edit adapters/mysite/adapter.js — implement detect() + extract()\nnode adapters/_test/run.mjs\n```\n\nAdapter 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.\n\n---\n\n## Status\n\n- ✅ Production at [wmcp.sh](https://wmcp.sh) (Cloudflare Workers + KV)\n- ✅ Spec-compliant MCP server (JSON-RPC 2.0 over Streamable HTTP) — per-URL, multi-URL, and saved-toolset endpoints\n- ✅ 5-tier extraction chain + free REST API (`/api/v1/tools`)\n- ✅ OAuth-vault proxy for 8+ providers (Google, GitHub, Slack, Notion, Linear, Discord, Stripe, Anthropic)\n- ✅ Public directory (submit, badge, verified/featured)\n- ✅ Python (`pip install wmcp`) + JS (`@wmcp/sdk`) SDKs and a Chrome extension\n- 🟡 Stripe billing wired; self-serve dashboard upgrade in progress\n- 🟡 Registry submissions in progress — see [`launch/registry/SUBMISSION_PLAYBOOK.md`](./launch/registry/SUBMISSION_PLAYBOOK.md)\n\nFound a bug? [Open an issue](https://github.com/New1Direction/webmcp-anything/issues). Have a site we should support? [ADAPTERS_WANTED.md](./ADAPTERS_WANTED.md).\n\n---\n\n## License\n\nMIT. See [LICENSE](./LICENSE). Repo: [github.com/New1Direction/webmcp-anything](https://github.com/New1Direction/webmcp-anything).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNew1Direction%2Fwebmcp-anything","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNew1Direction%2Fwebmcp-anything","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNew1Direction%2Fwebmcp-anything/lists"}