Search1API MCP Server
The Search1API MCP Server provides a suite of tools for web interaction and reasoning via the Model Context Protocol:
Search Tool: Perform web searches with customizable parameters (query, max results) using various services like Google and Bing
Crawl Tool: Extract full content from specific URLs
Sitemap Tool: Retrieve all related links from a URL
News Tool: Search for news articles with optional parameters
Reasoning Tool: Leverage DeepSeek R1 model for deep thinking and complex problem-solving
Trending: Access trending topics from platforms like GitHub and Hacker News
Integration: Works with various MCP clients, including LibreChat
Provides configuration file location support for Claude Desktop on macOS
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Search1API MCP Serversearch for the latest AI research papers on large language models"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Search1API MCP Server
The official MCP server for Search1API — web search, news, page retrieval, sitemap discovery, and trending topics in one API.
Authentication
OAuth-aware clients can connect to the Remote MCP URL directly, then sign in and approve access in the browser.
Existing integrations can continue to use an API key from the Search1API dashboard.
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 instead.
Related MCP server: WebSearch-MCP
Quick Start (Remote MCP)
No installation required. Configure your MCP client with the remote URL. Use OAuth when the client supports it, or provide an API key.
Authentication
Three methods are supported — use whichever your client supports:
Method | Format |
OAuth 2.1 | Connect to |
Authorization Header |
|
URL Query Parameter (legacy) |
|
Prefer OAuth or the Authorization header. Query-parameter credentials can be exposed in URLs, logs, and shell history.
Claude Desktop
{
"mcpServers": {
"search1api": {
"url": "https://mcp.search1api.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_SEARCH1API_KEY"
}
}
}
}Claude.ai (Web)
Settings > Connectors > Add custom connector:
https://mcp.search1api.com/mcp?apiKey=YOUR_SEARCH1API_KEYCursor
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:
{
"mcpServers": {
"search1api": {
"url": "https://mcp.search1api.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_SEARCH1API_KEY"
}
}
}
}VS Code
{
"servers": {
"search1api": {
"type": "http",
"url": "https://mcp.search1api.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_SEARCH1API_KEY"
}
}
}
}Claude Code
claude mcp add --transport http search1api https://mcp.search1api.com/mcp \
--header "Authorization: Bearer YOUR_SEARCH1API_KEY"Windsurf
{
"mcpServers": {
"search1api": {
"serverUrl": "https://mcp.search1api.com/mcp?apiKey=YOUR_SEARCH1API_KEY"
}
}
}Agent Skill
The Agent Skill has moved to search1api-cli. Install it with:
npm install -g search1api-cli
npx skills add superagents-lab/search1api-cliLocal Mode (stdio)
If you prefer to run the server locally, use Node.js 20 or newer with npx — no cloning required:
{
"mcpServers": {
"search1api": {
"command": "npx",
"args": ["-y", "search1api-mcp"],
"env": {
"SEARCH1API_KEY": "YOUR_SEARCH1API_KEY"
}
}
}
}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.
Tools
search
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 |
| Yes | - | Search query |
| No | 10 | Number of results |
| No | google, bing, duckduckgo, yahoo, x, reddit, github, youtube, arxiv, wechat, bilibili, imdb, wikipedia | |
| No | 0 | Number of top results to crawl for full content; each successful crawl adds 1 credit to the base 1-credit search request |
| No | [] | Sites to include |
| No | [] | Sites to exclude |
| No | - | day, month, year |
news
Search for news articles.
Parameter | Required | Default | Description |
| Yes | - | Search query |
| No | 10 | Number of results |
| No | bing | google, bing, duckduckgo, yahoo, hackernews |
| No | 0 | Number of top results to crawl for full content; each successful crawl adds 1 credit to the base 1-credit news request |
| No | [] | Sites to include |
| No | [] | Sites to exclude |
| No | - | day, month, year |
crawl
Extract content from a URL.
Parameter | Required | Description |
| Yes | URL to crawl |
sitemap
Get all related links from a URL.
Parameter | Required | Description |
| Yes | URL to get sitemap |
trending
Get trending topics from popular platforms.
Parameter | Required | Default | Description |
| Yes | - | github, hackernews |
| No | 10 | Number of items |
Version History
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 metadatav0.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 withoutSEARCH1API_KEYand serves tool metadata, refusing only at call time. Malformed requests answer as JSON-RPC instead of an HTML error pagev0.5.4: OAuth issuer moved to
clerk.s1.devand is configurable withOAUTH_AUTHORIZATION_SERVER; MCP server card published at/.well-known/mcp/server-card.json; OAuth discovery documents now send cache headersv0.5.3: OAuth resource and tool metadata no longer require OIDC session scopes; Smithery and Glama registry badges added
v0.5.2: MCP
Originvalidation now runs before request parsing and authentication; self-hosted HTTP deployments can configure trusted browser origins withMCP_ALLOWED_ORIGINSv0.5.1: Documentation, LobeHub manifest, and MCP Registry metadata synchronized;
robots.txtserved on the transport hostv0.5.0: MCP 2026-07-28 support with automatic protocol negotiation; stateless compatibility for 2025-era HTTP clients; request-level authentication
v0.4.0: Structured output schemas, OAuth security schemes, safety annotations, and Official MCP Registry metadata
v0.3.1: OAuth 2.1 support for Remote MCP; retired reasoning tool removed
v0.3.0: Remote MCP support via Streamable HTTP; per-session API key authentication
v0.2.0: Fallback
.envsupport for LibreChat integrationv0.1.8: X (Twitter) and Reddit search services
v0.1.7: Trending tool for GitHub and Hacker News
v0.1.6: Wikipedia search service
v0.1.5: New search parameters and services (arxiv, wechat, bilibili, imdb)
v0.1.3: News search
v0.1.2: Sitemap
v0.1.1: Web crawling
v0.1.0: Initial release
License
MIT
Available Tools
5 toolscrawlRead a web pageARead-onlyInspect
Extract the readable title and full text from a public URL supplied by the user or returned by search.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public HTTP or HTTPS URL to retrieve |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral detail by specifying that it extracts the readable title and full text, and clarifies the URL must be public. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, tightly written sentence that conveys the tool's purpose, input source, and output scope. Every phrase earns its place, and the core behavior is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, one-parameter, read-only tool with annotations and an output schema present, the description covers what the tool does, what it extracts, and where the URL comes from. Nothing essential is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single url parameter is already described as 'Public HTTP or HTTPS URL to retrieve'. The description reinforces the source of the URL but does not add significant new semantics beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Extract') and resource ('readable title and full text') from a public URL, making the tool's function immediately clear. It also distinguishes itself from search-related siblings by focusing on retrieving a specific existing URL rather than discovering pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when a public URL is already available, either supplied by the user or returned by search. It does not explicitly name alternatives or state when not to use it, but the scope is understandable without additional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
newsSearch current newsARead-onlyInspect
Search current news when the user asks about recent events, announcements, or coverage. Returns citable article results with title, URL, snippet, and optional extracted text.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Short, focused news query | |
| time_range | No | Optional recency window; use day for breaking news | |
| max_results | No | Maximum number of articles to return | |
| crawl_results | No | Number of top articles to retrieve as full pages. Each successful retrieval adds 1 credit to the base 1-credit news request | |
| exclude_sites | No | News domains to exclude | |
| include_sites | No | News domains to include | |
| search_service | No | News search engine to use | bing |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, and the description adds useful behavioral context: it produces citable article results and can return extracted text. It does not overpromise and no contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the usage trigger before the return details, with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich schema (100% coverage), annotations, and an output schema, the description is sufficient for a straightforward news lookup. It could be slightly more complete by pointing to a sibling for non-news trends, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters. The description's only parameter-relevant contribution is implying that optional extracted text comes from the crawl behavior, which adds minimal extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Search current news'), states the exact user trigger ('recent events, announcements, or coverage'), and names the return payload (citable articles with title, URL, snippet). This makes it easy to separate from sibling tools such as generic search or trending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this tool when the user asks about recent events, announcements, or coverage. It does not enumerate when-not conditions or alternative sibling tools, so it falls just short of the strongest guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch the webARead-onlyInspect
Search the live public web when the user needs current information, sources, or research. Returns citable results with id, title, URL, and text. Pass a result URL to crawl to retrieve the full page.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Short, focused search query | |
| time_range | No | Optional recency window for time-sensitive searches | |
| max_results | No | Maximum number of results to return | |
| crawl_results | No | Number of top results to retrieve as full pages. Each successful page retrieval adds 1 credit to the base 1-credit search request | |
| exclude_sites | No | Domains to exclude from the search | |
| include_sites | No | Domains to include when the user explicitly scopes the search | |
| search_service | No | Search engine to use; choose one only when it matches the user's source intent |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint, openWorldHint, and destructiveHint, so the bar is lower. The description adds valuable context: it searches the live public web, returns citable results with specific fields, and signals that full-page retrieval is a separate step. This meaningfully supplements the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted content. The purpose is front-loaded, the return shape is stated, and the follow-up routing to crawl is included efficiently. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with a full output schema and safety annotations, the description covers the core purpose, result format, and relationship to the crawl tool. It does not mention other sibling distinctions, but the rich schema and annotations fill most gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the description need not elaborate. The description does not add much parameter-specific meaning beyond the schema, which is acceptable given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search the live public web'), the resource, and the trigger condition ('when the user needs current information, sources, or research'). It also distinguishes from the sibling crawl tool by explaining that full page retrieval happens via passing a result URL to crawl.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use the tool and mentions the crawl sibling for page retrieval. However, it does not explicitly contrast with news, sitemap, or trending, so the agent must infer those alternatives from names rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sitemapDiscover links on a siteARead-onlyInspect
Discover related public links from a page or domain when the user wants to explore a site's structure or available pages.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public page or domain URL whose links should be discovered |
Output Schema
| Name | Required | Description |
|---|---|---|
| links | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds the 'public' and 'related' scope but does not disclose additional behaviors such as rate limits, breadth limits, or pagination. It adds some context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that combines the main action, target resource, and usage context without filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema and safe-read annotations, the description is largely sufficient. It clearly explains what the tool does and when to use it, though a brief note contrasting it with 'crawl' would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the url parameter is already well described in the schema. The main description only says 'from a page or domain,' which adds slight emphasis on accepted URL scope but does not meaningfully go beyond the structured parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Discover') and resource ('related public links from a page or domain') and adds the exploration use case. It is clear, though it does not explicitly differentiate itself from the sibling 'crawl' tool, which may perform a similar link-discovery function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: 'when the user wants to explore a site's structure or available pages.' It does not mention exclusions or compare itself to alternatives such as 'crawl', so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trendingExplore trending topicsARead-onlyInspect
List currently trending repositories or stories from GitHub or Hacker News when the user asks what is popular now.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of trending items to return | |
| search_service | Yes | Platform whose trending items should be returned | github |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, non-destructive, open-world behavior. The description adds useful context beyond that: the tool returns ephemeral, current trending items from two specific platforms. It does not discuss rate limits or failure modes, but the annotations lower the burden and the description is consistent with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action and object, then adds the usage trigger. Every phrase earns its place; there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a rich annotation set, fully documented parameters, and an output schema, so the description does not need to explain return values or safety semantics. The description covers the essential context—what is listed and when to use it—making it complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented with types, defaults, ranges, and enums. The description adds no additional parameter-level detail; it only reinforces the platform concept already present in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and names the exact resources ('trending repositories or stories from GitHub or Hacker News'). It clearly distinguishes this tool from the sibling tools by scoping to trending/popular content rather than general news, search, or crawling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the trigger condition: 'when the user asks what is popular now.' This gives clear when-to-use context, though it does not explicitly mention when not to use the tool or directly contrast it with sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.5.4- Removed
fetch
6 tool updates
v0.4.0- Changed
crawl3 fields changed- changed
Input schema / properties / url / descriptionPrevious value: -"URL to crawl"New value: +"Public HTTP or HTTPS URL to retrieve" - added
Input schema / properties / url / formatAdded value: +"uri" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "properties": { + "id": { + "description": "Stable identifier for this result; for web results this is the canonical URL", + "type": "string" + }, + "metadata": { + "additionalProperties": true, + "description": "Additional source metadata", + "type": "object" + }, + "text": { + "description": "Result snippet or extracted page text when available", + "type": "string" + }, + "title": { + "description": "Human-readable result title", + "type": "string" + }, + "url": { + "description": "Canonical URL that clients can cite and users can open", + "format": "uri", + "type": "string" + } + }, + "required": [ + "id", + "title", + "url" + ], + "type": "object" + } + }, + "required": [ + "result" + ], + "type": "object" +}
- Added
fetch - Changed
news11 fields changed- changed
Input schema / properties / crawl_results / descriptionPrevious value: -"Number of top results to crawl for full webpage content. Each successfully crawled page adds 1 credit to the base 1-credit news request"New value: +"Number of top articles to retrieve as full pages. Each successful retrieval adds 1 credit to the base 1-credit news request" - added
Input schema / properties / crawl_results / minimumAdded value: +0 - changed
Input schema / properties / exclude_sites / descriptionPrevious value: -"List of sites to exclude from search. Only use when you need to explicitly filter out specific domains from results"New value: +"News domains to exclude" - changed
Input schema / properties / include_sites / descriptionPrevious value: -"List of sites to include in search. Only use when you need special results from sites not available in search_service"New value: +"News domains to include" - changed
Input schema / properties / max_results / descriptionPrevious value: -"Maximum number of results to return"New value: +"Maximum number of articles to return" - added
Input schema / properties / max_results / maximumAdded value: +50 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Input schema / properties / query / descriptionPrevious value: -"Search query, be simple and concise"New value: +"Short, focused news query" - changed
Input schema / properties / search_service / descriptionPrevious value: -"Specify the news engine to use. Choose based on your specific needs"New value: +"News search engine to use" - changed
Input schema / properties / time_range / descriptionPrevious value: -"Time range for search results, only use when specific time constraints are required"New value: +"Optional recency window; use day for breaking news" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "items": { + "properties": { + "id": { + "description": "Stable identifier for this result; for web results this is the canonical URL", + "type": "string" + }, + "metadata": { + "additionalProperties": true, + "description": "Additional source metadata", + "type": "object" + }, + "text": { + "description": "Result snippet or extracted page text when available", + "type": "string" + }, + "title": { + "description": "Human-readable result title", + "type": "string" + }, + "url": { + "description": "Canonical URL that clients can cite and users can open", + "format": "uri", + "type": "string" + } + }, + "required": [ + "id", + "title", + "url" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
search10 fields changed- changed
Input schema / properties / crawl_results / descriptionPrevious value: -"Number of top results to crawl for full webpage content. Each successfully crawled page adds 1 credit to the base 1-credit search request"New value: +"Number of top results to retrieve as full pages. Each successful page retrieval adds 1 credit to the base 1-credit search request" - added
Input schema / properties / crawl_results / minimumAdded value: +0 - changed
Input schema / properties / exclude_sites / descriptionPrevious value: -"List of sites to exclude from search. Only use when you need to explicitly filter out specific domains from results"New value: +"Domains to exclude from the search" - changed
Input schema / properties / include_sites / descriptionPrevious value: -"List of sites to include in search. Only use when you need special results from sites not available in search_service"New value: +"Domains to include when the user explicitly scopes the search" - added
Input schema / properties / max_results / maximumAdded value: +50 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Input schema / properties / query / descriptionPrevious value: -"Search query, be simple and concise"New value: +"Short, focused search query" - changed
Input schema / properties / search_service / descriptionPrevious value: -"Specify the search engine to use. Choose based on your specific needs"New value: +"Search engine to use; choose one only when it matches the user's source intent" - changed
Input schema / properties / time_range / descriptionPrevious value: -"Time range for search results, only use when specific time constraints are required"New value: +"Optional recency window for time-sensitive searches" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "items": { + "properties": { + "id": { + "description": "Stable identifier for this result; for web results this is the canonical URL", + "type": "string" + }, + "metadata": { + "additionalProperties": true, + "description": "Additional source metadata", + "type": "object" + }, + "text": { + "description": "Result snippet or extracted page text when available", + "type": "string" + }, + "title": { + "description": "Human-readable result title", + "type": "string" + }, + "url": { + "description": "Canonical URL that clients can cite and users can open", + "format": "uri", + "type": "string" + } + }, + "required": [ + "id", + "title", + "url" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
sitemap3 fields changed- changed
Input schema / properties / url / descriptionPrevious value: -"URL to get sitemap"New value: +"Public page or domain URL whose links should be discovered" - added
Input schema / properties / url / formatAdded value: +"uri" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "links": { + "items": { + "format": "uri", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "links" + ], + "type": "object" +}
- Changed
trending4 fields changed- added
Input schema / properties / max_results / maximumAdded value: +50 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Input schema / properties / search_service / descriptionPrevious value: -"Specify the platform to get trending topics from"New value: +"Platform whose trending items should be returned" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
3 tool updates
v0.3.1- Changed
news1 field changed- changed
Input schema / properties / crawl_results / descriptionPrevious value: -"Number of results to crawl for full webpage content, useful when search result summaries are insufficient for complex queries"New value: +"Number of top results to crawl for full webpage content. Each successfully crawled page adds 1 credit to the base 1-credit news request"
- Removed
reasoning - Changed
search1 field changed- changed
Input schema / properties / crawl_results / descriptionPrevious value: -"Number of results to crawl for full webpage content, useful when search result summaries are insufficient for complex queries"New value: +"Number of top results to crawl for full webpage content. Each successfully crawled page adds 1 credit to the base 1-credit search request"
6 tool updates
v0.1.8- First observed
crawl - First observed
news - First observed
reasoning - First observed
search - First observed
sitemap - First observed
trending
TDQS
Scored across 5 tools
Each tool targets a distinct need—general web search, news search, page extraction, site exploration, and trending content—but search and news/trending overlap somewhat on current/popular information. Descriptions are clear enough that an agent should usually pick the right one.
All tool names are short, lowercase, single words, giving a consistent visual style. However, they mix verbs (search, crawl) with nouns/adjectives (news, sitemap, trending), so there is no uniform verb_noun or action_entity pattern.
Five tools is a well-scoped number for a search/information-retrieval server. Each tool adds a distinct capability without bloat or redundancy.
The server covers the full search-to-content workflow: discover via search/news/trending, explore site structure via sitemap, and fetch full text via crawl. No major missing operation is evident for its stated purpose.
Maintenance
Related MCP Connectors
MCP server for Google search results via SERP API
Scrape, crawl and search the web for AI agents via MCP.
MCP server for searching Airweave collections with natural language queries.
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol (MCP) server implementation that integrates with FireCrawl for advanced web scraping capabilities.2622,552 npm7,510MIT
- AlicenseBqualityCmaintenanceA Model Context Protocol server that enables AI assistants to perform real-time web searches, retrieving up-to-date information from the internet via a Crawler API.175 npm41ISC
- FlicenseAqualityCmaintenanceA Model Context Protocol server that provides web search capabilities using Google Custom Search API and webpage content extraction functionality.26 npm2-
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides web search capabilities using Google Custom Search API and webpage content extraction functionality.2MIT