SearchMesh is one MCP endpoint that lets any AI search the web across many engines at once and read the full contents of any page. Paste one URL into Claude, ChatGPT, Cursor or your own agent — then just tell it to use SearchMesh.
Connect
SearchMesh speaks the Model Context Protocol over streamable HTTP, so it plugs into anything that speaks MCP. There is nothing to install and no library to import.
# one command, then restart your session
claude mcp add --transport http searchmesh \
https://api.searchmesh.io/mcp \
--header "x-api-key: YOUR_KEY"// claude_desktop_config.json
{
"mcpServers": {
"searchmesh": {
"type": "http",
"url": "https://api.searchmesh.io/mcp",
"headers": { "x-api-key": "YOUR_KEY" }
}
}
}# OpenAI Agents SDK — MCP server over HTTP
from agents import Agent
from agents.mcp import MCPServerStreamableHttp
searchmesh = MCPServerStreamableHttp(
params={
"url": "https://api.searchmesh.io/mcp",
"headers": {"x-api-key": "YOUR_KEY"},
}
)
agent = Agent(
name="researcher",
instructions="Use SearchMesh for anything current.",
mcp_servers=[searchmesh],
)// .cursor/mcp.json (same shape works in Windsurf & Zed)
{
"mcpServers": {
"searchmesh": {
"url": "https://api.searchmesh.io/mcp",
"headers": { "x-api-key": "YOUR_KEY" }
}
}
}# plain JSON-RPC — no MCP client needed
curl https://api.searchmesh.io/mcp \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"web_search",
"arguments":{"query":"latest rust release"}}}'Endpoint https://api.searchmesh.io/mcp · transport streamable HTTP · auth x-api-key header.
Your AI sees SearchMesh in its toolbox and reaches for it on its own — but you can also aim it directly:
Tools
Search finds the pages. Fetch reads them. Together they turn a model that guesses into one that checks.
Queries a mesh of independent engines in parallel and returns ranked results with titles, URLs and snippets. Filter by recency, language or result count. Built for the questions a model would otherwise answer from stale memory — prices, versions, releases, people, news.
Give it any URL and get back clean, readable markdown — HTML converted, JSON pretty-printed, boilerplate stripped. Use it on results from a search, or on any link a user drops into the conversation.
Autocomplete-style alternatives, so an agent can refine a fuzzy or misspelled question before spending a search on it.
Reports which upstream engines and categories are live right now. Diagnostic — handy when you want to know what the mesh is drawing from.
Why a mesh
Most search APIs resell one upstream source. When it rate-limits you, you get nothing back. SearchMesh is built the other way around.
Every query fans out to several independent search engines at once and the results are merged and ranked. If one engine throttles, the others still answer.
Rate limits are enforced per source IP, so requests leave over more than one, and each engine is routed through the path it actually accepts.
Burst past capacity and requests wait their turn instead of failing. Measured at 100 simultaneous searches: every one answered, none dropped.
Pricing
One request is one web_search or one read_url.
Suggestions and status checks are free. Unused requests do not roll over.
| Plan | Requests / month | Monthly | Yearly | Per request |
|---|---|---|---|---|
| Free | 250 | $0 | $0 | — |
| Starter | 5,000 | $9 | $90 | $0.0018 |
| Pro | 25,000 | $29 | $290 | $0.0012 |
| Scale | 100,000 | $79 | $790 | $0.0008 |
| Enterprise | custom | Talk to us | volume | |
Yearly plans are billed as ten months — two months free. Plans renew automatically and can be cancelled any time; you keep the requests you have paid for until the period ends.
FAQ
Anything that speaks MCP. That includes Claude (Code, Desktop and the web app's custom connectors), OpenAI's Agents SDK, Cursor, Windsurf, Zed, LangChain's MCP adapters, and any agent you write yourself. If your client cannot do MCP, the endpoint is still plain JSON-RPC over HTTPS and you can call it with curl.
No. That is the entire point. You add one URL and a key; SearchMesh handles the engines, the rate limits, the retries and the HTML-to-markdown conversion.
Usually you don't have to — the tools describe themselves clearly enough that a model reaches for them when a question needs current information. When you want to be explicit, say "use SearchMesh" or "blast SearchMesh" and it will.
One web_search call or one read_url call. A search that
returns thirty results is still one request. search_suggestions and
mesh_status are not billed.
Calls are paused rather than silently billed, and we tell you before you get there. You can upgrade mid-cycle and only pay the difference.
Not yet — payments are being wired up now. The plans above are the pricing we will launch with. Until then keys are issued manually, so get in touch and we'll set you up.