The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Search1API listing page.
The official MCP server for Search1API — web search, news, page retrieval, sitemap discovery, and trending topics in one API.
initialize, tools/list) — requires a credential. Unauthenticated requests draw the OAuth challenge, which is how clients trigger sign-in; pre-connect inspection is served by the static server card instead.No installation required. Configure your MCP client with the remote URL. Use OAuth when the client supports it, or provide an API key.
Three methods are supported — use whichever your client supports:
| Method | Format |
|---|---|
| OAuth 2.1 | Connect to https://mcp.search1api.com/mcp without a key and follow the client sign-in flow |
| Authorization Header | Authorization: Bearer YOUR_SEARCH1API_KEY |
| URL Query Parameter (legacy) | https://mcp.search1api.com/mcp?apiKey=YOUR_SEARCH1API_KEY |
Prefer OAuth or the Authorization header. Query-parameter credentials can be exposed in URLs, logs, and shell history.
Settings > Connectors > Add custom connector:
Install as a Cursor plugin (recommended): this repo includes Agent Plugins plugin.json + mcp.json (portable) and .cursor-plugin/plugin.json (Cursor Marketplace metadata / logo) for Remote MCP with OAuth. Submit or install from cursor.directory / the Cursor Marketplace, then sign in when prompted.
For local testing, copy the plugin files into ~/.cursor/plugins/local/search1api (plugin.json, .cursor-plugin/, mcp.json, assets/). Do not symlink from outside that directory — Cursor rejects external symlink targets.
Or configure manually:
The Agent Skill has moved to search1api-cli. Install it with:
If you prefer to run the server locally, use Node.js 20 or newer with npx — no cloning required:
For self-hosted HTTP deployments behind a proxy, add any internal hostnames
that reach the Node.js process to the comma-separated MCP_ALLOWED_HOSTS
environment variable. mcp.search1api.com and localhost addresses are allowed
by default. Browser-based clients that send an Origin header must also have
their trusted origin hostnames added to the comma-separated
MCP_ALLOWED_ORIGINS variable. Requests from server-side MCP clients normally
omit Origin and do not require an entry.
Search the web using Search1API. Results include a citable
id/title/url structure. Pass a result URL to crawl when you need the
full page.
| Parameter | Required | Default | Description |
|---|---|---|---|
query | Yes | - | Search query |
max_results | No | 10 | Number of results |
search_service | No | google, bing, duckduckgo, yahoo, x, reddit, github, youtube, arxiv, wechat, bilibili, imdb, wikipedia | |
crawl_results | No | 0 | Number of top results to crawl for full content; each successful crawl adds 1 credit to the base 1-credit search request |
include_sites | No | [] | Sites to include |
exclude_sites | No | [] | Sites to exclude |
time_range | No | - | day, month, year |
Search for news articles.
| Parameter | Required | Default | Description |
|---|---|---|---|
query | Yes | - | Search query |
max_results | No | 10 | Number of results |
search_service | No | bing | google, bing, duckduckgo, yahoo, hackernews |
crawl_results | No | 0 | Number of top results to crawl for full content; each successful crawl adds 1 credit to the base 1-credit news request |
include_sites | No | [] | Sites to include |
exclude_sites | No | [] | Sites to exclude |
time_range | No | - | day, month, year |
Extract content from a URL.
| Parameter | Required | Description |
|---|---|---|
url | Yes | URL to crawl |
Get all related links from a URL.
| Parameter | Required | Description |
|---|---|---|
url | Yes | URL to get sitemap |
Get trending topics from popular platforms.
| Parameter | Required | Default | Description |
|---|---|---|---|
search_service | Yes | - | github, hackernews |
max_results | No | 10 | Number of items |
initialize, tools/list, resources/*, prompts/list, server/discover) requires a credential again. Serving it anonymously made clients that equate "tools listed" with "signed in" show a connected state with no way to trigger the OAuth flow; the 401 challenge now answers every unauthenticated request, restoring OAuth sign-in at connect time. Directory visibility is unchanged via the static server card and registry metadatainitialize, tools/list, resources/*, prompts/list, server/discover) is served without a credential so clients and directories can enumerate tools before signing in; tool calls still require OAuth or an API key. Stdio mode starts without SEARCH1API_KEY and serves tool metadata, refusing only at call time. Malformed requests answer as JSON-RPC instead of an HTML error pageclerk.s1.dev and is configurable with OAUTH_AUTHORIZATION_SERVER; MCP server card published at /.well-known/mcp/server-card.json; OAuth discovery documents now send cache headersOrigin validation now runs before request parsing and authentication; self-hosted HTTP deployments can configure trusted browser origins with MCP_ALLOWED_ORIGINSrobots.txt served on the transport host.env support for LibreChat integrationMIT