项目简介

Pulse MCP 服务器是 Pulse 平台的核心组件之一,旨在为大型语言模型(LLM)客户端提供丰富的上下文信息和外部功能。它集成 Firecrawl 进行企业级网页抓取,并结合语义搜索功能,让 LLM 能够高效地与互联网和本地数据交互,帮助用户扩展 LLM 的能力边界,实现更智能、更具体的任务。

主要功能点

  • 网页抓取 (Scrape): 从指定 URL 抓取网页内容,支持多策略抓取(如使用 Playwright 渲染 JavaScript 页面)和智能内容清理,确保 LLM 获得高质量的文本输入。
  • 全站爬取 (Crawl): 批量抓取整个网站的内容,用于构建网站的全面知识库,适合需要深度了解某个网站或收集大量数据的场景。
  • 网站地图 (Map): 快速发现网站上的所有链接,构建网站结构图,支持通过 Sitemap 和子域名发现,以及对发现的 URL 进行筛选。
  • 网络搜索 (Search): 利用 Firecrawl 进行高级网络搜索,可筛选网页、图片和新闻结果,并支持按时间范围、国家、语言等条件进行过滤。
  • 信息查询 (Query): 对已抓取或本地索引的内容进行语义搜索,提供精准的信息检索能力,帮助 LLM 从海量数据中快速找到相关信息。
  • 内容提取 (Extract): 使用大型语言模型(LLM)根据用户提供的 Prompt 或 Schema 从网页中提取结构化数据,实现自动化数据收集和整理。
  • 本地文件索引: 自动监控本地文件目录(如 Markdown 和文本文件),将其内容索引到语义搜索中,使 LLM 可以查询本地文档和笔记。
  • 资源管理: 存储和管理所有抓取、清理和提取后的内容作为可访问的 MCP 资源,支持内存、文件系统和 PostgreSQL 等多种存储方式。

安装步骤

  1. 前提条件: 确保您的系统已安装 Docker 和 Docker Compose (v2.0+),以及 Git。
  2. 克隆仓库: 打开您的终端或命令行工具,执行以下命令克隆 Pulse 仓库:
    git clone https://github.com/jmagar/pulse.git
    cd pulse
  3. 配置环境变量: 复制示例环境变量文件并进行编辑。至少需要设置 'POSTGRES_PASSWORD' 和 'WEBHOOK_API_SECRET'。如果需要 LLM 进行内容提取,还需要设置 'MCP_LLM_API_BASE_URL' 等 LLM 相关变量。
    cp docker/.env.example docker/.env
    # 使用文本编辑器打开 docker/.env 文件,根据你的需求配置数据库密码、API 密钥等
    # 例如:
    # POSTGRES_PASSWORD=your_secure_password
    # WEBHOOK_API_SECRET=another_secret_key
    # MCP_LLM_API_BASE_URL=https://api.openai.com/v1
    # MCP_LLM_API_KEY=sk-your_openai_key
  4. 启动服务: 使用 Docker Compose 在后台启动所有 Pulse 服务,包括 MCP 服务器、Firecrawl API 和 Webhook Bridge 等。
    docker compose up -d
  5. 验证服务: 确认 MCP 服务器及其他服务已成功启动并可访问:
    curl http://localhost:50107/health # 检查 MCP 服务器状态,应返回健康信息
    您还可以访问 Web UI: 'http://localhost:3000'。

服务器配置

此 Pulse MCP 服务器可以通过两种主要方式与 MCP 客户端通信:作为由客户端启动的本地进程(使用 'stdio' 协议),或作为后台运行的服务(通过 HTTP/WebSocket 协议)。请根据您的 MCP 客户端的具体要求选择合适的配置。

情景一:作为由客户端启动的本地进程(推荐用于本地开发和集成)

许多 MCP 客户端(如某些 LLM 桌面应用)允许您配置一个命令及其参数来启动本地 MCP 服务器。Pulse MCP 服务器的配置信息大致如下:

  • 'server_name': 'Pulse MCP Server'
    • 在 MCP 客户端界面中显示的服务器名称。
  • 'command': 'docker'
    • 用于启动服务器的可执行命令,这里是 'docker' 命令,用于管理容器。
  • 'args': 一个包含以下字符串的列表,作为 'docker' 命令的参数:
    • 'compose': 'docker' 命令的子命令,用于管理多容器 Docker 应用。
    • 'run': 运行一次性容器。
    • '--rm': 容器停止后自动删除,保持环境整洁。
    • '-p 50107:3060': 将宿主机的 50107 端口映射到容器内部的 3060 端口,确保外部可访问 MCP 服务。
    • 'pulse_mcp': 'docker-compose.yaml' 文件中定义的 MCP 服务名称。
    • 'node': 在容器内部执行的 Node.js 命令。
    • 'dist/index.js': Pulse MCP 服务器的入口 JavaScript 文件。
    • '--stdio': 指示 MCP 服务器通过标准输入/输出(stdin/stdout)进行通信,这是客户端启动本地进程的常见方式。
  • 'host': 'localhost'
    • 服务器运行的主机地址,通常是您的本地机器。
  • 'port': '50107'
    • MCP 服务器在宿主机上监听的端口。
  • 'protocol': 'stdio'
    • 客户端与服务器通信所使用的协议类型。

情景二:作为后台服务通过 HTTP/WebSocket 连接

如果 Pulse MCP 服务器已作为 Docker 服务在后台持续运行 ('docker compose up -d'),并且您的 MCP 客户端支持直接通过 HTTP 或 WebSocket 进行连接,您可以将服务器的连接端点配置为:

  • HTTP 连接端点: 'http://localhost:50107/mcp'
    • 这是 MCP 服务器的 JSON-RPC API 端点。

请根据您的 MCP 客户端的具体配置界面和支持的协议类型,选择上述适合您的配置方式。

基本使用方法

  1. 通过 MCP Inspector 工具测试 (无需 LLM 客户端): 在 MCP 服务器成功启动后,您可以使用 '@modelcontextprotocol/inspector' 工具进行交互式测试。该工具提供一个 Web UI,无需 LLM 客户端即可探索 MCP 服务器的功能:

    npx @modelcontextprotocol/inspector http://localhost:50107/mcp

    这会在浏览器中打开一个交互式界面,您可以初始化 MCP 会话,查看服务器提供的所有工具列表(例如 'scrape', 'crawl', 'map', 'search', 'query' 等),并直接运行这些工具的模拟测试。

  2. 集成到 LLM 客户端: 将上述“服务器配置”部分提供的配置信息添加到您支持 MCP 协议的 LLM 客户端(如 Anthropic Claude Desktop)中。配置完成后,您的 LLM 即可通过调用 Pulse MCP 服务器提供的工具,执行网页抓取、信息搜索、本地文件查询等高级任务。

    示例 LLM 交互:

    • 网页抓取: 向 LLM 提问:“请使用 'scrape' 工具抓取 'https://www.example.com' 的内容。”
    • 网站地图: 向 LLM 提问:“使用 'map' 工具获取 'https://docs.docker.com' 网站的前 100 个链接。”
    • 语义搜索: 向 LLM 提问:“在本地文档中查询有关 Docker 网络配置的信息。”

信息

分类

网页与API