Label Studio Mcp Server

Label Studio Mcp Server

🚀 Label Studio MCP Server

本项目提供了一个模型上下文协议(MCP)服务器,允许使用 label-studio-sdk 与 Label Studio 实例进行交互。它支持通过自然语言或来自 MCP 客户端的结构化调用,以编程方式管理标注项目、任务和预测。使用这个 MCP 服务器,你可以发起如下请求:

  • "在 Label Studio 中使用这些数据创建一个项目..."
  • "我的 RAG 审核项目中有多少任务已标注?"
  • "为我的任务添加预测。"
  • "更新我的标注模板,加入一个评论框。"

🚀 快速开始

本 MCP 服务器允许你通过自然语言或结构化调用,对 Label Studio 实例中的标注项目、任务和预测进行编程式管理。在使用前,请确保满足以下先决条件,并按照安装和配置步骤进行操作。

✨ 主要特性

  • 项目管理:创建、更新、列出和查看 Label Studio 项目的详细信息和配置。
  • 任务管理:从文件导入任务,列出项目内的任务,并检索任务数据和标注信息。
  • 预测集成:为特定任务添加模型预测。
  • SDK 集成:借助官方的 label-studio-sdk 进行通信。

📦 安装指南

先决条件

  1. 运行中的 Label Studio 实例:你需要一个可从 MCP 服务器运行位置访问的 Label Studio 实例。
  2. API 密钥:从 Label Studio 的用户账户设置中获取 API 密钥。
  3. Python 环境:建议使用安装了 uv 进行包管理的 Python 3.x 环境。

安装步骤

按照以下说明安装服务器:

git clone https://github.com/HumanSignal/label-studio-mcp-server.git
cd label-studio-mcp-server

# 使用 uv 安装依赖
uv venv
source .venv/bin/activate
uv sync

📚 详细文档

配置

MCP 服务器需要你的 Label Studio 实例的 URL 和 API 密钥。主要有两种配置方式:

1. 环境变量

在运行服务器之前,在终端会话中设置以下环境变量:

export LABEL_STUDIO_URL='http://localhost:8080' # 替换为你的 Label Studio URL
export LABEL_STUDIO_API_KEY='your_actual_api_key_here'

python label-studio-mcp.py

Python 脚本会使用 os.getenv() 读取这些变量。

2. MCP 客户端配置(例如 Cursor 的 mcp.json

如果通过 MCP 客户端配置文件启动服务器,你可以直接在服务器定义中指定环境变量。对于由客户端管理的服务器,这种方式通常更受青睐。

示例 mcp.json 条目:

{
"mcpServers": {
"label-studio": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/label-studio-mcp-server", // <-- 更新此路径
"run",
"label-studio-mcp.py"
],
"env": {
"LABEL_STUDIO_API_KEY": "your_actual_api_key_here", // <-- 你的 API 密钥
"LABEL_STUDIO_URL": "http://localhost:8080"
}
}
}
}

按此方式配置后,env 块会将变量注入服务器进程环境,脚本的 os.getenv() 调用将获取这些变量。

为 Claude Desktop 安装

要为 Claude Desktop 安装 MCP 服务器,你可以从本仓库的根目录运行以下命令:

mcp install -e . -v LABEL_STUDIO_API_KEY= -v LABEL_STUDIO_URL= label-studio-mcp.py

工具

MCP 服务器提供以下工具:

项目管理

  • get_label_studio_projects_tool():列出可用项目(ID、标题、任务数量)。
  • get_label_studio_project_details_tool(project_id: int):检索特定项目的详细信息。
  • get_label_studio_project_config_tool(project_id: int):获取项目的 XML 标注配置。
  • create_label_studio_project_tool(title: str, label_config: str, ...):使用标题、XML 配置和可选设置创建一个新项目。返回包含 URL 的项目详细信息。
  • update_label_studio_project_config_tool(project_id: int, new_label_config: str):更新现有项目的 XML 标注配置。

任务管理

  • list_label_studio_project_tasks_tool(project_id: int):列出项目内的任务 ID(最多 100 个)。
  • get_label_studio_task_data_tool(project_id: int, task_id: int):检索特定任务的数据负载。
  • get_label_studio_task_annotations_tool(project_id: int, task_id: int):获取特定任务的现有标注。
  • import_label_studio_project_tasks_tool(project_id: int, tasks_file_path: str):从 JSON 文件(包含任务对象列表)导入任务到项目中。返回导入摘要和项目 URL。

预测

  • create_label_studio_prediction_tool(task_id: int, result: List[Dict[str, Any]], ...):为特定任务创建预测。需要以符合 Label Studio 格式的字典列表作为预测结果。可选参数 model_versionscore

示例用例

  1. 使用 create_label_studio_project_tool 创建一个新项目。
  2. 准备一个包含任务数据的 JSON 文件(tasks.json)。
  3. 使用 import_label_studio_project_tasks_tool 导入任务,提供步骤 1 中的项目 ID 和 tasks.json 的路径。
  4. 使用 list_label_studio_project_tasks_tool 列出任务 ID。
  5. 使用 get_label_studio_task_data_tool 获取特定任务的数据。
  6. 生成一个预测结果结构(字典列表)。
  7. 使用 create_label_studio_prediction_tool 添加预测。

运行服务器

MCP 服务器可以直接使用 Python 运行:

python label-studio-mcp.py [options]

选项

  • --transport {http|stdio}:指定通信传输方式(默认:stdio)。
  • --port PORT:设置 HTTP 传输的端口号(默认:3000)。
  • --host HOST:设置 HTTP 传输的主机地址(默认:0.0.0.0)。

运行前请确保设置了所需的环境变量(LABEL_STUDIO_URLLABEL_STUDIO_API_KEY)。

📄 许可证

文档中未提及相关信息。

🔗 联系我们

如有疑问或需要支持,请通过 GitHub Issues 联系我们。

  • 0 关注
  • 0 收藏,21 浏览
  • system 提出于 2025-09-21 06:27

相似服务问题

相关AI产品