Search MCP Server

guangxiangdebizi/Search-MCP
0 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

A Node.js MCP server providing browser search and web page access capabilities, including Google search, intelligent web analysis, and LLM-powered summarization.

README.md

Search MCP Server

一个基于Node.js的MCP (Model Context Protocol) 服务器,提供浏览器搜索和网页访问功能,符合MCP标准协议规范。

功能特性

  • 🔍 browser_search: 使用Google搜索API获取搜索结果
  • 🌐 browser_visit: 智能网页分析,支持多URL并发处理
  • 🤖 LLM智能摘要: 使用AI模型进行证据提取和内容分析
  • 📡 MCP标准: 符合Model Context Protocol规范
  • 🔧 多API支持: Serper API / Google Custom Search API
  • 🔄 自动重试: 智能重试机制,确保稳定性
  • 🚀 并发处理: 支持最多5个URL同时处理
  • 💡 容错设计: 多层备用方案,渐进增强
  • 🌍 多模型支持: 兼容OpenAI、Azure、本地模型等
  • 📝 结构化输出: 关键证据+总结+相关性评估

快速开始

1. 安装依赖

npm install

2. 配置环境变量

复制环境变量模板: ``bash cp .env.example .env ``

编辑 .env 文件,配置API密钥:

# 搜索API配置(二选一)
# 推荐使用Serper API
SERPER_API_KEY=your_serper_api_key_here

# 或者使用Google Custom Search API
GOOGLE_API_KEY=your_google_api_key_here
GOOGLE_CSE_ID=your_custom_search_engine_id_here

# LLM配置(用于智能摘要,强烈推荐)
LLM_API_URL=https://api.openai.com/v1
LLM_API_KEY=your_llm_api_key_here
LLM_MODEL_NAME=gpt-3.5-turbo

# 可选:自定义头部(JSON格式)
LLM_CUSTOM_HEADERS={}

# 可选:Jina Reader API(提升内容提取质量)
JINA_API_KEY=your_jina_api_key_here

3. 启动服务

启动MCP服务器

# 标准MCP服务器(stdio通信)
npm start

# 或者启动HTTP网关(用于远程访问)
npm run start-gateway

注意:

  • 标准MCP服务器通过stdio进行通信,需要被MCP客户端调用
  • HTTP网关模式在3001端口提供RESTful API,支持远程访问

MCP客户端配置

Claude Desktop配置

在Claude Desktop的配置文件中添加此MCP服务器:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "search-mcp": {
      "type": "sse",
      "url": "http://127.0.0.1:3001/sse",
      "timeout": 60
    }
  }
}

其他MCP客户端

任何支持MCP协议的客户端都可以通过stdio传输与此服务器通信。

工具说明

browser_search

使用Google搜索API获取搜索结果。

输入参数:

  • query (string, 必需): 搜索查询字符串
  • top_k (integer, 可选): 返回结果数量,默认10,最大10

输出格式: ``json { "results": [ { "title": "搜索结果标题", "snippet": "搜索结果摘要", "url": "https://example.com" } ] } ``

browser_visit

智能网页分析工具,支持单个或多个URL的并发处理,使用AI进行内容分析和证据提取。

输入参数:

  • url (string|array, 必需): 单个URL字符串或URL数组(最多5个)
  • goal (string, 必需): 分析目标,描述你想从页面中获取什么信息

功能特性:

  • 🤖 AI智能分析: 使用LLM进行证据提取和内容总结
  • 🔄 自动重试: 失败时自动重试最多3次,指数退避
  • 🚀 并发处理: 多URL同时处理,提高效率
  • 📊 综合分析: 多URL时进行跨源信息整合和对比
  • 🛡️ 容错机制: Jina Reader → 直接抓取,LLM → 关键词摘要

输出格式:

单URL输出: `` 关键证据:[具体信息和数据] 总结:[基于证据的结论] 相关性评估:[内容匹配度说明] ``

多URL输出: ```

网页1: [URL]

[单独分析结果]

网页2: [URL]

[单独分析结果]

综合分析

[跨网页整合分析]

处理失败的URL

[失败原因说明] ```

使用示例

在Claude Desktop中使用

  1. 配置好MCP服务器后,重启Claude Desktop
  2. 在对话中,Claude会自动识别可用的工具
  3. 你可以直接询问需要搜索或访问网页的问题

示例对话:

基础搜索:

  • "帮我搜索一下最新的Node.js版本信息"
  • "搜索关于MCP协议的相关资料"

单网页分析:

  • "请访问https://nodejs.org,目标是了解最新版本的新特性"
  • "分析这个技术博客,提取关于AI发展趋势的关键观点"

多网页对比分析:

  • "同时分析这3个新闻网站关于某事件的报道,对比不同观点"
  • "访问多个技术文档,整理API使用方法的最佳实践"

测试MCP服务器

你可以使用MCP客户端工具来测试服务器:

# 安装MCP客户端工具
npm install -g @modelcontextprotocol/inspector

# 测试服务器
mcp-inspector node src/index.js

开发模式

使用nodemon进行开发: ``bash npm run dev ``

配置说明

LLM提供商支持

OpenAI ``env LLM_API_URL=https://api.openai.com/v1 LLM_MODEL_NAME=gpt-3.5-turbo ``

Azure OpenAI ``env LLM_API_URL=https://your-resource.openai.azure.com/ LLM_MODEL_NAME=gpt-35-turbo LLM_CUSTOM_HEADERS={"api-version": "2023-12-01-preview"} ``

本地模型(Ollama) ``env LLM_API_URL=http://localhost:11434/v1 LLM_MODEL_NAME=llama2 ``

DeepSeek ``env LLM_API_URL=https://api.deepseek.com/v1 LLM_MODEL_NAME=deepseek-chat ``

功能层级

  1. 最小配置: 仅搜索API → 基础搜索 + 关键词摘要
  2. 推荐配置: 搜索API + LLM → 智能搜索 + AI摘要
  3. 完整配置: 搜索API + LLM + Jina → 最佳体验

注意事项

  1. API配置: 如果没有配置搜索API密钥,服务器将使用模拟数据进行测试
  2. 智能摘要: 配置LLM后可获得更准确的内容分析和证据提取
  3. 内容提取: 优先使用Jina Reader API,失败时回退到直接抓取
  4. 并发限制: 单次最多处理5个URL,避免过载
  5. 重试机制: 自动重试失败的请求,指数退避策略
  6. 内容截断: 超长内容智能截断到16000字符,避免token限制

技术栈

  • Node.js: 运行时环境
  • @modelcontextprotocol/sdk: MCP协议SDK
  • Axios: HTTP客户端
  • Cheerio: HTML解析
  • Stdio传输: 标准输入输出通信

许可证

MIT License

Related MCP servers

Browse all →