Scout
Allows searching for academic preprints on arXiv.
Allows searching for Chinese video content on Bilibili.
Allows searching the web via Brave Search with privacy focus.
Allows searching the web via DuckDuckGo with privacy protection.
Allows searching for code repositories on GitHub.
Allows searching the web via Google.
Allows searching for academic literature via Google Scholar.
Allows searching the web via Mojeek's independent index.
Allows searching for JavaScript packages on npm.
Allows querying locations and points of interest on OpenStreetMap.
Allows searching biomedical literature on PubMed.
Allows searching for Python packages on PyPI.
Allows searching for community discussions on Reddit.
Allows searching the web via SearXNG meta-search engine.
Allows searching for academic papers via Semantic Scholar.
Allows searching the web via Startpage with privacy from Google results.
Allows searching for high-quality images on Unsplash.
Allows searching for videos on YouTube.
Click on "Install 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., "@Scoutsearch for Python async web frameworks"
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.
Scout
AI Agent 全能搜索工具
完全免费 · 27 引擎 · 多模态 · MCP 协议
快速开始 · 功能特性 · 搜索引擎 · MCP 工具 · 配置选项
🎯 为什么选择 Scout?
Scout 是专为 AI Agent 设计的全能搜索工具,通过 MCP 协议提供标准化的搜索接口。
特性 | Scout | Tavily | Exa | SerpAPI |
免费使用 | ✅ 完全免费 | ❌ 有限额 | ❌ 有限额 | ❌ 付费 |
无需 API Key | ✅ | ❌ | ❌ | ❌ |
搜索引擎数量 | 26 | 1 | 1 | 1 |
多模态搜索 | ✅ 视频/图片/播客 | ❌ | ❌ | ❌ |
MCP 协议 | ✅ 原生支持 | ❌ | ❌ | ❌ |
本地缓存 | ✅ SQLite/Redis | ❌ | ❌ | ❌ |
Related MCP server: Search MCP Server
✨ 功能特性
🔍 27 个搜索引擎
通用搜索 (8) 学术搜索 (4) 代码搜索 (2)
↓ ↓ ↓
社区搜索 (3) 包管理 (3) 知识搜索 (1)
↓ ↓ ↓
新闻搜索 (1) 多模态搜索 (4) 地图搜索 (1)
↓ ↓
YouTube · Bilibili · OpenStreetMap
Unsplash · Podcast🎬 多模态搜索
视频搜索 — YouTube、Bilibili 视频教程
图片搜索 — Unsplash 高质量图片
播客搜索 — Podcast 节目发现
地图搜索 — OpenStreetMap 地点查询
⚡ 高性能架构
并发搜索 — asyncio 异步并发,不阻塞
智能缓存 — SQLite + FTS5 全文搜索
结果合并 — RRF (Reciprocal Rank Fusion) 算法
熔断器 — 引擎连续失败自动暂停
🛡️ 安全防护
SSRF 防护 — DNS 解析 + IP 范围验证
并发限制 — Semaphore 控制最大并发数
重定向验证 — 每次重定向都检查安全性
🚀 快速开始
安装
# 克隆仓库
git clone https://github.com/duguobao812718-wq/scout.git
cd scout
# 安装依赖
pip install -e .
# 注册到 Claude Code
claude mcp add -s user scout -- python -m src重启 Claude Code,即可使用 12 个搜索工具。
验证安装
# 列出可用引擎
python -m src --list-engines
# 运行测试
python -m pytest tests/ -v🔍 搜索引擎
通用搜索
引擎 | 特点 | 适用场景 |
最全的搜索结果 | 通用搜索 | |
Bing | 微软搜索引擎 | 通用搜索 |
Brave | 隐私保护 | 隐私搜索 |
DuckDuckGo | 无追踪 | 隐私搜索 |
Mojeek | 独立索引 | 替代选择 |
Startpage | Google 隐私前端 | 隐私搜索 |
Yandex | 俄罗斯搜索引擎 | 俄语内容 |
SearXNG | 元搜索,多实例 | 自建实例 |
学术搜索
引擎 | 特点 | 适用场景 |
Semantic Scholar | AI 驱动的学术搜索 | 论文发现 |
arXiv | 预印本论文 | 最新研究 |
Google Scholar | 最全的学术搜索 | 论文引用 |
PubMed | 生物医学文献 | 医学研究 |
代码搜索
引擎 | 特点 | 适用场景 |
GitHub | 代码仓库搜索 | 开源项目 |
StackOverflow | 编程问答 | 问题解决 |
社区搜索
引擎 | 特点 | 适用场景 |
社区讨论 | 深度讨论 | |
HackerNews | 技术新闻 | 技术趋势 |
Twitter/X | 社交媒体 | 实时动态 |
包管理搜索
引擎 | 特点 | 适用场景 |
npm | JS/TS 包 | 前端开发 |
PyPI | Python 包 | Python 开发 |
HuggingFace | AI 模型/数据集 | AI 开发 |
多模态搜索
引擎 | 特点 | 适用场景 |
YouTube | 视频搜索 | 视频教程 |
Bilibili | 中文视频 | 技术分享 |
Unsplash | 图片搜索 | 高质量图片 |
Podcast | 播客搜索 | 音频内容 |
地图搜索
引擎 | 特点 | 适用场景 |
OpenStreetMap | 免费地图 API | 地点查询、地址搜索、POI 搜索 |
🛠️ MCP 工具
工具 | 功能 | 示例 |
| 多引擎搜索 |
|
| 抓取页面 |
|
| 批量抓取 |
|
| 深度研究 |
|
| 搜索+摘要 |
|
| 读取 PDF |
|
| 列出引擎 |
|
| 搜索缓存 |
|
| 语义搜索 |
|
| 提取结构化数据 |
|
⚙️ 配置选项
环境变量
在项目目录下创建 .env 文件:
# 代理配置(国内用户)
SCOUT_PROXY=http://127.0.0.1:7897
# 缓存后端
SCOUT_CACHE_BACKEND=sqlite # 或 redis
SCOUT_REDIS_URL=redis://localhost:6379/0
# 速率限制
SCOUT_RATE_LIMIT_PER_MINUTE=60
# 安全搜索
SCOUT_SAFESEARCH=moderate # off / moderate / strict高级配置
# 请求超时
SCOUT_REQUEST_TIMEOUT=15
# 最大结果数
SCOUT_MAX_RESULTS=10
# 缓存 TTL
SCOUT_CACHE_TTL_SECONDS=604800 # 7 天📊 性能指标
指标 | 值 |
搜索引擎数量 | 26 |
MCP 工具数量 | 12 |
测试用例数量 | 243 |
代码行数 | ~8500 |
平均搜索延迟 | < 2s |
缓存命中延迟 | < 10ms |
🏗️ 项目结构
scout/
├── src/
│ ├── server.py # MCP 服务器入口
│ ├── config.py # 配置管理
│ ├── cache.py # SQLite 缓存
│ ├── cache_redis.py # Redis 缓存
│ ├── scoring.py # 结果评分
│ ├── suggestions.py # 搜索建议
│ ├── summary.py # 结果摘要
│ ├── ratelimit.py # 限速 + 熔断器
│ ├── engines/ # 26 个搜索引擎
│ │ ├── __init__.py # 引擎基类 + 注册表
│ │ ├── google.py # 通用搜索
│ │ ├── youtube.py # 视频搜索
│ │ └── ...
│ └── fetchers/ # 内容抓取
│ ├── http.py # HTTP 抓取
│ └── documents.py # PDF 解析
├── tests/ # 测试用例
├── pyproject.toml # 项目配置
└── README.md # 本文件🤝 贡献指南
欢迎贡献新的搜索引擎!添加新引擎只需 3 步:
# 1. 创建 src/engines/myengine.py
from . import JsonApiEngine, register_engine
class MyEngine(JsonApiEngine):
name = "myengine"
def build_url(self, query, max_results, filters=None):
return f"https://api.example.com/search?q={query}"
def parse(self, data):
# 解析返回结果
return [SearchResult(...)]
# 2. 注册引擎
register_engine(MyEngine())
# 3. 在 __init__.py 中导入
from . import myengine运行测试验证:
python -m pytest tests/ -v📚 参考项目
free-search-mcp — 免费搜索 MCP
mcp-smart-searcher — 多引擎搜索
exa-mcp-server — 语义搜索
Agent-Reach — 多平台抓取
📄 许可证
Scout — 让 AI Agent 看得更远,搜得更广
Available Tools
14 toolscache_searchBRead-onlyIdempotent
Full-text search across previously fetched and cached pages.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds that it searches 'previously fetched and cached pages,' which is useful context but does not deeply elaborate on behavioral traits like cache scope or limitations. No contradiction with 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 concise sentence, but it lacks informative detail. It is appropriately sized for what it says, but could include more useful information without being verbose.
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?
Given the low complexity (3 parameters, no nested objects) and presence of an output schema, the description is minimally complete. However, it does not explain the cache scope or how cache_search differs from other search tools, leaving the agent with gaps in understanding.
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 0%, so the description must compensate. It does not mention any of the three parameters (query, limit, format), providing no additional meaning beyond the schema. The agent receives no guidance on parameter usage.
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 clearly states 'full-text search across previously fetched and cached pages,' providing a specific verb and resource. It distinguishes cache_search from sibling tools like 'search' (likely web search) and 'semantic_search' (likely semantic).
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 offers no guidance on when to use cache_search versus its siblings. No explicit when/when-not or alternatives are mentioned, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enginesARead-onlyIdempotent
List engine names accepted by the engines= parameter of search.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 and idempotentHint, so the description's addition of 'List engine names' does not introduce new behavioral traits. No contradictions with 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, well-structured sentence that immediately conveys the tool's purpose. No unnecessary words.
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?
Given the tool's simplicity and presence of an output schema, the description fully explains the tool's behavior. No missing information for an agent to correctly invoke it.
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?
The tool has zero parameters and schema coverage is 100% (empty schema). The description adds value by explaining what the output represents (engine names for search), justifying a baseline of 4.
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 explicitly states the tool's purpose: listing engine names for the `engines=` parameter of `search`. It clearly distinguishes itself from sibling tools like `search` and `image_search` by being a supporting utility.
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 clearly indicates when to use the tool: when you need to know available engines for the `search` tool. While alternative tools or when-not-to-use are not explicitly stated, the context is clear enough for this simple list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_structuredARead-onlyIdempotent
Pull JSON-LD, OpenGraph, Twitter cards from a web page.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description specifies the types of structured data extracted (JSON-LD, OpenGraph, Twitter cards), which adds behavioral context beyond the annotations (readOnlyHint, idempotentHint, openWorldHint). However, it does not discuss error cases or behavior for missing data.
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 with no wasted words. It is front-loaded with the action and resource, making it efficient and easy to parse.
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 tool with two parameters and an existing output schema, the description is mostly adequate. It covers what the tool extracts but omits details about the 'format' parameter and return structure, which are partially addressed by the output schema.
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 0%, meaning the description does not explain the two parameters ('url' and 'format'). Although the schema is self-explanatory for 'url', the 'format' enum's impact on output is not clarified, missing an opportunity to add value.
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?
Description clearly states the verb 'Pull' and resource 'JSON-LD, OpenGraph, Twitter cards from a web page', making the tool's purpose unambiguous. It distinguishes from siblings like 'fetch' (raw HTML) or 'read_doc' (document processing).
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?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives (e.g., 'fetch', 'image_search'), nor does it mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchARead-onlyIdempotent
Fetch one URL and return reader-mode Markdown of the main content.
Args: url: Absolute http(s) URL. extract_code: 提取代码块(默认 False)。 extract_tables: 提取表格数据(默认 False)。 format: "markdown" or "json".
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| extract_code | No | ||
| extract_tables | No | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe, idempotent behavior. The description adds that the tool returns reader-mode Markdown of the main content, which provides some behavioral context (e.g., extracting readable article content). However, it does not disclose additional traits like rate limits or response size beyond what annotations imply.
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 brief and front-loaded, with the main action stated first, followed by a compact parameter list. Every sentence and line is necessary; no extraneous information.
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?
Given the complexity (4 parameters, annotations, and an output schema), the description is largely complete. It explains the core functionality and all parameters. However, it does not clarify differences between 'markdown' and 'json' output formats, which could be inferred from the output schema but is not explicitly stated. Overall, it meets the requirements without major 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?
The input schema has 4 parameters with 0% description coverage, so the description compensates by explaining each parameter: url (absolute http(s) URL), extract_code (extract code blocks, default false), extract_tables (extract table data, default false), and format (markdown or json). This adds meaning beyond the schema's type and defaults.
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 clearly states the tool fetches one URL and returns reader-mode Markdown of the main content. The verb 'fetch', resource 'URL', and output 'reader-mode Markdown' are precise. The tool name and description differentiate it from siblings like 'fetch_batch' (multiple URLs) and 'extract_structured' (structured extraction).
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 implies usage through the name and parameter details, but does not explicitly state when to use this tool over alternatives such as 'fetch_batch' or 'extract_structured'. No guidance on context or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_batchARead-onlyIdempotent
Fetch multiple URLs in parallel and return their contents.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and open-world traits. The description adds the behavioral trait 'in parallel', which is not in annotations. This enhances transparency.
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, compact sentence that front-loads the core action. No superfluous words; every part is essential.
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 tool with 2 parameters and an output schema, the description is minimal. It lacks details on format options, parallel execution limits, or error behavior. Annotations cover safety. Overall, adequate but not comprehensive.
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 0% meaning no parameter descriptions. The description fails to explain parameters like 'urls' (beyond name) or 'format' (enum values and default). It does not compensate for the low coverage.
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 clearly states the action 'Fetch multiple URLs' and the mode 'in parallel', distinguishing it from the sibling 'fetch' tool which likely handles single URLs. It directly communicates the verb and resource.
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?
No explicit guidance on when to use this tool versus alternatives like 'fetch' or 'extract_structured'. The description does not mention use-case context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_searchCRead-only
Search for images using SearXNG meta-search engine.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No | ||
| freshness | No | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, so the description adds the 'SearXNG meta-search' detail, which provides useful context about the backend. However, it does not disclose any additional behavioral traits (e.g., rate limits, pagination, or result handling) beyond what annotations convey.
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?
Single sentence with no wasted words. Front-loaded with the core action and resource. Efficient and to the point.
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?
Despite having an output schema and annotations, the description lacks parameter explanations (0% coverage) and usage guidance. For a tool with 4 parameters (1 required), this is insufficient for complete understanding and correct invocation.
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 0%, but the description does not explain any of the 4 parameters (query, max_results, freshness, format). No meaning is added beyond what the schema provides, leaving the agent without guidance on parameter usage or constraints.
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 'Search for images using SearXNG meta-search engine,' clearly identifying the verb (search) and resource (images via SearXNG). It distinguishes from sibling tools like 'search' (web) and 'video_search' by specifying images, though it could explicitly mention it's not for general web or video search.
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?
No explicit guidance on when to use this tool versus alternatives (e.g., 'search' for web, 'video_search' for videos). The description only implies image search context, lacking when-not-to-use or sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_docCRead-onlyIdempotent
Read an http(s) document (PDF) into Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| start | No | ||
| length | No | ||
| format | No | markdown |
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 and idempotentHint. The description adds that it converts PDF to Markdown, which is useful, but does not disclose behavioral aspects like how pagination (start/length) works or error handling for non-PDF sources.
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, which is concise but underspecified for a tool with four parameters, lacking essential detail.
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?
Despite having an output schema, the description does not cover crucial context such as pagination behavior, format selection, or expected input validation, making it incomplete for reliable use.
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 0%, so the description must explain parameters. It only mentions 'PDF' and 'Markdown', failing to clarify the meaning of 'source', 'start', 'length', or 'format' beyond what the parameter names imply.
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 specifies the verb 'Read', the resource 'http(s) document (PDF)', and the output format 'Markdown', clearly distinguishing it from sibling tools like 'fetch' which likely returns raw content.
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?
No guidance is provided on when to use this tool versus alternatives such as 'fetch' or 'extract_structured', nor are any prerequisites or limitations mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
researchCRead-only
One-shot research: search the web, fetch the top results, return both.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | ||
| depth | No | ||
| engines | No | ||
| fetch | No | ||
| use_cache | No | ||
| max_age_hours | No | ||
| freshness | No | ||
| include_domains | No | ||
| exclude_domains | No | ||
| category | No | ||
| include_text | No | ||
| exclude_text | No | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the annotations (readOnlyHint, openWorldHint). It states the tool returns both search results and fetched content, but does not disclose details like the number of top results fetched, caching behavior, or potential rate limits.
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 extremely concise (10 words) and front-loaded, but it sacrifices necessary detail. While brevity is valued, the lack of parameter or usage information makes it incomplete.
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?
Given 13 parameters, no schema descriptions, and an output schema, the description is critically incomplete. It fails to explain parameter roles (e.g., 'depth' controls paging, 'engines' selects search providers) or the structure of the returned data beyond 'both'.
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?
With 0% schema description coverage, the description must explain parameters. However, it mentions no parameter details—'search the web, fetch the top results, return both' gives no insight into the 12 optional parameters (depth, engines, cache, domains, etc.) or their purposes.
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 clearly states it performs a combined search and fetch operation ('search the web, fetch the top results, return both'), distinguishing it from siblings like 'search' (which likely only returns results) and 'fetch' (which fetches a given URL).
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 provides no guidance on when to use this tool versus its siblings. There is no mention of alternative tools, prerequisites, or exclusions, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchCRead-only
Run a multi-engine web search and return a ranked, deduplicated link list.
Args: translate_to: 翻译目标语言(例如 "zh", "en", "ja")。需要启用 LLM。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| engines | No | ||
| max_results | No | ||
| page | No | ||
| page_size | No | ||
| sort_by | No | ||
| translate_to | No | ||
| use_cache | No | ||
| max_age_hours | No | ||
| freshness | No | ||
| include_domains | No | ||
| exclude_domains | No | ||
| category | No | ||
| include_text | No | ||
| exclude_text | No | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds behavioral details: results are 'ranked' and 'deduplicated', and it mentions multi-engine aggregation. However, it omits other traits like pagination behavior, rate limits, or whether the cache is automatically used, which would add value beyond 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 very short (one sentence plus a parameter note). While it front-loads the main purpose, it is too sparse given the tool's complexity (16 parameters). It sacrifices too much detail for brevity, making it insufficient for correct invocation.
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?
Despite having an output schema (which covers return values), the description lacks explanations for most parameters. The tool has 16 parameters and moderate complexity, but the description only addresses one parameter and the general function, leaving significant gaps for correct usage.
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 0%. The description only explains one parameter (translate_to) with a Chinese note about needing LLM. The other 15 parameters (engines, max_results, page, sort_by, etc.) have no explanation, leaving the agent without understanding their meaning or usage.
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 clearly states 'Run a multi-engine web search and return a ranked, deduplicated link list.' It uses a specific verb ('run') and resource ('multi-engine web search'), and distinguishes from siblings like image_search or video_search by focusing on web search with multiple engines.
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?
No guidance on when to use this tool versus alternatives like research or semantic_search. It does not mention prerequisites, exclusions, or context such as when caching applies. The annotation openWorldHint=true hints at open-ended queries but is not explicit in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semantic_index_pageAIdempotent
Fetch a page and add it to the semantic search index.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotency and a non-read-only nature. The description confirms the tool performs a write (add to index) but does not disclose additional behavior such as duplicate handling, authentication, or rate limits. It is adequate but not extra.
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 with no wasted words. It clearly communicates the core action without unnecessary detail.
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?
Given the tool's simplicity and the presence of an output schema and annotations, the description covers the essential action. It could be improved by mentioning return values or noting that the format parameter controls the output format, but it is largely 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?
The schema has 0% description coverage, so the description should explain the parameters. It does not explicitly define the 'url' or 'format' parameters. While 'url' is implied, 'format' is left ambiguous (output format vs. storage format). The enum values are not explained.
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 clearly states the tool fetches a page and adds it to the semantic search index, using specific verbs and a clear resource. It distinguishes the tool from siblings like 'fetch' (which does not index) and 'semantic_search' (which searches the index).
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 provides no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or list sibling tools like 'fetch' or 'extract_structured'. The purpose is implied, but lacking comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semantic_searchBRead-onlyIdempotent
Search through semantically indexed pages using meaning-based matching.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds context about meaning-based matching but does not disclose additional behavioral traits such as indexing prerequisites, rate limits, or behavior when no pages are indexed.
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, very concise. However, it sacrifices detail for brevity, missing essential parameter and usage information.
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?
Despite having an output schema, the description lacks context about which pages are searchable (only those indexed via semantic_index_page) and does not clarify output format options. The low parameter coverage further reduces completeness.
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 0%. The description fails to explain the parameters 'query', 'top_k', or 'format' beyond the generic phrase 'meaning-based matching'. This is insufficient for an agent to understand parameter semantics.
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 'Search through semantically indexed pages using meaning-based matching' clearly specifies the action (search) and resource (semantically indexed pages), differentiating it from sibling tools like 'search' (likely keyword-based) and 'cache_search'.
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 implies usage for meaning-based matching but does not explicitly state when to use this tool versus alternatives like 'search' or 'cache_search'. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarizeCRead-only
Search, fetch, extract key points, and assess credibility.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | ||
| depth | No | ||
| engines | No | ||
| freshness | No | ||
| include_domains | No | ||
| exclude_domains | No | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and openWorldHint=true, so the description's mention of search/fetch adds modest context about external resource use. However, it does not disclose behavioral traits beyond annotations (e.g., rate limits, result truncation).
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 very concise (a single sentence) but packs four verbs without clear structure or separation. It could be improved by listing the steps more clearly or providing a brief format.
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?
Given the tool's complexity (7 parameters, 0% schema description, many sibling tools), the description is too short. It does not explain the output format (though an output schema exists), the credibility assessment criteria, or how depth/engines affect results. Inadequate for confident use.
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 0%, meaning the JSON schema provides no descriptions for any of the 7 parameters. The tool description also fails to explain the meaning, usage, or constraints of parameters like 'depth', 'engines', or 'freshness'. This severely limits correct invocation.
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 clearly lists four specific actions (search, fetch, extract key points, assess credibility) that the tool performs, making its purpose evident. It distinguishes from siblings like search or fetch by including extraction and credibility assessment.
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 implies the tool is for getting a synthesized, evaluated summary, but it does not explicitly state when to use it versus alternatives like search or research. No when-not or alternative tool guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_platformsARead-onlyIdempotent
List available video search platforms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. Description adds no further behavioral context beyond stating it lists platforms.
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?
Single sentence, front-loaded, no unnecessary words.
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?
Simple tool with no inputs. Output schema exists, so explanation of return values is not required. Description is adequate but could hint at platform nature.
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?
No parameters. Schema coverage is 100%, so description does not need to add param info. Baseline score for 0 parameters.
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?
Description states 'List available video search platforms,' clearly specifying the action (list) and resource (platforms). Distinguishes from sibling 'video_search' which likely searches videos, not platforms.
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?
No guidance on when to use this tool versus alternatives. Does not mention context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_searchARead-only
Search for videos on YouTube and Bilibili.
Args: query: Search query. platforms: Video platforms to search. Default: ["youtube", "bilibili"]. max_results: Max results per platform. freshness: Time filter. format: "markdown" or "json".
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| platforms | No | ||
| max_results | No | ||
| freshness | No | ||
| format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds that it searches multiple platforms and returns in markdown or json. Annotations (readOnlyHint=true) already cover safety, but no mention of pagination or external API behavior.
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?
Short, front-loaded description with a clear args list, no wasted words.
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?
Input parameters well-covered; output schema exists so lack of output details is acceptable. Could briefly mention result fields, but not necessary.
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?
Despite 0% schema coverage, the description explains each parameter clearly: query, platforms, max_results, freshness, format, compensating fully for missing schema descriptions.
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?
Clearly states 'Search for videos on YouTube and Bilibili' with specific verb and resource, distinguishing from sibling tools like 'image_search' and 'search'.
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?
No explicit guidance on when to use vs alternatives; implicitly for video searches but lacks when-not-to-use or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tools are mostly distinct: search vs. research overlap slightly (research does search + fetch top results), and fetch vs. read_doc both fetch but read_doc is PDF-specific. Most others clearly differentiate.
Naming is inconsistent with mix of verb-first (fetch, search, summarize), noun-first (cache_search, video_search), and plain nouns (engines, research). No uniform pattern but still readable.
14 tools cover a well-scoped domain of web research, fetching, searching, caching, semantic indexing, and summarization. Each tool has a clear purpose and justifies its existence.
Covers core research workflows: search (web, image, video), fetch, read PDF, extract metadata, cache, semantic index/search, summarize. Minor gaps like cache deletion or management, but not essential for primary use.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Web search for AI agents — one tool across 6 engines, routed to the cheapest + cached.
Agent-native search engine with live web research optimized for AI agents.
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
The best web search for your AI Agent
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to perform privacy-respecting web searches through SearXNG, with support for multiple search engines, categories, and advanced filtering options.25
- AlicenseAqualityBmaintenanceEnables AI agents to perform unified web searches, GitHub, and GitLab searches with caching, reranking, and fallback across multiple providers.44918MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to perform web searches, extract webpage content, and conduct end-to-end search-and-extract operations using multiple search providers and content extraction methods.
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search the web and extract content using multiple search providers, with caching, retry logic, and options for JavaScript-heavy page rendering.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/duguobao812718-wq/scout'
If you have feedback or need assistance with the MCP directory API, please join our Discord server