项目简介
'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服务器。
-
准备环境:
- 确保您的系统已安装 'Node.js 18+' 和 'npm' (适用于TypeScript服务器)。
- 确保您的系统已安装 'Python 3.8+' 和 'pip' (适用于Python服务器,如'context7-mcp-server')。
- 可选: 安装 'Docker' (用于容器化部署)。
-
克隆仓库: 打开终端,执行以下命令克隆 'mcp-servers' 仓库:
git clone https://github.com/apify/mcp-servers.git -
进入目标服务器目录: 以 'context7-mcp-server' 为例,进入其项目目录:
cd mcp-servers/context7-mcp-server -
安装依赖: 安装该服务器所需的Python依赖:
pip install -r requirements.txt -
设置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密钥。
-
运行服务器: 执行以下命令启动 '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 (如果需要) } } } }
基本使用方法
- 启动 MCP 服务器: 按照上述安装步骤在本地运行您选择的 MCP 服务器(例如 'context7-mcp-server')。
- 配置 MCP 客户端: 将上述 "服务器配置" 中的 JSON 片段添加到您的 MCP 客户端的配置文件中。
- 在 LLM 中调用: 一旦配置完成,您的 LLM 客户端将能够发现并调用此 MCP 服务器提供的工具、访问资源或使用 Prompt 模板。例如,如果使用 'context7-mcp-server',LLM 可能会通过调用 'context7_resolve_library_id' 或 'context7_get_library_docs' 工具来查询编程库的文档。LLM 将以其自然语言或特定指令与客户端交互,客户端再将这些请求转化为 MCP 协议消息发送给服务器。
信息
分类
网页与API