mcp-server-freesearch
A free search MCP server powered by SearXNG, offering various search types without requiring an API key.
README
MCP Server FreeSearch
基于 SearXNG 的免费搜索 MCP 服务器,提供多种类型的网络搜索功能,无需 API 密钥。
功能特性
- 综合搜索 - 通用网页搜索,适用于查找信息、网站、文章等
- 新闻搜索 - 专门搜索新闻内容,获取最新事件和时事信息
- 图片搜索 - 搜索图片和视觉内容
- 视频搜索 - 搜索视频内容,包括教程、电影、直播等
- 地图搜索 - 地理位置查询,查找地点、地标或导航信息
- 音乐搜索 - 搜索音乐、歌曲、专辑或音频资源
- IT搜索 - 专门搜索信息技术相关内容,适用于编程、系统、网络等技术问题
- 科学搜索 - 搜索科学信息,适用于物理、化学、生物、数学等学术内容
- 文件搜索 - 搜索可下载的公共文件,如 PDF、PPT、DOC 等格式
- 社交媒体搜索 - 搜索社交媒体平台的公开内容
- 速率限制 - 防止 API 滥用
- 全面的错误处理 - 提供详细的错误信息和故障排除建议
- 多种输出格式 - 支持 HTML 和 JSON 格式输出
系统要求
- Python 3.10 或更高版本
- MCP 兼容客户端(如 Claude Desktop、Cursor)
- 可访问的 SearXNG 实例
安装步骤
方式一:通过 uvx 安装(推荐)
uvx mcp-server-freesearch
方式二:从源码安装
-
克隆此仓库:
git clone <repository-url> cd mcp-server-freesearch -
安装依赖:
uv venv source .venv/bin/activate # Windows 系统: .venv\Scripts\activate uv pip install -e .
配置
建议 docker 搭建searx
- 构建
docker pull docker.io/searxng/searxng:latest
# Create directories for configuration and persistent data
$ mkdir -p ./searxng/config/ ./searxng/data/
$ cd ./searxng/
# Run the container
$ docker run --name searxng --replace -d \
-p 8888:8080 \
-v "./config/:/etc/searxng/" \
-v "./data/:/var/cache/searxng/" \
docker.io/searxng/searxng:latest
- 配置支持json输出
vim ./searxng/config/settings.yml
找到下面的format配置项,添加json
...
# formats: [html, csv, json, rss]
formats:
- html
- json
设置所需的环境变量:
export SEARXNG_API_URL="https://searx.bndkt.io" # SearXNG 实例 URL
export SEARXNG_COOKIE="" # 可选:SearXNG Cookie
export SEARXNG_USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" # 可选:用户代理
export SEARXNG_REQUEST_TIMEOUT="10" # 可选:请求超时时间(秒)
export ENV_FASTMCP_LOG_LEVEL="WARNING" # 可选:日志级别
Windows 系统:
set SEARXNG_API_URL=https://searx.bndkt.io
set SEARXNG_COOKIE=
set SEARXNG_USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
set SEARXNG_REQUEST_TIMEOUT=10
set ENV_FASTMCP_LOG_LEVEL=WARNING
使用方法
运行服务器
通过 uvx 运行(推荐):
uvx mcp-server-freesearch
或者从源码直接运行:
python main.py
开发和测试
使用 MCP Inspector 进行测试:
npx @modelcontextprotocol/inspector python main.py
配置 Claude Desktop
将以下配置添加到 Claude Desktop 配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"free-search": {
"command": "uvx",
"args": [
"mcp-server-freesearch"
],
"env": {
"SEARXNG_API_URL": "https://searx.bndkt.io"
}
}
}
}
如果你是从源码运行,则使用:
{
"mcpServers": {
"free-search": {
"command": "python",
"args": [
"/path/to/your/mcp-server-freesearch/main.py"
],
"env": {
"SEARXNG_API_URL": "https://searx.bndkt.io"
}
}
}
}
可用工具
1. free_general_search
用于综合性搜索,最适合查找信息、网站、文章和一般内容。
示例:"法国的首都是什么?" 或 "巧克力曲奇食谱"
2. free_news_search
专门用于新闻相关查询,最适合时事、最新发展和时效性信息。
示例:"气候变化最新新闻" 或 "最新科技公告"
3. free_image_search
用于查找图片,最适合视觉内容查询。
示例:"金毛犬图片" 或 "埃菲尔铁塔照片"
4. free_video_search
用于搜索视频内容,最适合教程、电影、直播或短视频。
示例:"Python 入门视频" 或 "最新 NASA 纪录片"
5. free_map_search
用于地理位置查询,最适合查找地点、地标或导航相关信息。
示例:"上海外滩在哪里?" 或 "最近的地铁站"
6. free_music_search
用于查找音乐、歌曲、专辑或音频资源。
示例:"周杰伦青花瓷" 或 "贝多芬月光奏鸣曲"
7. free_it_search
用于搜索信息技术相关内容,最适合编程、系统、网络和安全等技术问题。
示例:"如何修复蓝屏错误?" 或 "查看内存的 Linux 命令"
8. free_science_search
用于查找科学信息,适用于物理、化学、生物和数学等学术内容。
示例:"光合作用的过程" 或 "黑洞是如何形成的"
9. free_file_search
用于查找可下载的公共文件,如 PDF、PPT、DOC 等格式。
示例:"机器学习入门 PDF" 或 "年度财务报告下载"
10. free_social_media_search
用于搜索社交媒体平台的公开内容,适合捕获推文、讨论和社交活动。
示例:"关于 AI 的热门推文" 或 "Reddit 远程工作讨论"
参数说明
所有搜索工具都支持以下参数:
query(string, 必需): 搜索查询字符串language(string, 可选): 搜索语言,默认为 "zh"(中文)safe_search(int, 可选): 安全搜索等级,默认为 1(除图片、视频等为 0)time_range(string, 可选): 时间范围过滤器,默认为空output_format(string, 可选): 输出格式,"html" 或 "json",默认为 "html"
输出格式
所有搜索结果都格式化为文本,每个结果项包含不同的字段:
- 综合搜索: 标题、URL 和描述
- 新闻搜索: 标题、URL、描述、发布日期和提供者
- 图片搜索: 标题、来源 URL、图片 URL 和尺寸
- 视频搜索: 标题、链接、描述、发布平台和时长(如适用)
- 其他类别: 标题、链接、描述(以及与类别相关的附加信息)
故障排除
- "未找到搜索结果" - 检查网络连接和 SearXNG 实例状态
- "Rate limit exceeded" - 等待一段时间后重试,或检查速率限制设置
- 连接错误 - 验证 SEARXNG_API_URL 是否正确且可访问
- JSON 解析错误 - 检查 SearXNG 实例是否返回有效的响应格式
发布到 PyPI
如果你想发布此包到 PyPI:
-
安装构建工具:
uv pip install build twine -
构建包:
python -m build -
上传到 PyPI:
python -m twine upload dist/*
注意:请确保在 pyproject.toml 中更新版本号和仓库 URL。
许可证
本项目基于 MIT 许可证开源。
贡献
欢迎提交 Issue 和 Pull Request 来改进此项目。
支持
如果遇到问题,请检查:
- Python 版本是否符合要求
- 所有依赖是否正确安装
- 环境变量是否正确设置
- SearXNG 实例是否可访问
更多技术支持,请提交 Issue 到项目仓库。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。