Unified real-time search MCP server supporting general web search, vertical domain search (23 domains), parallel batch search, and full-page URL content extraction.
An API key is optional but recommended. Without a key, all features still work via anonymous access with lower rate limits.
Visit https://anysearch.com/console/api-keys to create a free API key.
PrioritySource1 (highest)--api_key CLI flag / Authorization header2Environment variable ANYSEARCH_API_KEY3.env file ( ANYSEARCH_API_KEY=<key>)4Anonymous access (lower rate limits)
ScenarioBehaviorNo keyProceed with anonymous access (lower rate limits)Has keySent via Authorization: Bearer <key> header, higher rate limitsKey exhausted, auto-registered key returnedAgent should ask user for confirmation, then persist the new keyKey exhausted, no new keyInform user and suggest configuring a new API key
AnySearch MCP server natively supports Streamable HTTP transport (MCP spec 2025-03-26). SSE and stdio clients can connect via proxy.
TransportNative?Best forStreamable HTTPYesOpenCode, Claude Desktop (2025.6+), web-based clientsSSEVia proxyCursor, WindsurfstdioVia proxyClaude Desktop (legacy), VS Code Copilot, Cline
For agents that support the Streamable HTTP transport (MCP spec 2025-03-26+):
OpenCode ( ~/.opencode/config.json or project opencode.json):
json
{
"mcp": {
"anysearch": {
"type": "streamable-http",
"url": "https://api.anysearch.com/mcp",
"headers": {
"Authorization": "Bearer ${ANYSEARCH_API_KEY}"
}
}
}
}
Claude Desktop (2025.6+, claude_desktop_config.json):
json
{
"mcpServers": {
"anysearch": {
"type": "streamable-http",
"url": "https://api.anysearch.com/mcp",
"headers": {
"Authorization": "Bearer ${ANYSEARCH_API_KEY}"
}
}
}
}
Without an API key, omit the
headerssection. The server will use anonymous access automatically.
For agents that only support stdio transport. Two proxy options:
mcp-remote — auto-detects Streamable HTTP, simplest config:
Claude Desktop ( claude_desktop_config.json):
json
{
"mcpServers": {
"anysearch": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.anysearch.com/mcp",
"--header",
"Authorization: Bearer ${ANYSEARCH_API_KEY}"
]
}
}
}
VS Code Copilot ( .vscode/mcp.json):
json
{
"servers": {
"anysearch": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.anysearch.com/mcp",
"--header",
"Authorization: Bearer ${ANYSEARCH_API_KEY}"
]
}
}
}
Cline (VS Code settings):
json
{
"mcpServers": {
"anysearch": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.anysearch.com/mcp",
"--header",
"Authorization: Bearer ${ANYSEARCH_API_KEY}"
]
}
}
}
Without an API key, omit the
"--header"and"Authorization: Bearer ..."args.
supergateway — more transport options, supports SSE output:
Claude Desktop ( claude_desktop_config.json):
json
{
"mcpServers": {
"anysearch": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--streamableHttp",
"https://api.anysearch.com/mcp",
"--oauth2Bearer",
"${ANYSEARCH_API_KEY}"
]
}
}
}
Without an API key, omit the
"--oauth2Bearer"and key args.
For agents that only support SSE transport (Cursor, Windsurf). Requires running a local SSE proxy server:
bash
npx -y supergateway \
--streamableHttp https://api.anysearch.com/mcp \
--outputTransport sse \
--port 8000 \
--oauth2Bearer <your_api_key>
Without an API key, omit the
--oauth2Bearerflag.
Then configure your agent:
Cursor ( .cursor/mcp.json):
json
{
"mcpServers": {
"anysearch": {
"type": "sse",
"url": "http://localhost:8000/sse"
}
}
}
Windsurf ( ~/.codeium/windsurf/mcp_config.json):
json
{
"mcpServers": {
"anysearch": {
"serverUrl": "http://localhost:8000/sse"
}
}
}
The SSE proxy must remain running while the agent is active. Consider running it as a background service.
AgentTransportConfig LocationNeeds Proxy?Proxy ToolOpenCodeStreamable HTTPopencode.jsonNo—Claude Desktop (2025.6+)Streamable HTTPclaude_desktop_config.jsonNo—Claude Desktop (legacy)stdioclaude_desktop_config.jsonYesmcp-remoteCursorSSE.cursor/mcp.jsonYessupergatewayVS Code Copilotstdio.vscode/mcp.jsonYesmcp-remoteWindsurfSSEmcp_config.jsonYessupergatewayClinestdioVS Code settingsYesmcp-remote
search#Execute a search query — general or vertical domain.
ParameterTypeRequiredDescriptionquerystringYesSearch query. For vertical search, follow the query_format from list_domains``domainstringNoVertical domain (e.g. finance, academic, security)sub_domainstringNoSub-domain routing key (e.g. finance.us_stock). Required for vertical searchsub_domain_paramsobjectNoExtra params per sub_domain schemacontent_typesstring[]NoFilter: web, news, code, doc, academic, data, image, video, audio``zonestringNocn or intl. Required when sub_domain marks zone=CN``max_resultsintegerNo1–100, default 10freshnessstringNoday, week, month, year
list_domains#Query the vertical domain directory. Must be called before vertical search to discover available sub_domains and their query formats.
ParameterTypeRequiredDescriptiondomainstringOne ofSingle domain to querydomainsstring[]One ofBatch up to 5 domains
Returns a Markdown table: sub_domain | description | query_format | params_schema | zone
batch_search#Execute 2–5 independent search queries in parallel. Single failure does not block others.
ParameterTypeRequiredDescriptionqueriesobject[]Yes1–5 query objects, each with same fields as search
extract#Fetch full page content from a URL and return as Markdown. Truncated at 50,000 characters. HTML pages only.
ParameterTypeRequiredDescriptionurlstringYesTarget URL ( http:// or https://)
text
User query
|
+-- Has structured identifiers? (Stock:/CVE:/DOI:/IATA:/patent etc.)
| YES -> 1) list_domains -> discover sub_domain & query_format
| 2) search with domain + sub_domain + zone
|
+-- Multiple independent intents?
| YES -> batch_search
|
+-- Need deeper content than snippets?
| YES -> extract the URL
|
+-- Otherwise -> search (general)
Before vertical search, you must call list_domains for the target domain and follow:
query_format — exact format for the query string (e.g. raw ticker, not natural language)params_schema — JSON schema for optional extra parameterszone — if CN, you must set zone: "cn" in the search callsub_domain selection — match user intent to the best sub_domain descriptioncode tech fashion travel home ecommerce gaming film music finance academic legal business ip security education health religion geo environment energy ugc
json
{ "query": "quantum computing breakthroughs 2025", "max_results": 5, "freshness": "month" }
json
{ "query": "AAPL", "domain": "finance", "sub_domain": "finance.us_stock", "max_results": 5 }
json
{
"queries": [
{ "query": "AAPL", "domain": "finance", "sub_domain": "finance.us_stock" },
{ "query": "python async http client", "domain": "code", "sub_domain": "code.general" }
]
}
json
{ "url": "https://en.wikipedia.org/wiki/Quantum_computing" }
https://api.anysearch.com.env files