AnySearch MCP Server

Unified real-time search engine skill for AI agents.

Documentation

AnySearch MCP Server

Unified real-time search MCP server supporting general web search, vertical domain search, parallel batch search, and full-page URL content extraction.

Features

  • General Web Search — open-ended natural language queries
  • Vertical Domain Search — structured queries across finance, academic, security, legal, code, and more
  • Parallel Batch Search — execute multiple independent queries in one call
  • URL Content Extraction — fetch and extract full page content as Markdown
  • Anonymous Access — works without an API key (with lower rate limits)

API Key Configuration

An API key is optional but recommended. Without a key, all features still work via anonymous access with lower rate limits.

Get an API Key

Visit https://anysearch.com/console/api-keys to create a free API key.

Key Priority

PrioritySource
1 (highest)--api_key CLI flag / Authorization header
2Environment variable ANYSEARCH_API_KEY
3.env file (ANYSEARCH_API_KEY=<key>)
4Anonymous access (lower rate limits)

Key Behavior

ScenarioBehavior
No keyProceed with anonymous access (lower rate limits)
Has keySent via Authorization: Bearer <key> header, higher rate limits
Key exhausted, auto-registered key returnedAgent should ask user for confirmation, then persist the new key
Key exhausted, no new keyInform user and suggest configuring a new API key

MCP Transport

AnySearch MCP server natively supports Streamable HTTP transport (MCP spec 2025-03-26). SSE and stdio clients can connect via proxy.

TransportNative?Best for
Streamable HTTPYesOpenCode, Claude Desktop (2025.6+), web-based clients
SSEVia proxyCursor, Windsurf
stdioVia proxyClaude Desktop (legacy), VS Code Copilot, Cline

Installation

Streamable HTTP (Recommended — No Proxy Needed)

For agents that support the Streamable HTTP transport (MCP spec 2025-03-26+):

OpenCode (~/.opencode/config.json or project opencode.json):

{
  "mcp": {
    "anysearch": {
      "type": "remote",
      "url": "https://api.anysearch.com/mcp",
      "headers": {
        "Authorization": "Bearer ${ANYSEARCH_API_KEY}"
      }
    }
  }
}

Claude Desktop (2025.6+, claude_desktop_config.json):

{
  "mcpServers": {
    "anysearch": {
      "type": "streamable-http",
      "url": "https://api.anysearch.com/mcp",
      "headers": {
        "Authorization": "Bearer ${ANYSEARCH_API_KEY}"
      }
    }
  }
}

Without an API key, omit the headers section. The server will use anonymous access automatically.

stdio (Via Proxy)

For agents that only support stdio transport. Two proxy options:

Option A: mcp-remote (Recommended)

mcp-remote — auto-detects Streamable HTTP, simplest config:

Claude Desktop (claude_desktop_config.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):

{
  "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):

{
  "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.

Option B: supergateway

supergateway — more transport options, supports SSE output:

Claude Desktop (claude_desktop_config.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.

SSE (Via Proxy)

For agents that only support SSE transport (Cursor, Windsurf). Requires running a local SSE proxy server:

Start the proxy

npx -y supergateway \
  --streamableHttp https://api.anysearch.com/mcp \
  --outputTransport sse \
  --port 8000 \
  --oauth2Bearer <your_api_key>

Without an API key, omit the --oauth2Bearer flag.

Then configure your agent:

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "anysearch": {
      "type": "sse",
      "url": "http://localhost:8000/sse"
    }
  }
}

Windsurf (~/.codeium/windsurf/mcp_config.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.

Agent Quick Reference

AgentTransportConfig LocationNeeds Proxy?Proxy Tool
OpenCodeStreamable HTTPopencode.jsonNo
Claude Desktop (2025.6+)Streamable HTTPclaude_desktop_config.jsonNo
Claude Desktop (legacy)stdioclaude_desktop_config.jsonYesmcp-remote
CursorSSE.cursor/mcp.jsonYessupergateway
VS Code Copilotstdio.vscode/mcp.jsonYesmcp-remote
WindsurfSSEmcp_config.jsonYessupergateway
ClinestdioVS Code settingsYesmcp-remote

Available Tools

search

Execute a search query — general or vertical domain.

ParameterTypeRequiredDescription
querystringYesNatural language search query. ONE intent per call
domainstringNoVertical domain (e.g. finance, academic, security). Must come from get_sub_domains enum
sub_domainstringNoSub-domain routing key (e.g. finance.us_stock). Must come from get_sub_domains output
sub_domain_paramsobjectNoStructured params from get_sub_domains params column. NEVER invent values
max_resultsintegerNo1–10, default 10

get_sub_domains

Query the vertical domain directory. Required before any search that uses a domain — returns valid sub_domains and their parameter schemas.

ParameterTypeRequiredDescription
domainstringOne ofSingle domain to query
domainsstring[]One ofBatch up to 5 domains (preferred — covers more ground)

Returns a Markdown table: sub_domain | description | params

batch_search

Execute 1–5 independent search queries in parallel. Single failure does not block others.

ParameterTypeRequiredDescription
queriesobject[]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.

ParameterTypeRequiredDescription
urlstringYesTarget URL (http:// or https://)