返回市场
爬虫实验室-MCP服务器

爬虫实验室-MCP服务器

作者:crawlab-team6 星标更新:2025-03-18

项目介绍

Crawlab MCP 服务器

这是一个用于 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;

通信流程

  1. 用户查询:用户向 MCP 客户端发送自然语言查询
  2. LLM 处理:客户端将查询转发给 LLM 提供商(例如,Claude、OpenAI)
  3. 工具选择:LLM 识别必要的工具并生成工具调用
  4. 工具执行:客户端将工具调用发送到 MCP 服务器
  5. API 交互:服务器执行相应的 Crawlab API 请求
  6. 响应生成:结果通过服务器返回到客户端再到 LLM
  7. 用户响应:客户端将最终的可读响应传递给用户

安装和使用

方案 1:作为 Python 包安装

你可以将 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

方案 2:本地运行

先决条件

  • Python 3.8+
  • 运行中的 Crawlab 实例且可访问
  • 来自 Crawlab 的 API 令牌

配置

  1. .env.example 文件复制到 .env

    cp .env.example .env
    
  2. 使用你的 Crawlab API 细节编辑 .env 文件:

    CRAWLAB_API_BASE_URL=http://your-crawlab-instance:8080/api
    CRAWLAB_API_TOKEN=your_api_token_here
    

本地运行

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 运行服务器:

    python server.py
    

使用 Docker 运行

  1. 构建 Docker 镜像:

    docker build -t crawlab-mcp-server .
    
  2. 运行容器:

    docker run -p 8000:8000 --env-file .env crawlab-mcp-server
    

与 Docker Compose 集成

要将 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

与 AI 应用程序集成

MCP 服务器使 AI 应用程序能够通过自然语言与 Crawlab 进行交互。根据上面的架构图,这里是如何使用 MCP 系统的方法:

设置连接

  1. 启动 MCP 服务器:确保你的 MCP 服务器正在运行并且可以访问
  2. 配置 AI 客户端:将你的 AI 应用程序连接到 MCP 服务器

示例:与 Claude Desktop 集成

  1. 打开 Claude Desktop
  2. 转到设置 > MCP 服务器
  3. 添加一个新服务器,使用你的 MCP 服务器 URL(例如,http://localhost:8000
  4. 在与 Claude 的对话中,你现在可以通过描述你想做的事情来使用 Crawlab 功能

示例交互

基于我们的架构,这里是系统的一些示例交互:

创建一个爬虫:

用户:"为电子商务项目创建一个新的名为'产品抓取器'的爬虫"
↓
LLM 识别意图并调用 create_spider 工具
↓
MCP 服务器执行对 Crawlab 的 API 调用
↓
爬虫被创建,并将详细信息返回给用户

运行一个任务:

用户:"在所有可用节点上运行'产品抓取器'爬虫"
↓
LLM 调用带有适当参数的 run_spider 工具
↓
MCP 服务器将命令发送到 Crawlab API
↓
任务开始,并将确认返回给用户

可用命令

你可以使用自然语言命令与系统进行交互,例如:

  • "列出我所有的爬虫"
  • "创建具有这些规格的新爬虫..."
  • "显示名为 X 的爬虫的代码"
  • "将主.py 文件的内容更新为蜘蛛 X 的这个代码..."
  • "运行蜘蛛 X 并在我完成时通知我"
  • "显示蜘蛛 X 上次运行的结果"

可用资源和工具

这些是支持自然语言交互的基础工具:

资源

  • 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:将内容保存到文件