{
  "markdown": "# Search1API MCP Server\n\n[![smithery badge](https://smithery.ai/badge/superagents-lab/search1api-mcp)](https://smithery.ai/servers/superagents-lab/search1api-mcp)\n[![Glama](https://img.shields.io/badge/Glama-listed-6C5CE7)](https://glama.ai/mcp/servers/superagents-lab/search1api-mcp)\n\n[中文文档](./README_zh.md)\n\nThe official MCP server for [Search1API](https://s1.dev/?utm_source=mcp) — web search, news, page retrieval, sitemap discovery, and trending topics in one API.\n\n## Authentication\n\n- OAuth-aware clients can connect to the Remote MCP URL directly, then sign in and approve access in the browser.\n- Existing integrations can continue to use an API key from the [Search1API dashboard](https://dashboard.search1api.com).\n- Every MCP request — including tool discovery (`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](https://mcp.search1api.com/.well-known/mcp/server-card.json) instead.\n\n## Quick Start (Remote MCP)\n\nNo installation required. Configure your MCP client with the remote URL. Use OAuth when the client supports it, or provide an API key.\n\n### Authentication\n\nThree methods are supported — use whichever your client supports:\n\n| Method | Format |\n|--------|--------|\n| OAuth 2.1 | Connect to `https://mcp.search1api.com/mcp` without a key and follow the client sign-in flow |\n| Authorization Header | `Authorization: Bearer YOUR_SEARCH1API_KEY` |\n| URL Query Parameter (legacy) | `https://mcp.search1api.com/mcp?apiKey=YOUR_SEARCH1API_KEY` |\n\nPrefer OAuth or the Authorization header. Query-parameter credentials can be exposed in URLs, logs, and shell history.\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"search1api\": {\n      \"url\": \"https://mcp.search1api.com/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_SEARCH1API_KEY\"\n      }\n    }\n  }\n}\n```\n\n### Claude.ai (Web)\n\nSettings > Connectors > Add custom connector:\n\n```\nhttps://mcp.search1api.com/mcp?apiKey=YOUR_SEARCH1API_KEY\n```\n\n### Cursor\n\nInstall 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](https://cursor.directory) / the Cursor Marketplace, then sign in when prompted.\n\nFor 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.\n\nOr configure manually:\n\n```json\n{\n  \"mcpServers\": {\n    \"search1api\": {\n      \"url\": \"https://mcp.search1api.com/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_SEARCH1API_KEY\"\n      }\n    }\n  }\n}\n```\n\n### VS Code\n\n```json\n{\n  \"servers\": {\n    \"search1api\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.search1api.com/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_SEARCH1API_KEY\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add --transport http search1api https://mcp.search1api.com/mcp \\\n  --header \"Authorization: Bearer YOUR_SEARCH1API_KEY\"\n```\n\n### Windsurf\n\n```json\n{\n  \"mcpServers\": {\n    \"search1api\": {\n      \"serverUrl\": \"https://mcp.search1api.com/mcp?apiKey=YOUR_SEARCH1API_KEY\"\n    }\n  }\n}\n```\n\n## Agent Skill\n\nThe Agent Skill has moved to [search1api-cli](https://github.com/superagents-lab/search1api-cli). Install it with:\n\n```bash\nnpm install -g search1api-cli\nnpx skills add superagents-lab/search1api-cli\n```\n\n## Local Mode (stdio)\n\nIf you prefer to run the server locally, use Node.js 20 or newer with npx — no cloning required:\n\n```json\n{\n  \"mcpServers\": {\n    \"search1api\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"search1api-mcp\"],\n      \"env\": {\n        \"SEARCH1API_KEY\": \"YOUR_SEARCH1API_KEY\"\n      }\n    }\n  }\n}\n```\n\nFor self-hosted HTTP deployments behind a proxy, add any internal hostnames\nthat reach the Node.js process to the comma-separated `MCP_ALLOWED_HOSTS`\nenvironment variable. `mcp.search1api.com` and localhost addresses are allowed\nby default. Browser-based clients that send an `Origin` header must also have\ntheir trusted origin hostnames added to the comma-separated\n`MCP_ALLOWED_ORIGINS` variable. Requests from server-side MCP clients normally\nomit `Origin` and do not require an entry.\n\n## Tools\n\n### search\nSearch the web using Search1API. Results include a citable\n`id`/`title`/`url` structure. Pass a result URL to `crawl` when you need the\nfull page.\n\n| Parameter | Required | Default | Description |\n|-----------|----------|---------|-------------|\n| `query` | Yes | - | Search query |\n| `max_results` | No | 10 | Number of results |\n| `search_service` | No | google | google, bing, duckduckgo, yahoo, x, reddit, github, youtube, arxiv, wechat, bilibili, imdb, wikipedia |\n| `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 |\n| `include_sites` | No | [] | Sites to include |\n| `exclude_sites` | No | [] | Sites to exclude |\n| `time_range` | No | - | day, month, year |\n\n### news\nSearch for news articles.\n\n| Parameter | Required | Default | Description |\n|-----------|----------|---------|-------------|\n| `query` | Yes | - | Search query |\n| `max_results` | No | 10 | Number of results |\n| `search_service` | No | bing | google, bing, duckduckgo, yahoo, hackernews |\n| `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 |\n| `include_sites` | No | [] | Sites to include |\n| `exclude_sites` | No | [] | Sites to exclude |\n| `time_range` | No | - | day, month, year |\n\n### crawl\nExtract content from a URL.\n\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| `url` | Yes | URL to crawl |\n\n### sitemap\nGet all related links from a URL.\n\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| `url` | Yes | URL to get sitemap |\n\n### trending\nGet trending topics from popular platforms.\n\n| Parameter | Required | Default | Description |\n|-----------|----------|---------|-------------|\n| `search_service` | Yes | - | github, hackernews |\n| `max_results` | No | 10 | Number of items |\n\n## Version History\n\n- v0.6.1: Bug fix — MCP discovery (`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 metadata\n- v0.6.0: MCP discovery (`initialize`, `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 page\n- v0.5.4: OAuth issuer moved to `clerk.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 headers\n- v0.5.3: OAuth resource and tool metadata no longer require OIDC session scopes; Smithery and Glama registry badges added\n- v0.5.2: MCP `Origin` validation now runs before request parsing and authentication; self-hosted HTTP deployments can configure trusted browser origins with `MCP_ALLOWED_ORIGINS`\n- v0.5.1: Documentation, LobeHub manifest, and MCP Registry metadata synchronized; `robots.txt` served on the transport host\n- v0.5.0: MCP 2026-07-28 support with automatic protocol negotiation; stateless compatibility for 2025-era HTTP clients; request-level authentication\n- v0.4.0: Structured output schemas, OAuth security schemes, safety annotations, and Official MCP Registry metadata\n- v0.3.1: OAuth 2.1 support for Remote MCP; retired reasoning tool removed\n- v0.3.0: Remote MCP support via Streamable HTTP; per-session API key authentication\n- v0.2.0: Fallback `.env` support for LibreChat integration\n- v0.1.8: X (Twitter) and Reddit search services\n- v0.1.7: Trending tool for GitHub and Hacker News\n- v0.1.6: Wikipedia search service\n- v0.1.5: New search parameters and services (arxiv, wechat, bilibili, imdb)\n- v0.1.3: News search\n- v0.1.2: Sitemap\n- v0.1.1: Web crawling\n- v0.1.0: Initial release\n\n## License\n\nMIT\n",
  "bytes": 8746,
  "sha": "e2892738c64823513bf8600506d08048989eaef49d2a4c178548ea4db15431ef",
  "repo_slug": "superagents-lab/search1api-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_superagents_lab_search1api_8e6a580f/readme"
}