本项目提供了一个模型上下文协议(MCP)服务器,允许使用 label-studio-sdk 与 Label Studio 实例进行交互。它支持通过自然语言或来自 MCP 客户端的结构化调用,以编程方式管理标注项目、任务和预测。使用这个 MCP 服务器,你可以发起如下请求:
本 MCP 服务器允许你通过自然语言或结构化调用,对 Label Studio 实例中的标注项目、任务和预测进行编程式管理。在使用前,请确保满足以下先决条件,并按照安装和配置步骤进行操作。
label-studio-sdk 进行通信。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 密钥。主要有两种配置方式:
在运行服务器之前,在终端会话中设置以下环境变量:
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() 读取这些变量。
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 安装 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_version 和 score。create_label_studio_project_tool 创建一个新项目。tasks.json)。import_label_studio_project_tasks_tool 导入任务,提供步骤 1 中的项目 ID 和 tasks.json 的路径。list_label_studio_project_tasks_tool 列出任务 ID。get_label_studio_task_data_tool 获取特定任务的数据。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_URL、LABEL_STUDIO_API_KEY)。
文档中未提及相关信息。
如有疑问或需要支持,请通过 GitHub Issues 联系我们。