AI搜索服务器

一个为AI编程助手提供网络搜索和网页内容获取功能的MCP服务器,支持多种搜索引擎和网页内容提取。

  • by lucoo01
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 lucoo01/search-mcp

使用说明

Search MCP Server

一个为AI编程助手提供网络搜索和网页内容获取功能的MCP(Model Context Protocol)服务器。

为什么需要这个项目?

目前智谱AI官方还没有提供对应的搜索MCP服务器实现,虽然智谱AI开放平台提供了强大的Web Search API,但缺少将其封装为MCP协议的官方实现。为了能够在AI编程助手(如Claude等)中使用智谱AI的搜索能力,我们自行实现了这个MCP服务器。

本项目将智谱AI的Web Search API封装为标准的MCP协议,使得AI助手可以通过MCP协议调用智谱AI的搜索功能,包括:

  • 多种搜索引擎支持(智谱基础版、高阶版、搜狗、夸克)
  • 网页内容自动提取
  • 搜索意图识别
  • 结果过滤和时间范围控制

这样,AI助手就能获得高质量的网络搜索能力,提升回答问题的准确性和时效性。

功能特性

  • 🔍 网络搜索: 支持多个搜索引擎(智谱基础版、高阶版、搜狗、夸克)
  • 📄 网页内容获取: 自动提取网页正文内容
  • 🔗 搜索并获取: 一次性搜索并获取多个结果的详细内容
  • 📊 连接监控: 实时监控请求状态和错误率
  • 📝 详细日志: 完整的请求和响应日志记录

安装依赖

pip install -r requirements.txt

配置

方式一:通过MCP配置(推荐)

在您的MCP配置文件中添加API密钥:

{
  "search-mcp": {
    "autoApprove": [
      "web_search",
      "fetch_web_content", 
      "search_and_fetch"
    ],
    "disabled": false,
    "timeout": 60,
    "type": "stdio",
    "command": "python",
    "args": ["f:\\loen_space\\search_mcp\\search_mcp_server.py"],
    "env": {
      "API_KEY": "your_actual_api_key_here"
    }
  }
}

💡 提示: 项目中提供了 mcp_config_example.json 文件作为配置参考。

方式二:通过环境变量文件

  1. 复制配置文件:
cp .env.example .env
  1. 编辑 .env 文件,填入您的智谱AI API密钥:
# 智谱AI API密钥 (可选,不推荐在此处配置)
API_KEY=your_actual_api_key_here

3. 其他配置选项

# 搜索API URL (通常不需要修改)
SEARCH_API_URL=https://open.bigmodel.cn/api/paas/v4/web_search

# 日志级别 (DEBUG, INFO, WARNING, ERROR)
LOG_LEVEL=DEBUG

# 日志文件最大大小 (MB)
LOG_MAX_SIZE=10

# 日志备份数量
LOG_BACKUP_COUNT=5

# 连接超时时间 (秒)
REQUEST_TIMEOUT=30

# 服务器名称
SERVER_NAME=Search MCP Server

获取API密钥

  1. 访问 智谱AI开放平台
  2. 注册并登录账号
  3. 在控制台中创建新的API密钥
  4. 将密钥填入 .env 文件的 API_KEY 字段

运行服务器

直接运行服务器:

python search_mcp_server.py

服务器会自动检查配置并启动。如果API密钥未正确配置,会显示相应的警告信息,但服务器仍会启动。

可用工具

1. web_search

执行网络搜索

参数:

  • query (必需): 搜索查询内容,建议不超过70个字符
  • search_engine (可选): 搜索引擎类型
    • search_std: 智谱基础版搜索引擎
    • search_pro: 智谱高阶版搜索引擎(默认)
    • search_pro_sogou: 搜狗搜索引擎
    • search_pro_quark: 夸克搜索引擎
  • count (可选): 返回结果数量,范围1-50,默认10
  • content_size (可选): 内容大小,medium 或 high,默认medium

2. fetch_web_content

获取网页详细内容

参数:

  • url (必需): 要获取内容的网页URL
  • max_length (可选): 最大内容长度,默认5000字符

3. search_and_fetch

搜索并获取前几个结果的详细内容

参数:

  • query (必需): 搜索查询内容
  • search_engine (可选): 搜索引擎类型,默认search_pro
  • count (可选): 搜索结果数量,默认5
  • fetch_top (可选): 获取前几个结果的详细内容,默认3
  • max_content_length (可选): 每个网页的最大内容长度,默认3000

可用资源

1. search://engines

获取支持的搜索引擎列表和详细信息

2. search://examples

获取搜索示例和使用场景

可用提示

1. code_search_prompt

生成代码搜索提示,帮助用户更好地搜索编程相关内容

参数:

  • topic (必需): 搜索主题

日志文件

服务器会在运行时输出日志信息到控制台,包括:

  • 请求和响应的详细信息
  • 错误和警告信息
  • 连接状态监控

如需将日志保存到文件,可以通过重定向输出:

python search_mcp_server.py > server.log 2>&1

安全注意事项

⚠️ 重要:

  • 请勿将 .env 文件提交到版本控制系统
  • API密钥应妥善保管,避免泄露
  • 建议定期更换API密钥
  • 在生产环境中使用时,请确保日志文件的安全存储

故障排除

1. API密钥未设置

如果看到错误信息 "API_KEY环境变量未设置",请检查:

  • .env 文件是否存在
  • API_KEY 是否正确设置
  • 是否有正确的权限读取 .env 文件

2. 网络连接问题

如果遇到网络连接错误,请检查:

  • 网络连接是否正常
  • 防火墙设置是否阻止了请求
  • API密钥是否有效

3. 搜索结果为空

如果搜索结果为空,请尝试:

  • 更换搜索引擎
  • 调整搜索关键词
  • 检查API配额是否用完

许可证

本项目采用 MIT 许可证。

贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目。