Rastro MCP
用于Rastro目录操作的MCP服务器。公开目录、服务、执行和本地可视化工具,供Claude、Codex或任何兼容MCP的客户端使用。
安装
来自PyPI (一经发布):
pip install rastro.ai
# or
uv add rastro.ai来源:
git clone https://github.com/Rastro-AI/rastro-mcp
cd rastro-mcp
uv sync所需环境
export RASTRO_AUTH_TOKEN= # Preferred: user token or API key
# export RASTRO_USER_TOKEN= # Equivalent user-token alias
# export RASTRO_API_KEY=rastro_pk_... # API-key alias
export RASTRO_BASE_URL=https://catalogapi.rastro.ai/api # Production (default)
# export RASTRO_BASE_URL=http://127.0.0.1:8000/api # Local dev
# export RASTRO_ORGANIZATION_ID= # Recommended for user tokens; picks the target org跑
# stdio transport (for MCP clients)
uv run python -m rastro_mcp.server
# or via CLI entry point (if installed from package)
rastro-mcp克劳德代码/克劳德桌面配置
添加 .mcp.json 或 claude_desktop_config.json:
{
"mcpServers": {
"rastro": {
"command": "uv",
"args": ["run", "python", "-m", "rastro_mcp.server"],
"env": {
"RASTRO_AUTH_TOKEN": "",
"RASTRO_ORGANIZATION_ID": "",
"RASTRO_BASE_URL": "https://catalogapi.rastro.ai/api"
}
}
}
}工具参考
目录工具
catalog_list
列出已验证组织的所有目录。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
limit | integer | 50 | 要返回的最大结果 |
offset | 整数 | 0 | 分页偏移 |
catalog_get
按ID获取单个目录,包括元数据和项目计数。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
catalog_delete
删除目录(不可逆)。需要明确的确认短语。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
confirm | boolean | 否 | 必须是 true 执行 |
confirmation | string | no | 必须完全匹配 DELETE |
expected_name | string | no | 安全检查:必须与目录名称匹配 |
catalog_duplicate
复制目录架构,并可选择复制源项。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 源目录UUID |
name | string | no | 新目录的名称 |
description | string | no | 新目录的描述 |
include_items | boolean | no | 复制项目(默认值:false) |
catalog_schema_get
获取包含字段类型、描述、范围和工作流元数据的目录架构定义。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
version | string | no | 架构版本(默认:当前) |
catalog_taxonomy_get
获取具有层次结构、属性和继承的目录分类。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
catalog_update_quality_prompt
设置评判工具和准备检查使用的目录质量提示。完全替换当前提示。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
prompt | string | yes | 质量提示文本(判断行的标准) |
catalog_items_query
使用分页、文本搜索和字段排序查询目录项。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
limit | integer | no | 最大结果(默认值:50) |
offset | integer | no | 分页偏移量(默认值:0) |
search | string | 否 | 全文搜索查询 |
sort_field | string | no | 排序依据的字段 |
sort_order | string | 否 | asc 或 desc (默认值:asc) |
catalog_item_get
按ID获取具有完整数据、实体类型和分类属性的单个目录项。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
item_id | string | yes | 项目UUID(数据库ID) |
catalog_item_update
直接更新单个目录项的数据。 默认情况下已禁用 --使用 catalog_activity_create_transform 相反。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
item_id | string | yes | 项目UUID |
data | object | yes | 要更新的键值对 |
启用 RASTRO_MCP_ENABLE_DIRECT_ITEM_UPDATE=true (仅限打碎玻璃)。
catalog_activity_list
使用可选的状态/类型筛选器列出目录的活动。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
status | string | 否 | 筛选器: pending_review, completed等等。 |
activity_type | string | 否 | 筛选器: custom_transform等等。 |
limit | integer | no | 最大结果(默认值:20) |
offset | integer | no | 分页偏移量(默认值:0) |
catalog_activity_get
按ID获取具有完整元数据的单个活动。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
activity_id | string | yes | 活动UUID |
catalog_activity_get_staged_changes
获取待处理活动的阶段性更改。返回数据对前后分页的结果。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
activity_id | string | yes | 活动UUID |
limit | integer | no | 每页最大结果数(默认值:50) |
offset | integer | no | 分页偏移量(默认值:0) |
catalog_visualize_local
为目录或活动的阶段性更改构建一个自包含的本地HTML查看器,然后可以选择在默认浏览器中打开它。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | 条件 | 要可视化的目录UUID |
activity_id | string | 条件 | 要可视化的活动UUID |
mode | string | 否 | auto, catalog,或 activity (默认:自动) |
title | string | no | 查看器中显示的自定义标题 |
limit | integer | no | 要加载的最大匹配记录数(默认值:500) |
offset | integer | no | 偏移到匹配的记录中(默认值:0) |
search | string | no | 传递给后端的可选搜索筛选器 |
output_dir | string | no | 工件输出目录(默认: ./work/visualizations) |
open_browser | boolean | no | 工件生成后打开尽力而为的浏览器(默认值:true) |
输出a bundle.json,静态 viewer.html,以及本地主机 viewer_url.更喜欢 viewer_url 过度开放 viewer.html 直接;localhost路径为远程图像/文档启用本地媒体代理。当浏览器启动失败时(例如在无头shell中),工件文件仍然可用。
catalog_activity_create_transform
使用分阶段更改、脚本来源和审核元数据创建自定义转换活动。验证捆绑包,将所有更改分阶段到一个待处理的审核活动中(如果需要,在内部分块),并打开仪表板审核URL。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目标目录UUID |
activity_message | string | yes | 人类可读的描述 |
script | 对象 | 否 | {filename, content, sha256} 用于审计 |
diff_summary | 对象 | 否 | 来源 execution_local_diff_compute |
validation_report | 对象 | 否 | 来源 execution_bundle_validate |
staged_changes_inline | array | no | 内联分段更改 |
staged_changes_file_path | string | 否 | 路径 .jsonl/.json/.parquet 文件 |
schema_changes | object | 否 | 要应用的架构更改 |
taxonomy_changes | object | 否 | 要应用的分类更改 |
attachments | array | 否 | 存储在 activity_context.attachments |
activity_context | object | 否 | 其他审核上下文 |
base_snapshot_id | string | no | 审计跟踪的快照ID |
auto_open_review | boolean | 否 | 打开仪表板URL(默认值:true) |
catalog_activity_save_workflow
将活动另存为可重用的工作流模板。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
activity_id | string | yes | 活动UUID |
workflow_name | string | yes | 已保存工作流的名称 |
workflow_description | string | 否 | 描述 |
python_code | string | no | 转换代码 |
attachments | array | 否 | 附件元数据 |
timeout_seconds | integer | no | 执行超时(默认值:120) |
catalog_snapshot_list
列出回滚/历史记录的目录快照。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
snapshot_type | string | 否 | 按类型筛选 |
limit | integer | no | 最大结果(默认值:20) |
offset | integer | no | 分页偏移量(默认值:0) |
catalog_snapshot_create
为回滚安全创建手动快照。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
reason | string | no | 原因(默认:“MCP手动快照”) |
catalog_snapshot_restore
将目录还原到特定快照。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
snapshot_id | string | yes | 要还原的快照UUID |
维修工具
service_map_to_catalog_schema
使用AI富集将源项映射到目标目录模式。始终与 web_search=false.
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目标目录UUID |
items | array | yes | 要映射的源项 |
prompt | string | no | 映射指令(默认:“将源字段映射到目标目录架构”) |
async_mode | boolean | no | 异步运行(默认值:false) |
speed | string | 否 | fast, medium,或 slow (默认值:中等) |
service_judge_catalog_rows
判断目录行的数据质量。当 catalog_id 提供,自动加载目录的模式和quality_prompt(来自readines_config)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
rows | array | yes | 要计算的行数(最多500行) |
catalog_id | string | no | 目录UUID(自动加载架构+quality_prompt) |
schema | object | no | 内联模式(仅在没有catalog_id时需要) |
prompt | string | no | 额外说明(附加到目录的quality_prompt) |
model | string | no | 模型预设(默认:快速) |
max_rows | integer | no | 每个请求的最大行数(默认值:200) |
service_image_run
提交图像编辑作业。支持:生成、编辑、输入、bg_remove、重新点亮、升级。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
tool | string | 是 | generate, edit, inpaint, bg_remove, relight, upscale |
image_url | string | 条件 | 输入图像(编辑/输入/bg_remove/重新点亮/升级所需) |
mask_url | string | conditional | 蒙版图像(inpaint所需) |
prompt | string | conditional | 文本提示(生成/编辑/输入所需) |
provider | string | no | 模型提供程序覆盖 |
quality | string | 否 | high 或 low |
size | string | 否 | 输出大小 |
num_options | integer | no | 结果数(默认值:1) |
catalog_id | string | no | 用于跟踪的目录ID |
item_id | string | no | 用于跟踪的项目ID |
service_image_status
获取图像编辑运行的状态/进度/结果。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | string | yes | 运行UUID |
service_image_list
使用可选过滤器运行列表图像编辑。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | 否 | 按目录筛选 |
item_id | string | 否 | 按项目筛选 |
status | string | 否 | 按状态筛选 |
tool | string | 否 | 按工具类型筛选 |
limit | integer | no | 最大结果(默认值:20) |
offset | integer | no | 分页偏移量(默认值:0) |
执行工具(在本地运行)
execution_catalog_snapshot_pull
将目录行+模式导出到本地文件(拼花/csv)以进行Python转换。使用快速并行分页。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目录UUID |
output_dir | string | no | 输出目录(默认: ./work/snapshots) |
format | string | 否 | parquet 或 csv (默认设置:拼花地板) |
sample_size | integer | no | 限制采样行数(null=全部) |
page_size | integer | 否 | 每页行数(默认值:400) |
max_concurrency | integer | no | 并行取线程(默认值:8) |
prefer_raw | boolean | 否 | 使用 /raw-items 用于完全保真度(默认值:true) |
use_cache | boolean | 否 | 在可用时重用本地清单支持的快照(默认值:true) |
refresh | boolean | no | 强制实时拉取并更新本地快照缓存(默认值:false) |
快照拉取也会写入 catalog__manifest.json 使用确定性行/模式哈希。重用缓存将跳过API拉取并返回 cache_hit=true;通行证 refresh=true 在最终阶段之前,当你需要一个新的来源时。
execution_local_diff_compute
计算本地数据集前后的行/字段差异。输出 staged_changes.jsonl.
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
before_path | string | yes | 数据集之前的路径(拼花地板/csv) |
after_path | string | yes | 后置数据集路径(拼花地板/csv) |
key_field | string | no | 行匹配列(默认值: __catalog_item_id).空键行=新插入。使用业务密钥(例如SKU)按该字段进行匹配。 |
execution_bundle_validate
在创建活动之前验证转换包。检查文件是否存在、架构兼容性、行数、产品变体完整性和策略规则。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 用于模式验证的目录UUID |
before_path | string | no | 数据集路径之前 |
after_path | string | no | 数据集路径之后 |
script_path | string | no | 转换脚本路径 |
staged_changes_path | string | no | 分阶段更改文件路径 |
diff_summary | object | no | 与 execution_local_diff_compute |
schema_changes | object | 否 | 建议的架构更改 |
taxonomy_changes | object | 否 | 建议的分类更改 |
rules.allow_row_deletes | boolean | 否 | 允许行删除(默认值:false) |
rules.max_change_ratio_warning | number | no | 高于此变化率时发出警告(默认值:0.2) |
execution_catalog_stage_dataset
一个命令暂存:计算前后数据集的差异,验证捆绑包(包括产品变体完整性),并创建一个待处理的审查活动。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
catalog_id | string | yes | 目标目录UUID |
before_path | string | yes | 数据集路径之前(拼花地板/csv) |
after_path | string | yes | 数据集路径之后(拼花地板/csv) |
activity_message | string | yes | 人类可读的评论消息 |
key_field | string | no | 行匹配列(默认值: __catalog_item_id) |
script_path | string | no | 审计来源的Python脚本路径 |
schema_changes | object | 否 | 要应用的架构更改 |
taxonomy_changes | object | 否 | 要应用的分类更改 |
attachments | array | 否 | 附件元数据 |
activity_context | object | 否 | 其他审核上下文 |
base_snapshot_id | string | no | 审计跟踪的可选源快照ID |
validate_only | boolean | no | 在不创建活动的情况下计算差异和验证 |
auto_open_review | boolean | 否 | 打开仪表板URL(默认值:true) |
提示
master_prompt
单一统一提示,指导代理商完成目录操作、产品变体处理、安全规则和关键字段匹配。加载自 rastro_mcp/prompts/master_prompt.md.
典型工作流程
1. catalog_get / catalog_schema_get -- understand the catalog
2. catalog_visualize_local -- inspect catalog state or staged changes visually when useful
3. execution_catalog_snapshot_pull -- pull data to local parquet
4. (your Python transform script) -- modify the data
5. execution_catalog_stage_dataset -- diff + validate + stage
6. Review in dashboard -- approve and apply大目录行为
execution_catalog_snapshot_pull更喜欢原始目录行(product+variant)via/raw-items,然后回到传统/items.catalog_activity_create_transform将大型变更集分阶段进行 活动 通过块附加阶段性更改,然后最终确定为pending_review.execution_catalog_stage_dataset在一个命令中计算diff+阶段,将所有内容放入一个待处理的审查活动中。
安全默认值
catalog_item_update残疾的 --后端PUT替换完整的项目数据。以(权力)否决RASTRO_MCP_ENABLE_DIRECT_ITEM_UPDATE=true- 程序化批准/应用已禁用 --仅从仪表板查看和应用。
- 活动优先工作流 --所有的写作都要经过审阅。
- 捆绑验证 --自动模式、行计数和产品变体完整性检查。
- 路径安全 --执行工具验证路径以防止目录遍历。
配置
| 变量 | 默认值 | 描述 |
|---|---|---|
RASTRO_AUTH_TOKEN | 可选 | 首选承载令牌env var.支持用户JWT和API密钥。 |
RASTRO_USER_TOKEN | 可选 | 用户JWT别名 RASTRO_AUTH_TOKEN. |
RASTRO_API_KEY | 的可选 | API密钥别名 RASTRO_AUTH_TOKEN. |
RASTRO_BASE_URL | https://catalogapi.rastro.ai/api | API基本URL |
RASTRO_ORGANIZATION_ID | 可选 | 组织UUID覆盖。使用用户令牌时建议使用。 |
RASTRO_MCP_ENABLE_DIRECT_ITEM_UPDATE | false | 启用直接项目PUT |
RASTRO_MCP_STAGE_BATCH_SIZE | 2000 | 用于举办大型活动的积木大小 |
RASTRO_MCP_STAGE_RETRIES | 3 | 暂存块的重试计数 |
