项目简介

Pixeltable MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 LLM 应用提供多模态数据上下文服务。它利用 Pixeltable 强大的数据处理能力,实现了音频、视频、图像和文档等多种非结构化数据的索引和语义搜索,并以标准化的 MCP 协议与客户端进行交互,方便 LLM 应用集成和调用。

主要功能点

  • 多模态数据索引: 支持音频、视频、图像和文档四种类型数据的索引创建和管理。
  • 语义搜索: 针对索引数据提供强大的语义搜索功能,可以根据文本描述检索相关内容。
  • 工具 (Tools) 注册与执行: 通过 MCP 协议暴露 Pixeltable 的数据处理和查询能力,允许 LLM 客户端调用预定义的工具 (Tools) 来操作数据,例如创建索引、插入数据、执行查询等。
  • 资源 (Resources) 管理: 虽然仓库信息中没有明确提及资源管理,但基于 Pixeltable 的数据表和视图可以被视为一种资源管理形式,MCP 服务器通过工具提供数据访问能力。
  • Prompt 模板: 虽然仓库代码没有直接体现 Prompt 模板功能,但作为 MCP 服务器,理论上支持 Prompt 模板的定义和渲染,以便客户端定制 LLM 交互模式。
  • SSE 传输协议: 使用 Server-Sent Events (SSE) 作为主要的客户端-服务器通信协议,实现实时的请求和响应。
  • 会话管理: MCP 服务器负责会话管理,能够维护客户端连接状态。

安装步骤

  1. 安装 Pixeltable Python SDK:

    pip install pixeltable
  2. 克隆 GitHub 仓库:

    git clone https://github.com/pixeltable/pixeltable-mcp-server.git
  3. 进入服务器目录:

    cd pixeltable-mcp-server/servers
  4. 使用 Docker Compose 启动服务器: 根据需要启动不同的服务,例如启动音频索引服务器:

    docker-compose up --build audio-index

    或者启动视频索引服务器:

    docker-compose up --build video-index

    也可以一次性启动所有服务:

    docker-compose up --build

    停止服务可以使用命令:

    docker-compose down

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能建立连接。以下是针对不同服务的配置信息示例 (JSON 格式):

音频索引服务器 (audio-index):

{
  "server name": "Pixeltable Audio Index Server",
  "command": "docker-compose",
  "args": [
    "up",
    "--build",
    "audio-index" // 启动音频索引服务
  ]
}

视频索引服务器 (video-index):

{
  "server name": "Pixeltable Video Index Server",
  "command": "docker-compose",
  "args": [
    "up",
    "--build",
    "video-index" // 启动视频索引服务
  ]
}

图像索引服务器 (image-index):

{
  "server name": "Pixeltable Image Index Server",
  "command": "docker-compose",
  "args": [
    "up",
    "--build",
    "image-index" // 启动图像索引服务
  ]
}

文档索引服务器 (doc-index):

{
  "server name": "Pixeltable Document Index Server",
  "command": "docker-compose",
  "args": [
    "up",
    "--build",
    "doc-index" // 启动文档索引服务
  ]
}

基础 SDK 服务器 (base-sdk):

{
  "server name": "Pixeltable Base SDK Server",
  "command": "docker-compose",
  "args": [
    "up",
    "--build",
    "base-sdk" // 启动基础 SDK 服务
  ]
}

注意: 实际使用时,MCP 客户端需要连接到服务器的 '/sse' 端点,例如 'http://localhost:8080/sse' (音频索引服务器默认端口为 8080)。端口号根据启动的服务类型有所不同 (音频: 8080, 视频: 8081, 图像: 8082, 文档: 8083, 基础 SDK: 8080)。

基本使用方法

  1. 启动 MCP 服务器: 根据上述安装步骤和服务器配置启动所需类型的 Pixeltable MCP 服务器。

  2. 连接 MCP 客户端: 使用支持 MCP 协议的客户端连接到服务器的 '/sse' 端点。

  3. 调用工具 (Tools): 通过 MCP 客户端发送 JSON-RPC 请求来调用服务器提供的工具 (Tools)。例如,对于音频索引服务器,可以调用 'setup_audio_index' 工具创建音频索引,调用 'insert_audio' 工具插入音频文件,调用 'query_audio' 工具查询音频内容。

    具体的工具列表和参数定义可以在仓库的 'servers/[server-type]/tools.py' 文件中查看。例如,音频索引服务器的工具定义在 'servers/audio-index/tools.py' 文件中。

  4. 处理响应: MCP 服务器会返回 JSON-RPC 响应,客户端需要解析响应并处理结果。

示例工具调用 (以音频索引服务器为例)

假设要使用 MCP 客户端调用音频索引服务器的 'setup_audio_index' 工具,客户端需要发送如下 JSON-RPC 请求 (示例):

{
  "jsonrpc": "2.0",
  "method": "setup_audio_index",
  "params": {
    "table_name": "my_podcasts",
    "openai_api_key": "YOUR_OPENAI_API_KEY" // 替换为你的 OpenAI API Key
  },
  "id": "1"
}

服务器会返回 JSON-RPC 响应,告知索引创建是否成功。其他工具的调用方式类似,只需根据工具定义修改 'method' 和 'params' 字段。

信息

分类

数据库与文件