Search1API MCP 服务器
一个使用 Search1API 提供搜索和爬取功能的模型上下文协议 (MCP) 服务器。
前置条件
- Node.js >= 18.0.0
- 一个有效的 Search1API API 密钥(请参考下方的 设置指南 了解如何获取和配置)
安装(独立 / 常规)
-
克隆仓库:
git clone https://github.com/fatwang2/search1api-mcp.git cd search1api-mcp -
配置 API 密钥: 在构建之前,您需要提供您的 Search1API 密钥。请参考下方的 设置指南 部分了解不同的配置方法(例如,使用
.env文件或环境变量)。 -
安装依赖并构建:
npm install npm run build注意:如果使用项目的
.env文件方法来配置 API 密钥,请确保在执行此步骤之前该文件已存在。
使用(独立 / 常规)
确保您的 API 密钥已配置(请参考 设置指南)。
启动服务器:
npm start
服务器将准备好接受来自 MCP 客户端的连接。
设置指南
1. 获取 Search1API 密钥
- 在 Search1API 注册。
- 从您的仪表板获取您的 API 密钥。
2. 配置 API 密钥
您需要将您的 API 密钥提供给服务器。选择以下 一种 方法:
方法 A: 项目 .env 文件(推荐用于独立或 LibreChat)
如果与当前版本的 LibreChat 集成(请参见下方的特定部分),则必须使用此方法。
- 在
search1api-mcp项目根目录下,创建一个名为.env的文件:# 在 search1api-mcp 目录中 echo "SEARCH1API_KEY=your_api_key_here" > .env - 将
your_api_key_here替换为您的实际密钥。 - 确保在运行
npm install && npm run build之前该文件已存在。
方法 B: 环境变量(仅限独立)
在启动服务器之前设置 SEARCH1API_KEY 环境变量。
export SEARCH1API_KEY="your_api_key_here"
npm start
方法 C: MCP 客户端配置(高级)
某些 MCP 客户端允许直接在其配置中指定环境变量。这对于 Cursor、VS Code 扩展等客户端很有用。
{
"mcpServers": {
"search1api": {
"command": "npx",
"args": [
"-y",
"search1api-mcp"
],
"env": {
"SEARCH1API_KEY": "YOUR_SEARCH1API_KEY"
}
}
}
}
LibreChat 用户注意: 由于 LibreChat 当前存在限制,方法 A(项目 .env 文件)是 必需 的方法。请参见下方的专用集成部分获取完整说明。
与 LibreChat 集成(Docker)
本节详细说明了通过 Docker 与 LibreChat 集成的必要步骤。
概述:
- 将此服务器的仓库克隆到 LibreChat
docker-compose.yml可访问的位置。 - 在此服务器的目录中使用 项目
.env文件方法 配置所需的 API 密钥。 - 构建此服务器。
- 通过编辑
librechat.yaml告知 LibreChat 如何运行此服务器。 - 确保构建的服务器代码通过 Docker 卷绑定在 LibreChat 容器内部可用。
- 重启 LibreChat。
分步说明:
-
克隆仓库: 导航到您在主机上管理 LibreChat 外部服务的目录(这通常是
docker-compose.yml文件所在的目录)。一个常见的位置是专用的mcp-server目录。# 示例:导航到 docker-compose.yml 所在的位置,然后进入 mcp-server cd /path/to/your/librechat/setup/mcp-server git clone https://github.com/fatwang2/search1api-mcp.git -
进入服务器目录:
cd search1api-mcp -
配置 API 密钥(项目
.env文件方法 - LibreChat 所需):# 创建 .env 文件 echo "SEARCH1API_KEY=your_api_key_here" > .env # 重要提示:将 'your_api_key_here' 替换为您的实际 Search1API 密钥 -
安装依赖并构建: 此步骤将服务器代码编译到
build目录。npm install npm run build -
配置
librechat.yaml: 编辑您的主librechat.yaml文件,告诉 LibreChat 如何执行此 MCP 服务器。在mcp_servers下添加一个条目:# 在您的 main librechat.yaml 中 mcp_servers: # 您也可以在此处添加其他 MCP 服务器 search1api: # 可选:在 LibreChat UI 中显示的服务器名称 # name: Search1API 工具 # 命令告诉 LibreChat 使用 'node' command: node # Args 指定 'node' 要在 *容器内部* 运行的脚本 args: - /app/mcp-server/search1api-mcp/build/index.jsargs路径 (/app/...) 是构建的服务器将在其中被访问的位置(感谢下一步骤中的卷绑定)。
-
配置 Docker 卷绑定: 编辑您的
docker-compose.yml(或更可能是docker-compose.override.yml)以将主机上的search1api-mcp目录映射到 LibreChat API 容器。找到volumes:部分中为api:服务配置的卷:# 在您的 docker-compose.yml 或 docker-compose.override.yml 中 services: api: # ... 其他服务配置 ... volumes: # ... 可能存在其他卷 ... # 添加此卷绑定: - ./mcp-server/search1api-mcp:/app/mcp-server/search1api-mcp- 主机路径 (
./mcp-server/search1api-mcp): 这是相对于您的docker-compose.yml文件所在位置的路径。如果您将仓库克隆到了其他位置,请调整它。 - 容器路径 (
:/app/mcp-server/search1api-mcp): 这是容器内部的路径。它 必须 与librechat.yamlargs路径中使用的目录结构匹配。
- 主机路径 (
-
重启 LibreChat: 通过重建(如果您修改了
docker-compose.yml)并重启您的 LibreChat 堆栈来应用更改。docker compose down && docker compose up -d --build # 或者: docker compose restart api (如果仅 librechat.yaml 发生更改)
现在,Search1API 服务器应该作为工具提供者在 LibreChat 中可用。
功能
- 网络搜索功能
- 新闻搜索功能
- 网页内容提取
- 网站站点地图提取
- 使用 DeepSeek R1 进行深度思考和复杂问题解决
- 与 Claude Desktop、Cursor、Windsurf、Cline 和其他 MCP 客户端无缝集成
工具
1. 搜索工具
- 名称:
search - 描述: 使用 Search1API 搜索网络
- 参数:
query(必需): 自然语言搜索查询。具体简洁以获得更好的结果max_results(可选, 默认: 10): 返回的结果数量search_service(可选, 默认: "google"): 要使用的搜索服务 (google, bing, duckduckgo, yahoo, x, reddit, github, youtube, arxiv, wechat, bilibili, imdb, wikipedia)crawl_results(可选, 默认: 0): 用于提取完整网页内容的结果数量include_sites(可选): 搜索中包含的站点列表exclude_sites(可选): 搜索中排除的站点列表time_range(可选): 搜索结果的时区 ("day", "month", "year")
2. 新闻工具
- 名称:
news - 描述: 使用 Search1API 搜索新闻文章
- 参数:
query(必需): 自然语言搜索查询。具体简洁以获得更好的结果max_results(可选, 默认: 10): 返回的结果数量search_service(可选, 默认: "bing"): 要使用的搜索服务 (google, bing, duckduckgo, yahoo, hackernews)crawl_results(可选, 默认: 0): 用于提取完整网页内容的结果数量include_sites(可选): 搜索中包含的站点列表exclude_sites(可选): 搜索中排除的站点列表time_range(可选): 搜索结果的时区 ("day", "month", "year")
3. 爬取工具
- 名称:
crawl - 描述: 使用 Search1API 从 URL 提取内容
- 参数:
url(必需): 要爬取的 URL
4. 站点地图工具
- 名称:
sitemap - 描述: 从 URL 获取所有相关链接
- 参数:
url(必需): 要获取站点地图的 URL
5. 推理工具
- 名称:
reasoning - 描述: 一个用于深度思考和复杂问题解决的工具,具有快速 deepseek r1 模型和网络搜索能力(您可以在 search1api 网站上更改为任何其他模型,但速度不能保证)
- 参数:
content(必需): 需要深度思考的问题或疑问
6. 趋势工具
- 名称:
trending - 描述: 从热门平台获取趋势话题
- 参数:
search_service(必需): 指定要从中获取趋势话题的平台 (github, hackernews)max_results(可选, 默认: 10): 返回的趋势项最大数量
版本历史
- v0.2.0: 添加了对 LibreChat 集成的后备
.env支持并更新了依赖项。 - v0.1.8: 添加了 X(Twitter) 和 Reddit 搜索服务
- v0.1.7: 添加了 GitHub 和 Hacker News 的趋势工具
- v0.1.6: 添加了维基百科搜索服务
- v0.1.5: 添加了新的搜索参数 (include_sites, exclude_sites, time_range) 和新的搜索服务 (arxiv, wechat, bilibili, imdb)
- v0.1.4: 添加了推理工具(使用 deepseek r1)并更新了 Cursor 和 Windsurf 配置指南
- v0.1.3: 添加了新闻搜索功能
- v0.1.2: 添加了站点地图功能
- v0.1.1: 添加了网页爬取功能
- v0.1.0: 初次发布,包含搜索功能
许可证
本项目根据 MIT 许可证授权 - 详细内容请参阅 LICENSE 文件。