项目简介

'mcp-servers' 是 Apify 发布的一个monorepo,包含了一系列经过精心挑选且生产可用的 Model Context Protocol (MCP) 服务器。这些服务器通常作为现有开源 MCP 服务器的封装器,通过标准化的 JSON-RPC 协议向 LLM 客户端提供“资源 (Resources)”、“工具 (Tools)”和“Prompt 模板 (Prompts)”等核心功能。它支持多种传输协议(如Streamable HTTP和SSE),并集成了会话管理、能力声明和Apify平台特有的计费功能。

本项目中的MCP服务器大多采用代理模式:它们自身作为MCP服务器,但会将LLM客户端的请求转发至一个或多个上游的(可能是远程的或由其他进程提供的)MCP服务,并处理响应。这使得LLM客户端能够以统一的方式访问各种功能。

主要功能点

  • 多样化工具集成: 集合了多种功能,例如:
    • Web搜索: 通过Brave Search、Perplexity Sonar等提供强大的Web搜索能力。
    • 内容提取与爬取: 利用Firecrawl工具进行网页爬取和内容提取。
    • 编程文档获取: 通过Context7和Docfork等获取最新代码文档。
    • 多语言翻译: 提供Lara Translate等翻译服务。
    • 数学计算: 包含Calculator服务器进行各种数学运算。
    • 浏览器自动化: Stagehand Browserbase MCP Server 提供浏览器导航、点击、截图等能力。
    • 航班搜索: Kiwi MCP Server 提供航班搜索功能。
    • 图像生成: Everart MCP Server 提供图像生成功能。
  • MCP协议标准化接口: 所有服务器均遵循Model Context Protocol (MCP) 规范,为LLM客户端提供统一、结构化的上下文和服务访问方式。
  • 多传输协议支持: 支持Streamable HTTP和SSE等多种传输协议,方便不同客户端集成。
  • 会话管理与可恢复性: 服务器端负责管理会话状态,支持客户端在断开后重新连接并恢复会话。
  • Apify平台集成: 专为Apify平台优化,提供可靠的托管、扩展、监控、内置分析和按使用量付费等商业化功能。
  • 工具与能力声明: 服务器会向客户端声明其支持的工具、资源和Prompt模板,以便LLM客户端了解其可用功能。

安装步骤 (以'context7-mcp-server'为例)

以下安装步骤适用于在本地运行 'context7-mcp-server' 作为MCP服务器。

  1. 准备环境:

    • 确保您的系统已安装 'Node.js 18+' 和 'npm' (适用于TypeScript服务器)。
    • 确保您的系统已安装 'Python 3.8+' 和 'pip' (适用于Python服务器,如'context7-mcp-server')。
    • 可选: 安装 'Docker' (用于容器化部署)。
  2. 克隆仓库: 打开终端,执行以下命令克隆 'mcp-servers' 仓库:

    git clone https://github.com/apify/mcp-servers.git
  3. 进入目标服务器目录: 以 'context7-mcp-server' 为例,进入其项目目录:

    cd mcp-servers/context7-mcp-server
  4. 安装依赖: 安装该服务器所需的Python依赖:

    pip install -r requirements.txt
  5. 设置API密钥: 'context7-mcp-server' 作为Context7服务的代理,需要一个Context7 API密钥才能连接到上游的Context7 MCP服务器。请确保在运行服务器的环境中设置 'CONTEXT7_API_KEY' 环境变量:

    export CONTEXT7_API_KEY="YOUR_CONTEXT7_API_KEY_HERE"
    # 或者在Windows上:
    # set CONTEXT7_API_KEY="YOUR_CONTEXT7_API_KEY_HERE"

    请将 'YOUR_CONTEXT7_API_KEY_HERE' 替换为您的实际Context7 API密钥。

  6. 运行服务器: 执行以下命令启动 'context7-mcp-server'。该服务器默认将在 '0.0.0.0:5001' 监听请求:

    python -m src.main

    服务器启动后,您会在终端看到类似 "Starting MCP server with client type: ServerType.HTTP and config url='https://mcp.context7.com/mcp' headers={'Authorization': 'Bearer <your_key_prefix>'} timeout=60.0 sse_read_timeout=300.0 auth=None" 的日志信息,表示服务器已成功启动并作为MCP代理运行。

服务器配置 (MCP客户端如何连接)

当您在本地运行上述MCP服务器(例如 'context7-mcp-server')后,您的MCP客户端(如Claude Desktop或Visual Studio Code)需要配置其启动命令以连接到该本地服务器。以下是配置示例:

{
  "mcpServers": {
    "context7": {
      "command": "python",
      "args": ["-m", "src.main"],
      "cwd": "/path/to/your/mcp-servers/context7-mcp-server",
      "env": {
        "CONTEXT7_API_KEY": "YOUR_CONTEXT7_API_KEY_HERE"
      }
    }
  }
}
  • 'context7': 这是您在MCP客户端中为此服务器指定的友好名称,您可以根据需要修改。
  • 'command': 启动MCP服务器进程的命令。对于Python服务器,通常是 'python'。
  • 'args': 传递给 'command' 的参数列表。对于 'context7-mcp-server',它是 '["-m", "src.main"]'。
  • 'cwd': 重要! 指定运行命令的工作目录。请将其替换为您的 'mcp-servers/context7-mcp-server' 目录的绝对路径。
  • 'env': 传递给MCP服务器进程的环境变量。在此处设置 'CONTEXT7_API_KEY',以确保代理服务器能连接到上游Context7服务。

注意: 如果您的MCP客户端支持直接连接到运行中的HTTP MCP服务器(而不是通过启动命令),并且您将此服务器部署到了一个公共可访问的URL(例如作为Apify Actor),那么配置方式将是:

{
  "mcpServers": {
    "context7-apify-host": {
      "type": "http",
      "url": "https://your-apify-actor-url/mcp", // 替换为Apify Actor的实际URL
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN" // 替换为您的Apify API Token (如果需要)
      }
    }
  }
}

基本使用方法

  1. 启动 MCP 服务器: 按照上述安装步骤在本地运行您选择的 MCP 服务器(例如 'context7-mcp-server')。
  2. 配置 MCP 客户端: 将上述 "服务器配置" 中的 JSON 片段添加到您的 MCP 客户端的配置文件中。
  3. 在 LLM 中调用: 一旦配置完成,您的 LLM 客户端将能够发现并调用此 MCP 服务器提供的工具、访问资源或使用 Prompt 模板。例如,如果使用 'context7-mcp-server',LLM 可能会通过调用 'context7_resolve_library_id' 或 'context7_get_library_docs' 工具来查询编程库的文档。LLM 将以其自然语言或特定指令与客户端交互,客户端再将这些请求转化为 MCP 协议消息发送给服务器。

信息

分类

网页与API