这是一个用于 Crawlab 的模型上下文协议(MCP)服务器,允许 AI 应用程序与 Crawlab 的功能进行交互。
MCP 服务器提供了一种标准化的方式,使 AI 应用程序能够访问 Crawlab 的功能,包括:
MCP 服务器/客户端架构促进了 AI 应用程序与 Crawlab 之间的通信:
graph TB
User[用户] --> Client[MCP 客户端]
Client --> LLM[LLM 提供商]
Client <--> Server[MCP 服务器]
Server <--> Crawlab[Crawlab API]
subgraph "MCP 系统"
Client
Server
end
subgraph "Crawlab 系统"
Crawlab
DB[(数据库)]
Crawlab <--> DB
end
class User,LLM,Crawlab,DB external;
class Client,Server internal;
%% 流程注释
LLM -.-> |工具调用| Client
Client -.-> |执行工具调用| Server
Server -.-> |API 请求| Crawlab
Crawlab -.-> |API 响应| Server
Server -.-> |工具结果| Client
Client -.-> |可读响应| User
classDef external fill:#f9f9f9,stroke:#333,stroke-width:1px;
classDef internal fill:#d9edf7,stroke:#31708f,stroke-width:1px;
你可以将 MCP 服务器作为 Python 包安装,这提供了方便的命令行界面:
# 从源代码安装
pip install -e .
# 或者从 GitHub 安装(当可用时)
# pip install git+https://github.com/crawlab-team/crawlab-mcp-server.git
安装后,你可以使用命令行界面:
# 启动 MCP 服务器
crawlab_mcp-mcp server [--spec PATH_TO_SPEC] [--host HOST] [--port PORT]
# 启动 MCP 客户端
crawlab_mcp-mcp client SERVER_URL
将 .env.example 文件复制到 .env:
cp .env.example .env
使用你的 Crawlab API 细节编辑 .env 文件:
CRAWLAB_API_BASE_URL=http://your-crawlab-instance:8080/api
CRAWLAB_API_TOKEN=your_api_token_here
安装依赖项:
pip install -r requirements.txt
运行服务器:
python server.py
构建 Docker 镜像:
docker build -t crawlab-mcp-server .
运行容器:
docker run -p 8000:8000 --env-file .env crawlab-mcp-server
要将 MCP 服务器添加到现有的 Crawlab Docker Compose 设置中,请在你的 docker-compose.yml 中添加以下服务:
services:
# ... 已有的 Crawlab 服务
mcp-server:
build: ./backend/mcp-server
ports:
- "8000:8000"
environment:
- CRAWLAB_API_BASE_URL=http://backend:8000/api
- CRAWLAB_API_TOKEN=your_api_token_here
depends_on:
- backend
MCP 服务器使 AI 应用程序能够通过自然语言与 Crawlab 进行交互。根据上面的架构图,这里是如何使用 MCP 系统的方法:
http://localhost:8000)基于我们的架构,这里是系统的一些示例交互:
创建一个爬虫:
用户:"为电子商务项目创建一个新的名为'产品抓取器'的爬虫"
↓
LLM 识别意图并调用 create_spider 工具
↓
MCP 服务器执行对 Crawlab 的 API 调用
↓
爬虫被创建,并将详细信息返回给用户
运行一个任务:
用户:"在所有可用节点上运行'产品抓取器'爬虫"
↓
LLM 调用带有适当参数的 run_spider 工具
↓
MCP 服务器将命令发送到 Crawlab API
↓
任务开始,并将确认返回给用户
你可以使用自然语言命令与系统进行交互,例如:
这些是支持自然语言交互的基础工具:
spiders:列出所有爬虫tasks:列出所有任务get_spider:获取特定爬虫的详细信息create_spider:创建新的爬虫update_spider:更新现有爬虫delete_spider:删除爬虫get_task:获取特定任务的详细信息run_spider:运行爬虫cancel_task:取消正在运行的任务restart_task:重新启动任务get_task_logs:获取任务的日志get_spider_files:列出爬虫的文件get_spider_file:获取特定文件的内容save_spider_file:将内容保存到文件