前提条件
- 您的机器上已安装 Node.js 18 或更高版本
- 一个 Avala API 密钥(在 Mission Control 的 Settings > Security 中生成)
设置
Claude Desktop
打开您的 Claude Desktop 配置文件:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Cursor
在项目根目录(或全局配置目录)中创建或编辑.cursor/mcp.json:
VS Code
在您的工作区中创建或编辑.vscode/mcp.json:
Claude Code
使用一条命令将 Avala MCP Server 添加到 Claude Code:ChatGPT
ChatGPT 的 MCP 支持仍在发展中。有关最新的设置说明以及在您所在的套餐和地区的可用性,请参阅 OpenAI 文档。
MCP 安全模式
为了安全起见,MCP Server 默认为只读模式。变更类工具不会被注册,除非您明确启用它们:create_datasetcreate_agent、delete_agentcreate_annotation_issue、update_annotation_issue、delete_annotation_issuecreate_storage_config、delete_storage_configcreate_webhook、delete_webhookcreate_exportevaluate_qualitycompute_consensusfleet_register_device、fleet_acknowledge_alert
可用的 MCP 工具
连接后,AI 助手可以使用以下工具:| 工具 | 描述 |
|---|---|
list_datasets | 列出工作区中的所有数据集。 |
get_dataset | 获取特定数据集的详细信息。 |
create_dataset | 创建新的标注数据集。 mutation |
list_projects | 列出所有标注项目。 |
get_project | 获取项目的完整详情。 |
create_export | 为数据集或项目触发新的导出。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
get_export_status | 检查导出状态。 |
list_exports | 列出所有导出。 |
get_workspace_stats | 获取工作区使用情况摘要。 |
list_tasks | 列出任务,支持可选筛选。 |
get_task | 获取任务详情。 |
list_agents | 列出自动化代理。 |
get_agent | 获取代理详情。 |
create_agent | 创建新的自动化代理。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_agent | 删除代理。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
list_webhooks | 列出 Webhook 订阅。 |
create_webhook | 创建 Webhook 订阅。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_webhook | 删除 Webhook。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
list_storage_configs | 列出存储配置。 |
create_storage_config | 创建存储配置。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
test_storage_config | 测试存储连接。 |
delete_storage_config | 删除存储配置。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
list_quality_targets | 列出项目的质量目标。 |
evaluate_quality | 评估质量目标。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
get_consensus_summary | 获取项目的共识摘要。 |
compute_consensus | 触发共识计算。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
list_organizations | 列出组织。 |
get_organization | 获取组织详情。 |
list_slices | 列出所有者的切片。 |
get_slice | 获取切片详情。 |
list_annotation_issues_by_sequence | 列出序列的标注问题。 |
create_annotation_issue | 创建新的标注问题。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
update_annotation_issue | 更新标注问题。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_annotation_issue | 删除标注问题。(需要 AVALA_MCP_ENABLE_MUTATIONS=true) |
list_annotation_issues_by_dataset | 列出数据集的标注问题。 |
get_annotation_issue_metrics | 获取数据集的问题指标。 |
list_qc_tools | 列出可用的 QC 工具。 |
Fleet(预览版)
Fleet 工具处于预览阶段,可能会发生变化。它们提供对车队设备、录制、事件、警报和规则的读写访问。
| 工具 | 描述 |
|---|---|
fleet_list_devices | 列出车队设备,支持可选筛选。 |
fleet_get_device | 获取特定车队设备的详细信息。 |
fleet_list_recordings | 列出车队录制,支持可选筛选。 |
fleet_get_recording | 获取特定录制的详细信息。 |
fleet_list_events | 列出车队事件,支持可选筛选。 |
fleet_list_alerts | 列出车队警报,支持可选筛选。 |
fleet_list_rules | 列出车队规则,支持可选筛选。 |
fleet_register_device | 注册新的车队设备。 mutation |
fleet_acknowledge_alert | 确认车队警报。 mutation |
工具定义
每个 MCP 工具的详细架构。所有工具以文本内容形式返回 JSON。list_datasets
列出工作区中的所有数据集。 参数:dataType(string, optional) — 按数据类型筛选(image、video、lidar、mcap、splat)name(string, optional) — 按数据集名称筛选(部分匹配)status(string, optional) — 按数据集状态筛选visibility(string, optional) — 按可见性筛选(private或public)limit(number, optional) — 返回的最大数据集数量cursor(string, optional) — 来自上一次请求的分页游标
get_dataset
获取特定数据集的详细信息。 参数:uid(string, required) — 数据集的唯一标识符(UUID)
list_projects
列出所有标注项目。 参数:limit(number, optional) — 返回的最大项目数量cursor(string, optional) — 来自上一次请求的分页游标
get_project
获取特定项目的详细信息。 参数:uid(string, required) — 项目的唯一标识符(UUID)
create_dataset
创建新的标注数据集。 参数:name(string, required) — 数据集的显示名称slug(string, required) — 数据集的 URL 友好标识符dataType(string, required) — 数据类型:image、video、lidar或mcapisSequence(boolean, optional) — 数据集是否包含序列(默认值:false)visibility(string, optional) — 数据集可见性:private或public(默认值:private)createMetadata(boolean, optional) — 是否创建数据集元数据(默认值:true)providerConfig(object, optional) — 云存储提供商配置ownerName(string, optional) — 数据集所有者的用户名或邮箱
create_export
为数据集或项目触发新的导出。 参数:project(string, optional) — 要导出的项目 UIDdataset(string, optional) — 要导出的数据集 UID
get_export_status
检查导出的状态。 参数:uid(string, required) — 导出的唯一标识符(UUID)
list_exports
列出工作区中的所有导出。 参数:limit(number, optional) — 返回的最大导出数量cursor(string, optional) — 来自上一次请求的分页游标
get_workspace_stats
快速查看工作区内容(数据集、项目、导出)。 参数: 无 示例响应:list_tasks
列出任务,支持按项目或状态进行可选筛选。 参数:project(string, optional) — 按项目 UID 筛选status(string, optional) — 按任务状态筛选limit(number, optional) — 返回的最大任务数量cursor(string, optional) — 来自上一次请求的分页游标
get_task
获取特定任务的详细信息。 参数:uid(string, required) — 任务的唯一标识符(UUID)
list_agents
列出工作区中配置的所有自动化代理。 参数:limit(number, optional) — 返回的最大代理数量cursor(string, optional) — 来自上一次请求的分页游标
get_agent
获取特定自动化代理的详细信息。 参数:uid(string, required) — 代理的唯一标识符(UUID)
create_agent
创建一个带有事件订阅和回调 URL 的新自动化代理。 参数:name(string, required) — 代理名称events(string[], required) — 代理订阅的事件类型列表callbackUrl(string, optional) — 接收事件回调的 URLdescription(string, optional) — 代理描述project(string, optional) — 代理作用范围的项目 UIDtaskTypes(string[], optional) — 代理处理的任务类型
delete_agent
按 UID 删除自动化代理。 参数:uid(string, required) — 要删除的代理的唯一标识符(UUID)
list_webhooks
列出工作区中的所有 Webhook 订阅。 参数:limit(number, optional) — 返回的最大 Webhook 数量cursor(string, optional) — 来自上一次请求的分页游标
create_webhook
为特定事件创建新的 Webhook 订阅。 参数:targetUrl(string, required) — 接收 Webhook 投递的 URLevents(string[], required) — 要订阅的事件类型列表
delete_webhook
按 UID 删除 Webhook 订阅。 参数:uid(string, required) — 要删除的 Webhook 的唯一标识符(UUID)
list_storage_configs
列出工作区中的所有存储配置。 参数:limit(number, optional) — 返回的最大存储配置数量cursor(string, optional) — 来自上一次请求的分页游标
create_storage_config
创建新的存储配置(S3 或 Google Cloud Storage)。 参数:name(string, required) — 存储配置的名称provider(string, required) — 存储提供商类型(s3或gcs)s3BucketName(string, optional) — S3 存储桶名称s3BucketRegion(string, optional) — S3 存储桶区域s3BucketPrefix(string, optional) — S3 键前缀s3AccessKeyId(string, optional) — S3 访问密钥 ID(在服务器端安全存储)s3SecretAccessKey(string, optional) — S3 秘密访问密钥(在服务器端安全存储)s3IsAccelerated(boolean, optional) — 启用 S3 Transfer AccelerationgcStorageBucketName(string, optional) — Google Cloud Storage 存储桶名称gcStoragePrefix(string, optional) — Google Cloud Storage 前缀gcStorageAuthJsonContent(string, optional) — GCS 服务账户 JSON 凭据(在服务器端安全存储)
test_storage_config
测试存储配置的连接。 参数:uid(string, required) — 要测试的存储配置的唯一标识符(UUID)
delete_storage_config
按 UID 删除存储配置。 参数:uid(string, required) — 要删除的存储配置的唯一标识符(UUID)
list_quality_targets
列出特定项目配置的质量目标。 参数:projectUid(string, required) — 项目的唯一标识符(UUID)limit(number, optional) — 返回的最大质量目标数量cursor(string, optional) — 来自上一次请求的分页游标
evaluate_quality
评估项目的所有质量目标并返回其当前状态。 参数:projectUid(string, required) — 要评估的项目的唯一标识符(UUID)
get_consensus_summary
获取项目的共识摘要,包括平均值/中位数分数和分布。 参数:projectUid(string, required) — 项目的唯一标识符(UUID)
compute_consensus
触发项目的共识计算。 参数:projectUid(string, required) — 项目的唯一标识符(UUID)
list_organizations
列出您所属的所有组织。 参数:limit(number, optional) — 返回的最大组织数量cursor(string, optional) — 来自上一次请求的分页游标
get_organization
获取特定组织的详细信息。 参数:slug(string, required) — 组织的 slug 标识符
list_slices
列出所有者(用户或组织)的切片。 参数:owner(string, required) — 所有者名称(用户或组织的 slug)limit(number, optional) — 返回的最大切片数量cursor(string, optional) — 来自上一次请求的分页游标
get_slice
获取特定切片的详细信息。 参数:owner(string, required) — 所有者名称(用户或组织的 slug)slug(string, required) — 切片的 slug
list_annotation_issues_by_sequence
列出特定序列的所有标注问题。 参数:sequenceUid(string, required) — 序列的 UUIDdatasetItemUid(string, optional) — 按数据集项 UUID 筛选projectUid(string, optional) — 按项目 UUID 筛选
create_annotation_issue
在序列上创建新的标注问题。 参数:sequenceUid(string, required) — 序列的 UUIDtoolUid(string, required) — 标注工具的 UUIDproblemUid(string, required) — 问题类型的 UUIDdatasetItemUid(string, optional) — 数据集项的 UUIDprojectUid(string, optional) — 项目的 UUIDpriority(string, optional) — 优先级:lowest、low、medium、high、highestseverity(string, optional) — 严重程度:critical、moderatedescription(string, optional) — 问题描述wrongClass(string, optional) — 错误的类别标签correctClass(string, optional) — 正确的类别标签objectUid(string, optional) — 标注对象的 UUIDshouldReAnnotate(boolean, optional) — 是否需要重新标注shouldDelete(boolean, optional) — 是否删除标注framesAffected(string, optional) — 受影响的帧
update_annotation_issue
更新现有的标注问题(状态、优先级等)。 参数:sequenceUid(string, required) — 序列的 UUIDissueUid(string, required) — 标注问题的 UUIDstatus(string, optional) — 状态:open、relabeling、in_review、completed、cant_reproduce、awaiting_feedback、no_action_takenpriority(string, optional) — 优先级:lowest、low、medium、high、highestseverity(string, optional) — 严重程度:critical、moderatedescription(string, optional) — 更新后的描述toolUid(string, optional) — 标注工具的 UUIDproblemUid(string, optional) — 问题类型的 UUIDwrongClass(string, optional) — 错误的类别标签framesAffected(string, optional) — 受影响的帧
delete_annotation_issue
删除标注问题。 参数:sequenceUid(string, required) — 序列的 UUIDissueUid(string, required) — 要删除的标注问题的 UUID
list_annotation_issues_by_dataset
列出数据集的所有标注问题。 参数:owner(string, required) — 数据集所有者的用户名datasetSlug(string, required) — 数据集的 slugsequenceUid(string, optional) — 按序列 UUID 筛选
get_annotation_issue_metrics
获取数据集中标注问题的聚合指标(状态/优先级/严重程度计数、关闭时间)。 参数:owner(string, required) — 数据集所有者的用户名datasetSlug(string, required) — 数据集的 slugsequenceUid(string, optional) — 按序列 UUID 筛选
list_qc_tools
列出指定数据集类型可用的 QC 标注工具。 参数:datasetType(string, required) — 数据集类型(例如lidar、image、video)
fleet_list_devices
列出车队设备,支持可选筛选。 参数:status(string, optional) — 按设备状态筛选(online、offline、maintenance)type(string, optional) — 按设备类型筛选limit(number, optional) — 返回的最大设备数量cursor(string, optional) — 分页游标
fleet_get_device
获取特定车队设备的详细信息。 参数:uid(string, required) — 设备的唯一标识符
fleet_list_recordings
列出车队录制,支持可选筛选。 参数:device(string, optional) — 按设备 UID 筛选status(string, optional) — 按录制状态筛选limit(number, optional) — 返回的最大录制数量cursor(string, optional) — 分页游标
fleet_get_recording
获取特定录制的详细信息。 参数:uid(string, required) — 录制的唯一标识符
fleet_list_events
列出车队事件,支持可选筛选。 参数:recording(string, optional) — 按录制 UID 筛选device(string, optional) — 按设备 UID 筛选type(string, optional) — 按事件类型筛选severity(string, optional) — 按严重程度筛选limit(number, optional) — 返回的最大事件数量cursor(string, optional) — 分页游标
fleet_list_alerts
列出车队警报,支持可选筛选。 参数:status(string, optional) — 按警报状态筛选(open、acknowledged、resolved)severity(string, optional) — 按严重程度筛选(info、warning、error、critical)device(string, optional) — 按设备 UID 筛选rule(string, optional) — 按规则 UID 筛选limit(number, optional) — 返回的最大警报数量cursor(string, optional) — 分页游标
fleet_list_rules
列出车队规则,支持可选筛选。 参数:enabled(boolean, optional) — 按启用状态筛选limit(number, optional) — 返回的最大规则数量cursor(string, optional) — 分页游标
fleet_register_device
注册新的车队设备。 参数:name(string, required) — 设备名称type(string, required) — 设备类型firmwareVersion(string, optional) — 固件版本tags(string[], optional) — 设备标签
fleet_acknowledge_alert
确认车队警报。 参数:uid(string, required) — 要确认的警报的唯一标识符
使用示例
可以通过自然语言运行的多步骤工作流。每个示例展示了助手在后台进行的工具调用。示例 1:数据集健康检查
向助手提问:「检查一下我的工作区——我有多少个数据集,哪些数据集的项目数最多?」 步骤 1 — 助手调用get_workspace_stats 获取概览。
list_datasets,设置 limit: 50 获取所有数据集。
步骤 3 — 助手按 itemCount 排序结果并呈现排名摘要:
您有 14 个数据集。最大的三个是:
- Warehouse Cameras — 34,200 个项目(image)
- Urban Driving Q1 — 12,450 个项目(lidar)
- Parking Lot Footage — 8,900 个项目(video)
示例 2:导出和下载
向助手提问:「导出 Urban Driving Q1 项目,准备好了告诉我。」 步骤 1 — 助手调用list_projects 查找与「Urban Driving Q1」匹配的项目 UID。
步骤 2 — 助手使用项目 UID 调用 create_export。
get_export_status,直到状态变为 completed。
您的导出已准备就绪(50 MB)。在此处下载:https://api.avala.ai/exports/.../download
示例 3:跨项目质量审计
向助手提问:「评估我所有项目的质量目标,标记未通过的项目。」 步骤 1 — 助手调用list_projects 获取所有项目。
步骤 2 — 对于每个项目,助手使用项目 UID 调用 evaluate_quality。
步骤 3 — 助手汇总结果并突出显示未通过的项目:
7 个项目中有 5 个通过了所有质量目标。两个需要关注:
- Sidewalk Segmentation — 「标签准确率」目标为 88%(阈值:95%)
- Fleet Camera Review — 「共识分数」目标为 0.72(阈值:0.85)
示例 4:车队设备监控
向助手提问:「显示所有尚未确认的车队警报,按严重程度分组。」 步骤 1 — 助手调用fleet_list_alerts,设置 status: "open"。
步骤 2 — 助手对响应进行分组和格式化:
Critical(1 条)步骤 3 — 您可以继续提问:「确认所有 warning 级别的警报。」 助手将为每个 warning 警报的 UID 调用Warning(2 条)
- Dock Camera 3 — 「设备离线超过 24 小时」(自 3 月 18 日起)
- Forklift Sensor Unit 12 — 「设备温度超过阈值(72C)」(自 3 月 19 日起)
- Rooftop LiDAR 1 — 「磁盘空间不足(< 5%)」(自 3 月 19 日起)
fleet_acknowledge_alert。
示例 5:标注问题分类
向助手提问:「获取 urban-driving-q1 数据集的标注问题指标,显示详细分类。」 步骤 1 — 助手使用所有者和数据集 slug 调用get_annotation_issue_metrics。
步骤 2 — 助手展示格式化的摘要:
Urban Driving Q1 — 问题指标 按状态:12 个 open,5 个 in review,3 个 relabeling,45 个 completed 按严重程度:8 个 critical,57 个 moderate 按优先级:2 个 highest,6 个 high,18 个 medium,25 个 low,14 个 lowest 平均关闭时间:4.2 小时步骤 3 — 您继续提问:「列出打开的 critical 问题。」 助手使用筛选条件调用
list_annotation_issues_by_dataset 并显示结果。
提示词示例
以下是一些可以在任何 MCP 兼容客户端中使用的自然语言提示词:故障排除
AVALA_API_KEY 未设置
如果 AVALA_API_KEY 环境变量缺失,MCP Server 会立即以错误代码 1 退出。请确保在 MCP 配置的 env 块中设置了密钥,或在启动服务器之前在 shell 中导出了该变量。
变更类工具未显示
如果create_export、create_agent 或 fleet_register_device 等工具未出现在工具列表中,您需要在服务器环境中设置 AVALA_MCP_ENABLE_MUTATIONS=true。将其添加到 MCP 配置文件的 env 块中:
npx 未找到或 Node.js 版本不正确
MCP Server 需要 Node.js 18 或更高版本。如果您看到 npx: command not found 或模块语法错误,请验证您的 Node.js 版本:
缓存的旧版 MCP Server
如果您最近更新了@avala-ai/mcp-server 包,但仍然看到旧的行为或缺少工具,npx 可能在使用缓存的版本。强制重新安装:
API 密钥无效或已过期
如果工具调用返回401 Unauthorized,您的 API 密钥可能无效、已过期或已被撤销。在 Mission Control 的 Settings > Security 中生成新密钥,并更新您的 MCP 配置。
Avala MCP Server 是开源的。访问 GitHub 仓库查看源代码或参与贡献。