anysearch-mcp-server
anysearch-ai · anysearch-ai/anysearch-mcp-server
This MCP server enables AI agents to perform real-time web searches, specialized domain searches, parallel queries, and extract full page content from URLs.
Unified real-time search MCP server supporting general web search, vertical domain search, parallel batch search, and full-page URL content extraction.
Preview
What you can do with it
- Research current events or specific topics directly from an AI agent.
- Gather data from multiple web pages efficiently for analysis or content generation.
- Extract full text content from a given URL to summarize or process.
Safety check
No risky patterns found in the files we scanned.
Automated scan of the repo files. Always review code you run.
From the README
AnySearch MCP Server
English | 简体中文
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.
Register for an API Key (Recommended)
The agent can register the user and obtain an API key in a single call — no verification code, no manual signup. Ask the user for a real email address: it becomes the account username.
curl -s -X POST "https://api.anysearch.com/v1/auth/email/register" \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
Success response (code: 0) returns the account info and a one-time plaintext API key:
{
"code": 0,
"message": "success",
"data": {
"username": "you@example.com",
"email": "you@example.com",
"login_url": "https://www.anysearch.com/login",
"api_key": {
"id": "key_xxxxxxxx",
"key": "as_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"key_prefix": "as_sk_xxxxxx...",
"name": "default",
"rate_limit": 100,
"quota_limit": 0,
"expires_at": null,
"created_at": "2026-06-23T10:23:00Z"
}
}
}
Quota fields such as rate_limit are account-specific response values; do not treat the example as a fixed plan.
On success the agent MUST:
- Put
data.api_key.keyinto the MCP server config as theAuthorization: Bearer <key>value (and/or setANYSEARCH_API_KEY) — it is shown only once (it can also be retrieved later from the dashboard). - Tell the user their username (= email) and the
login_url.
Errors can be expressed through the HTTP status, application-level code, or message; do not assume every error uses code: -1:
| status / code / message | what to do |
|---|---|
Invalid email address. | ask the user to re-enter the email |
HTTP 409 or email_already_registered | email is taken — tell the user to sign in at login_url; do not retry |
code: 42901, rate_limited, or contains Rate limited | prefer a retry delay from Retry-After, response data, or the message; if none is provided, stop repeated requests and retry later or use anonymous access |
starts with Key creation failed. | account created but key failed — extract the email and URL from the message ("Key creation failed. Your account <email> was created; sign in at <url>.") and tell the user to sign in there to create a key manually |
Internal server error. | retry later or fall back to anonymous |
The email must be real and reachable.
Get an API Key
Alternatively, visit https://anysearch.com/console/api-keys to create a free API key.
Key Priority
| Priority | Source |
|---|---|
| 1 (highest) | --api_key CLI flag / Authorization header |
| 2 | Environment variable ANYSEARCH_API_KEY |
| 3 | .env file (ANYSEARCH_API_KEY=<key>) |
| 4 | Anonymous access (lower rate limits) |
Key Behavior
| Scenario | Behavior |
|---|---|
| No key | Proceed with anonymous access (lower rate limits) |
| Has key | Sent via Authorization: Bearer <key> header, higher rate limits |
| Key exhausted, auto-registered key returned | Agent should ask user for confirmation, then persist the new key |
| Key exhausted, no new key | Inform user and suggest configuring a new API key |
MCP Transport
The production endpoint is:
https://api.anysearch.com/mcp
It natively uses Streamable HTTP. Current OpenCode, Claude Code, Cursor, VS Code, Cline, OpenAI Codex, Google Antigravity, DeepSeek Harness, Hermes Agent, and OMP releases can connect to it directly; no SSE or stdio proxy is needed. The configurations below follow each client's current official documentation.
Installation
The API key is optional. Where a client documents environment-variable or secret storage for custom headers, the examples use the recommended authenticated setup. Where it does not, the example stays anonymous and explains how to add authentication only in private user configuration. To use anonymous access elsewhere, remove only the Authorization entry and keep X-Anysearch-Client.
OpenCode
Official docs: MCP servers and configuration locations.
Use ~/.config/opencode/opencode.json for a global configuration or opencode.json in the project root. On Windows, the global path is %USERPROFILE%\.config\opencode\opencode.json.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"anysearch": {
"type": "remote",
"url": "https://api.anysearch.com/mcp",
"enabled": true,
"oauth": false,
"headers": {
"Authorization": "Bearer {env:ANYSEARCH_API_KEY}",
"X-Anysearch-Client": "mcp/1.0.0"
}
}
}
}
OpenCode uses {env:NAME} for environment-variable substitution. "oauth": false prevents an unnecessary OAuth discovery flow for this API-key-authenticated server.
After saving, run opencode mcp list and confirm that anysearch is shown as connected.
Claude Code
Official docs: Connect Claude Code to tools via MCP.
For a private, user-wide installation, run:
claude mcp add --transport http anysearch https://api.anysearch.com/mcp --scope user --header 'Authorization: Bearer ${ANYSEARCH_API_KEY}' --heade