本地化Web搜索服务器

一个完全本地化、无需API密钥的Web搜索MCP服务器,支持多种后端提供商如DuckDuckGo、Wikipedia和GitHub公共搜索API,适用于LLM代理、自动化系统或本地助手。

  • by null-create
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 null-create/mcp-web-server

使用说明

网络搜索MCP服务器

完全本地化、无API密钥 Web搜索MCP(模型上下文协议)服务器 由多个后端提供商提供支持,包括DuckDuckGo、维基百科和GitHub的公共搜索API。 此服务器通过以下方式公开搜索功能 FastMCP 工具,使其成为LLM代理、自动化系统或本地助理的理想选择。


✨ 特性

  • 不需要API密钥 --使用DuckDuckGo、维基百科和GitHub公共端点。

  • 统一搜索API 通过MCP工具:

    • web_search –一般网络搜索
    • news_search –新闻文章
    • image_search –图像搜索
    • video_search –视频搜索
    • search_wikipedia –维基百科文章
    • search_github –GitHub存储库
    • get_search_suggestions –自动完成建议
  • 本地HTTP MCP服务器 由FastMCP提供

  • 通过Python或Docker进行简单部署


📁 项目结构

├── .env.example         # Example .env file
├── .gitignore           # git helper
├── Dockerfile           # Docker file for local deployment
├── LICENCE              # Licence file
├── Makefile             # Dev helpers (venv setup, Docker compose, cleanup)
├── README.md            # This file
├── __init__.py          # Python init file
├── docker-compose.yml   # Docker compose file
├── requirements.txt     # Python dependencies
├── search_backends.py   # Search backend implementations (DuckDuckGo, Wikipedia, GitHub)
└── server.py            # MCP server and tool definitions

🚀 入门指南

先决条件

  • python 3.10+
  • (可选) make
  • (可选)Docker+Docker组合

🔧 安装

选项1:本地Python环境

make init

或手动:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

▶️ 运行MCP服务器

启动服务器

python server.py

默认情况下,它运行在:

HOST: 0.0.0.0
PORT: 9393

用环境变量覆盖:

export HOST_ADDRESS=127.0.0.1
export HOST_PORT=8080
python server.py

🐳 使用Docker Compose运行

make dev-compose

停止环境:

make dev-down

🧰 MCP工具概述

1. web_search

通用DuckDuckGo网络搜索。

论据:

名称 类型 描述
query str 搜索查询
max_results int 1–50
区域 str 例如。 us-en, wt-wt
安全搜索 str strict, moderate, off

2. news_search

搜索最近的新闻文章。

额外论据:

  • time_range – d, w, m, y

3. image_search

DuckDuckGo图片搜索。

额外参数:

  • size –小/中/大/壁纸
  • type_image –照片/剪贴画/gif/线条/透明

4. video_search

DuckDuckGo视频搜索。

额外参数:

  • duration –短/中/长
  • resolution –高/标准

5. search_wikipedia

搜索维基百科并检索摘要+网址。


6. search_github

通过公共API搜索GitHub存储库。 不需要API密钥。


7. get_search_suggestions

返回DuckDuckGo自动补全建议。


🧠 搜索后端

所有后端逻辑都在 search_backends.py

后端包括:

  • ddgs –DuckDuckGo搜索/文本/新闻/图片/视频/建议
  • wikipedia –维基百科API包装
  • GitHub公共存储库搜索(REST)

所有请求都包含一个自定义的用户代理,以减少限制。


⚙️ 环境变量

变量 默认值 描述
HOST_PORT 9393 服务器端口
HOST_ADDRESS 0.0.0.0 绑定地址

例子:

HOST_PORT=8080 HOST_ADDRESS=127.0.0.1 python server.py

🧑‍💻 发展

初始化本地venv:

make init

清洁发展环境:

make clean

🐞 故障排除

我收到DuckDuckGo节流错误

DuckDuckGo有时会限制请求的速率。 尝试:

  • 请求频率降低
  • 更改IP
  • 避免快速重复查询

GitHub返回403

GitHub速率限制未经身份验证的请求。 等待重置或降低频率。


📜 许可证

麻省理工学院