Quickstart

May 28, 2026 · View on GitHub

You have an AI agent (Claude Desktop, Cursor, Codex, OpenAI's Agents SDK, or a custom Python/TypeScript loop). You want it to call tools on real websites. This is the fastest path.

30-second test (no install)

curl 'https://wmcp.sh/api/v1/tools?url=https://www.allbirds.com/products/mens-wool-runners' | jq '.tools[] | .name'

You should see something like:

"get_price"
"list_variants"
"add_to_cart"
"get_inventory"

That's a live Shopify storefront, compiled to MCP tools at the edge in under 50ms. No API key, no install, no per-site adapter you have to write.

Connect Claude Desktop in 60 seconds

  1. Open Claude Desktop → SettingsDeveloperEdit Config.

  2. Add to your mcpServers:

    {
      "mcpServers": {
        "wmcp": {
          "type": "streamable-http",
          "url": "https://wmcp.sh/api/v1/tools"
        }
      }
    }
    
  3. Restart Claude Desktop. The tools appear under the wrench icon in the chat input.

  4. Try a prompt:

    "Get the price of https://www.allbirds.com/products/mens-wool-runners"

The agent calls get_price against the cached tool extraction and returns the result.

Full step-by-step screenshots at wmcp.sh/how-to/install-claude-desktop-mcp.

Connect Cursor

Cursor reads the same mcpServers config shape. Open ~/.cursor/mcp.json and add the wmcp entry above. Restart Cursor.

Connect Codex CLI

~/.codex/config.toml:

[mcp_servers.wmcp]
type = "streamable-http"
url = "https://wmcp.sh/api/v1/tools"

Connect a custom agent (Python)

import httpx, anthropic

WMCP = "https://wmcp.sh/api/v1/tools"

# 1. Fetch tools for a URL
tools = httpx.get(WMCP, params={"url": "https://www.allbirds.com/products/mens-wool-runners"}).json()["tools"]

# 2. Hand them to Claude
client = anthropic.Anthropic()
msg = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "What's the price of the wool runners?"}],
)

# 3. Iterate the tool_use → tool_result loop
for block in msg.content:
    if block.type == "tool_use":
        # ... call wmcp.sh execute endpoint with block.input, return result ...
        pass

Code-complete version with the execute loop: wmcp.sh/blog/claude-code-mcp-integration-tutorial.

Connect a custom agent (TypeScript)

npm install @wmcp/sdk @anthropic-ai/sdk
import { WmcpClient } from "@wmcp/sdk";
import Anthropic from "@anthropic-ai/sdk";

const wmcp = new WmcpClient();
const { tools } = await wmcp.tools("https://api.stripe.com/openapi.yaml");

const anthropic = new Anthropic();
const msg = await anthropic.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  tools,
  messages: [{ role: "user", content: "List my last 5 Stripe invoices." }],
});
// → handle msg.content tool_use blocks

What can I point wmcp.sh at?

URL shapeAdapter tierLatency
https://yourshop.myshopify.com/products/...Shopify (~4M storefronts)<50ms
https://store.com/product/... with <script type="application/ld+json">JSON-LD<50ms
https://api.example.com/openapi.yaml (or .json)OpenAPI compiler100-300ms first call, <50ms cached
https://api.stripe.com, https://api.github.com, etc. (known providers)Provider adapter<50ms
Anything elseLLM-fallback (Claude 3.5 Haiku)1-3s first call, <50ms cached

Need auth?

Many APIs require OAuth or API keys. wmcp.sh ships an OAuth 2.1 PKCE proxy + encrypted credential vault.

  1. Open wmcp.sh/dashboard

  2. Sign in with GitHub

  3. Connect the providers you need (Stripe, Slack, Notion, Linear, Discord, Google, etc.)

  4. Use the provider-specific MCP endpoint:

    https://wmcp.sh/mcp/stripe
    https://wmcp.sh/mcp/slack
    https://wmcp.sh/mcp/notion
    

    The worker injects your stored bearer token; your agent context never sees raw credentials.

See docs/ARCHITECTURE.md for the security model.

Next steps