MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

一个基于 Model Context Protocol(MCP) 的搜索聚合项目,包含 Bing 中文搜索与 Google 搜索两个子服务,并提供统一的 MCP Server 启动入口与命令行 Client,用于调试与集成。

Created 12/6/2025
Updated 7 days ago
Repository documentation and setup instructions

🧭 Searcher MCP 集成项目

(Bing / Google 搜索工具 + MCP Server + 客户端)

一个基于 Model Context Protocol(MCP) 的搜索聚合项目,包含 Bing 中文搜索与 Google 搜索两个子服务,并提供统一的 MCP Server 启动入口与命令行 Client,用于调试与集成。

项目采用:

  • Python 3.12
  • Playwright(无头浏览器抓取)
  • LangChain MCP Adapter(客户端)
  • Pydantic(结构化返回)
  • MCP Tool 规范
  • 模块化结构(方便新增搜索源)

📁 项目结构

searcher/
│
├── bing/
│   └── server.py          # Bing 中文搜索 MCP 服务
│
├── google/
│   └── server.py          # Google 搜索 MCP 服务
│
├── client.py              # 命令行调试客户端(langchain-mcp-adapter)
│
└── main.py                # 启动 MCP server 的总入口

🚀 功能概览

✅ 搜索列表(Search)

提供搜索接口:

  • 搜索关键词
  • 返回标准化的结果结构
  • 支持 include_raw=True 返回页面所有模块
  • 支持 include_raw=False 返回真正 organic 搜索结果

返回结构:

BingSearchResult
    query: str
    answers: list[BingSearchResultItem]
    ads: list[BingSearchResultItem]

✅ 搜索详情(Detail)

进入搜索结果详情页后抽取:

  • title(页面标题)
  • description(meta description)
  • content(正文内容)

正文抽取逻辑:

  1. 优先 article / content 容器
  2. fallback → body
  3. 最后 fallback → page.text_content()

✅ MCP Server

每个搜索引擎一个 server:

  • Bing:bing/server.py
  • Google:google/server.py

统一由:

main.py

启动多个 MCP 子服务。


✅ 命令行 Client

用于调试与人工测试:

python client.py

功能:

  • 自动连接 MCP server
  • 展示可用工具
  • 输入工具名称 → 调用工具
  • 查看返回结果

🛠️ 安装依赖

pip install -r requirements.txt

Playwright 浏览器:

playwright install chromium

▶️ 启动 MCP 服务

启动所有搜索服务:

python main.py

你会看到类似:

🚀 MCP server started
🔧 Tools:
- bing_cn_search
- bing_cn_detail
- google_search
- google_detail

🧪 使用 Client(调试)

python client.py

输出:

🚀 已连接 searcher MCP server

🔧 可用工具:
- bing_cn_search → Bing 搜索工具
- bing_cn_detail → Bing 搜索详情
- google_search → Google 搜索工具
- google_detail → Google 详情

输入工具名即可:

bing_cn_search

然后按提示输入参数(JSON 或者命令行)。


📌 示例:调用 Bing 搜索

输入:

bing_cn_search

返回示例:

{
  "query": "OpenAI",
  "answers": [
    {
      "title": "OpenAI 官网",
      "link": "https://openai.com",
      "summary": "OpenAI 是美国人工智能研究公司..."
    }
  ],
  "ads": []
}

📌 示例:详情页抓取

bing_cn_detail

返回:

{
  "url": "https://openai.com",
  "title": "OpenAI",
  "description": "OpenAI 是美国人工智能研究公司...",
  "content": "OpenAI 成立于 2015 年 ...(正文全文)"
}

✅ 可扩展性

新增搜索引擎非常容易:

  1. 新建目录:duckduckgo/server.py
  2. 定义工具
  3. 在 main 中注册
  4. client 会自动发现

无需修改其他模块。


📘 开发指南

新增工具

@bing_cn_mcp.tool("bing_cn_search", description="Bing 搜索工具")
async def bing_cn_search(params: BingSearchParams) -> BingSearchResult:
    ...

返回模型统一用 Pydantic

class BingSearchResult(BaseModel):
    query: str
    answers: list[BingSearchResultItem]
    ads: list[BingSearchResultItem]

保证爬虫稳定性

  • 必须滚动页面
  • 必须 try/except
  • 必须 fallback
  • 必须结构化

📚 License

MIT License

Quick Setup
Installation guide for this server

Install Package (if required)

uvx searcher

Cursor configuration (mcp.json)

{ "mcpServers": { "qwqzy-searcher": { "command": "uvx", "args": [ "searcher" ] } } }