Access model
Rastro MCP is API-first:- Auth:
Authorization: Bearer rastro_pk_... - Base URL:
https://catalogapi.rastro.ai/api - Data access: public API endpoints only
- Database access: not required
RASTRO_API_KEY or a user bearer token via RASTRO_ACCESS_TOKEN.
CLI auth helper: uv run rastro-mcp login opens dashboard and returns token to localhost callback.
Standalone package repo: github.com/Rastro-AI/rastro-mcp
Tool groups
catalog_*
Catalog and activity operations:
catalog_list,catalog_get,catalog_schema_get,catalog_taxonomy_getcatalog_items_query,catalog_item_getcatalog_activity_list,catalog_activity_get,catalog_activity_get_staged_changescatalog_activity_create_transformcatalog_activity_audit(activity + staged summary)catalog_activity_clear(reject + cancel stale activities)catalog_snapshot_list,catalog_snapshot_create,catalog_snapshot_restore
execution_*
Local file pipeline:
execution_catalog_snapshot_pullexecution_local_diff_computeexecution_bundle_validateexecution_catalog_stage_dataset(one-command diff + stage)
service_*
Specialized services:
service_map_to_catalog_schemaservice_image_run,service_image_status,service_image_list
Catalog update pattern (recommended)
- Pull full snapshot with
execution_catalog_snapshot_pull - Transform locally (Python)
- Compute diff with
execution_local_diff_compute - Validate with
execution_bundle_validate - Stage a single review activity
- Open dashboard link and review before apply
Safety behavior
- MCP does not programmatically approve/apply staged changes.
- Deletes are supported and validated in diff/validation pipeline.
- Large staged change sets are chunked internally but kept under one activity.
Deterministic diffing
execution_local_diff_compute supports:
key_field(default__catalog_item_id)deterministic_key_fieldsfor fallback identity matchingallow_row_index_fallbackfor deterministic row-position fallback
diff_summarystaged_changes_pathdiff_details_pathfield_change_countsentity_type_change_counts- key diagnostics and sample field-level changes
API endpoints used by MCP (high level)
GET /public/catalogs/{catalog_id}GET /public/catalogs/{catalog_id}/schemaGET /public/catalogs/{catalog_id}/taxonomyGET /public/catalogs/{catalog_id}/itemsGET /public/catalogs/{catalog_id}/raw-itemsGET /public/catalogs/{catalog_id}/activitiesPOST /public/catalogs/{catalog_id}/activitiesPOST /public/activities/{activity_id}/staged-changes/appendPOST /public/activities/{activity_id}/pending-reviewGET /activities/{activity_id}GET /activities/{activity_id}/staged-changesGET /activities/{activity_id}/staged-changes/summaryPOST /activities/{activity_id}/staged-changes/bulk-review(reject-only from MCP)POST /activities/{activity_id}/cancel
Performance tuning
Optional env vars:RASTRO_MCP_PULL_MAX_CONCURRENCY(default8)RASTRO_MCP_STAGE_BATCH_SIZE(default2000)RASTRO_MCP_STAGE_RETRIES(default3)
Troubleshooting
401 / 403
- Check API key is valid and belongs to the correct organization.
Snapshot returns fewer rows than expected
- Use raw pulls (
prefer_raw: true) and verifytotalcount in response.
Diff appears misaligned
- Pass
deterministic_key_fieldsexplicitly for business identity fields (e.g.,sku,product_id) and re-run diff.
Too many old staged activities
- Use
catalog_activity_auditto inspect status and staged counts. - Use
catalog_activity_clearto reject/cancel stale activities in bulk.