mcpField
M
Mcp Search Freesearch

Mcp Search Freesearch

本地服务
github.com/wzj177搜索与检索1210 周前更新

关于 Mcp Search Freesearch

Mcp Search Freesearch 是基于 SearXNG 的 MCP 服务,为需要免 API 密钥网络搜索的 MCP 客户端提供多类别查询。支持网页、新闻、图片等搜索,并可选择 HTML 或 JSON 输出。

主要功能

  1. 01十类网络内容搜索
  2. 02支持语言与时间筛选
  3. 03安全搜索级别设置
  4. 04HTML 或 JSON 输出
  5. 05请求速率限制

适用场景

  1. 01查找网页信息与最新新闻
  2. 02搜索图片、视频和音乐
  3. 03查询地点及科学或 IT 内容
  4. 04查找公共文件与社交媒体内容

MCP 相关

作为 MCP 服务向客户端提供十类 SearXNG 搜索工具,涵盖网页、新闻、图片、视频、地图、音乐、IT、科学、文件和社交媒体搜索。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"freesearch": {
"command": "uvx",
"args": [
"mcp-server-freesearch"
],
"env": {
"SEARXNG_API_URL": "<SEARXNG_API_URL>"
}
}
}
}
启动命令uvx mcp-server-freesearch
需要配置的环境变量
SEARXNG_API_URL

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-server-freesearch

工具

10

收录的工具列表 · 更新于 2 周前

参数类型必填说明
languagestring否
output_formatstring否
querystring是
safe_searchstring否
time_rangestring否

详细介绍

来自项目 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
方式二:从源码安装
  1. 克隆此仓库:

    git clone <repository-url>
    cd mcp-server-freesearch
    
  2. 安装依赖:

    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 和尺寸
  • 视频搜索: 标题、链接、描述、发布平台和时长(如适用)
  • 其他类别: 标题、链接、描述(以及与类别相关的附加信息)

故障排除

  1. "未找到搜索结果" - 检查网络连接和 SearXNG 实例状态
  2. "Rate limit exceeded" - 等待一段时间后重试,或检查速率限制设置
  3. 连接错误 - 验证 SEARXNG_API_URL 是否正确且可访问
  4. JSON 解析错误 - 检查 SearXNG 实例是否返回有效的响应格式

发布到 PyPI

如果你想发布此包到 PyPI:

  1. 安装构建工具:

    uv pip install build twine
    
  2. 构建包:

    python -m build
    
  3. 上传到 PyPI:

    python -m twine upload dist/*
    

注意:请确保在 pyproject.toml 中更新版本号和仓库 URL。

许可证

本项目基于 MIT 许可证开源。

贡献

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

支持

如果遇到问题,请检查:

  1. Python 版本是否符合要求
  2. 所有依赖是否正确安装
  3. 环境变量是否正确设置
  4. SearXNG 实例是否可访问

更多技术支持,请提交 Issue 到项目仓库。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。