mcpField
R
researchsearch

researchsearch

本地服务
github.com/CloudCorpRecords搜索与检索02 周前更新

关于 researchsearch

researchsearch 是由 Tavily API 驱动的网页研究 CLI 和 MCP 服务,支持排序搜索、页面提取、网站爬取和 URL 映射。使用时需要 Tavily API 密钥。

主要功能

  1. 01排序网页搜索,可选生成答案
  2. 02提取页面正文
  3. 03按设定限制爬取网站
  4. 04映射可访问的网站 URL
  5. 05CLI 与 stdio MCP 服务

适用场景

  1. 01通过排序摘要搜索资料
  2. 02提取指定页面的文本
  3. 03按深度和广度限制爬取网站
  4. 04阅读页面前先查看网站结构

MCP 相关

通过 stdio 向 MCP 客户端提供 Tavily 搜索、提取、爬取和映射工具。需要设置 `TAVILY_API_KEY`,工具结果来自对应的 Tavily API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-researchsearch": {
"command": "npx",
"args": [
"-y",
"@reneturcios/researchsearch"
]
}
}
}
启动命令npx -y @reneturcios/researchsearch

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/researchsearch0.1.0
ocighcr.io/cloudcorprecords/researchsearch:0.1.0

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
daysnumber否从今天起向前搜索新闻主题的天数。
querystring是要对网页运行的搜索查询。
topicstring否搜索主题:“general”、“news”或“finance”。
max_resultsnumber否要返回的搜索结果最大数量。
search_depthstring否搜索深度:“basic”或“advanced”。未设置时由服务选择。
include_answerboolean否是否包含 AI 生成的结果摘要。
exclude_domainsarray否要从结果中排除的域名列表。
include_domainsarray否要将结果限制到的域名列表;仅返回这些域名中的结果。
include_raw_contentboolean否是否包含每条结果对应的清理后原始页面内容。

详细介绍

researchsearch

researchsearch 是一款由 Tavily API 驱动的网络研究工作台。它可以搜索经过排序且包含内容的结果(还可选择生成答案),提取特定页面中的纯文本,在你设定的限制内逐页抓取网站,并梳理网站结构,让你在阅读前了解网站内容。它既可通过命令行使用,也可作为面向 Agent 的 MCP 服务运行。

需要 Tavily API 密钥。请将密钥设置在 TAVILY_API_KEY 环境变量中;如果未设置,所有操作都会在发出任何请求前停止,并报告缺少该变量。

安装

export TAVILY_API_KEY="tvly-..."
npx @reneturcios/researchsearch search "composting basics"

或者运行容器镜像:

docker run -i -e TAVILY_API_KEY="tvly-..." ghcr.io/cloudcorprecords/researchsearch

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。

CLI

# Search; results print as JSON
researchsearch search "composting basics"
researchsearch search "rate decision" --topic news --days 3 --max-results 5 --answer

# Extract the clean content of one or more pages
researchsearch extract https://example.com/article
researchsearch extract https://example.com/a https://example.com/b --depth advanced

# Crawl a site from a starting page
researchsearch crawl https://example.com --max-depth 2 --limit 25
researchsearch crawl https://example.com --instructions "Focus on the guides"

# Map a site's structure (URLs only, no page content)
researchsearch map https://example.com --max-depth 1 --limit 50

researchsearch --version

退出码:操作成功时为 0,操作失败时为 1(例如缺少 TAVILY_API_KEY、服务返回 HTTP 错误或无法连接主机),用法错误时为 2。

MCP 服务

一个二进制文件同时支持两种用途。mcp 子命令会启动 stdio MCP 服务:

npx -y @reneturcios/researchsearch mcp

MCP 客户端配置:

{
  "mcpServers": {
    "researchsearch": {
      "command": "npx",
      "args": ["-y", "@reneturcios/researchsearch", "mcp"],
      "env": {
        "TAVILY_API_KEY": "tvly-..."
      }
    }
  }
}
工具
工具输入返回内容
tavily-searchquery(字符串,必填)、search_depth、topic、days、max_results、include_answer、include_raw_content、include_domains、exclude_domains(均为可选)排序后的结果,包含内容摘要和评分;按需提供生成的答案和原始页面内容。
tavily-extracturls(字符串数组,必填)、extract_depth、include_images、query(可选)每个页面提取出的纯文本,并单独报告提取失败的页面。
tavily-crawlurl(字符串,必填)、max_depth、max_breadth、limit、instructions、extract_depth(可选)从起始 URL 抓取的页面,以及每个页面提取出的内容。
tavily-mapurl(字符串,必填)、max_depth、max_breadth、limit、instructions(可选)从起始页面可访问的 URL 列表,不包含页面内容。

每个工具都会调用对应的 Tavily API 端点。只会发送你设置的参数——未设置的可选参数会被省略,让服务应用自己的默认值——并且每个响应都会原样返回服务提供的 JSON。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。