Rastro MCP
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Rastro MCPlist all catalogs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Rastro MCP
MCP server for Rastro catalog operations. Exposes catalog, service, execution, and local visualization tools for use with Claude, Codex, or any MCP-compatible client.
Install
From PyPI (once published):
pip install rastro.ai
# or
uv add rastro.aiFrom source:
git clone https://github.com/Rastro-AI/rastro-mcp
cd rastro-mcp
uv syncRelated MCP server: veda-mcp-app
Required Environment
export RASTRO_AUTH_TOKEN=<bearer-token> # Preferred: user token or API key
# export RASTRO_USER_TOKEN=<user-jwt> # 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=<uuid> # Recommended for user tokens; picks the target orgRun
# stdio transport (for MCP clients)
uv run python -m rastro_mcp.server
# or via CLI entry point (if installed from package)
rastro-mcpClaude Code / Claude Desktop config
Add to .mcp.json or claude_desktop_config.json:
{
"mcpServers": {
"rastro": {
"command": "uv",
"args": ["run", "python", "-m", "rastro_mcp.server"],
"env": {
"RASTRO_AUTH_TOKEN": "<bearer-token>",
"RASTRO_ORGANIZATION_ID": "<org-uuid>",
"RASTRO_BASE_URL": "https://catalogapi.rastro.ai/api"
}
}
}
}Tool Reference
Catalog Tools
catalog_list
List all catalogs for the authenticated organization.
Parameter | Type | Default | Description |
| integer | 50 | Max results to return |
| integer | 0 | Pagination offset |
catalog_get
Get a single catalog by ID, including metadata and item counts.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
catalog_delete
Delete a catalog (irreversible). Requires explicit confirmation phrase.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| boolean | no | Must be |
| string | no | Must exactly match |
| string | no | Safety check: must match catalog name |
catalog_duplicate
Duplicate a catalog schema and optionally copy source items.
Parameter | Type | Required | Description |
| string | yes | Source catalog UUID |
| string | no | Name for the new catalog |
| string | no | Description for the new catalog |
| boolean | no | Copy items (default: false) |
catalog_schema_get
Get catalog schema definition with field types, descriptions, scopes, and workflow metadata.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | no | Schema version (default: current) |
catalog_taxonomy_get
Get catalog taxonomy with hierarchy, attributes, and inheritance.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
catalog_update_quality_prompt
Set the catalog's quality prompt used by the judge tool and readiness checks. Replaces the current prompt entirely.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | yes | Quality prompt text (criteria for judging rows) |
catalog_items_query
Query catalog items with pagination, text search, and field sorting.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| integer | no | Max results (default: 50) |
| integer | no | Pagination offset (default: 0) |
| string | no | Full-text search query |
| string | no | Field to sort by |
| string | no |
|
catalog_item_get
Get a single catalog item by ID with full data, entity type, and taxonomy attributes.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | yes | Item UUID (database ID) |
catalog_item_update
Update a single catalog item's data directly. Disabled by default -- use catalog_activity_create_transform instead.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | yes | Item UUID |
| object | yes | Key-value pairs to update |
Enable with RASTRO_MCP_ENABLE_DIRECT_ITEM_UPDATE=true (break-glass only).
catalog_activity_list
List activities for a catalog with optional status/type filters.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | no | Filter: |
| string | no | Filter: |
| integer | no | Max results (default: 20) |
| integer | no | Pagination offset (default: 0) |
catalog_activity_get
Get a single activity by ID with full metadata.
Parameter | Type | Required | Description |
| string | yes | Activity UUID |
catalog_activity_get_staged_changes
Get staged changes for a pending activity. Returns paginated before/after data pairs.
Parameter | Type | Required | Description |
| string | yes | Activity UUID |
| integer | no | Max results per page (default: 50) |
| integer | no | Pagination offset (default: 0) |
catalog_visualize_local
Build a self-contained local HTML viewer for either a catalog or an activity's staged changes, then optionally open it in the default browser.
Parameter | Type | Required | Description |
| string | conditional | Catalog UUID to visualize |
| string | conditional | Activity UUID to visualize |
| string | no |
|
| string | no | Custom title shown in the viewer |
| integer | no | Max matching records to load (default: 500) |
| integer | no | Offset into the matching records (default: 0) |
| string | no | Optional search filter passed to the backend |
| string | no | Artifact output directory (default: |
| boolean | no | Best-effort browser open after artifact generation (default: true) |
Outputs a bundle.json, a static viewer.html, and a localhost viewer_url. Prefer the viewer_url over opening viewer.html directly; the localhost path enables the local media proxy for remote images/documents. The artifact files are still usable when browser launch fails (for example in headless shells).
catalog_activity_create_transform
Create a custom transform activity with staged changes, script provenance, and audit metadata. Validates the bundle, stages all changes into a single pending-review activity (chunked internally if needed), and opens the dashboard review URL.
Parameter | Type | Required | Description |
| string | yes | Target catalog UUID |
| string | yes | Human-readable description |
| object | no |
|
| object | no | From |
| object | no | From |
| array | no | Inline staged changes |
| string | no | Path to |
| object | no | Schema changes to apply |
| object | no | Taxonomy changes to apply |
| array | no | Stored in |
| object | no | Additional audit context |
| string | no | Snapshot ID for audit trail |
| boolean | no | Open dashboard URL (default: true) |
catalog_activity_save_workflow
Save an activity as a reusable workflow template.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | yes | Activity UUID |
| string | yes | Name for the saved workflow |
| string | no | Description |
| string | no | Transform code |
| array | no | Attachment metadata |
| integer | no | Execution timeout (default: 120) |
catalog_snapshot_list
List catalog snapshots for rollback/history.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | no | Filter by type |
| integer | no | Max results (default: 20) |
| integer | no | Pagination offset (default: 0) |
catalog_snapshot_create
Create a manual snapshot for rollback safety.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | no | Reason (default: "Manual snapshot from MCP") |
catalog_snapshot_restore
Restore a catalog to a specific snapshot.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | yes | Snapshot UUID to restore |
Service Tools
Enrichment API contract notes
The MCP package exposes catalog-aware helpers, but agents may still call /api/public/enrich through the client or backend. Keep these enrich shapes distinct:
Taxonomy classification only: send
taxonomy,predict_taxonomy: true,predict_taxonomy_attributes: false, and omitoutput_schemaunless you also want normal fields extracted. Do not invent dummy fields such asempty.Taxonomy with attributes: keep
predict_taxonomy_attributesomitted ortrue; results includetaxonomy_attributesafter classification.Requested attributes: send top-level
attribute_setsand putattribute_set_idon each item. The output schema must requestattribute_results_json; inline per-rowrequested_attributes/source_hintsare rejected by public preflight.
service_map_to_catalog_schema
Map source items to a target catalog schema using AI enrichment. Always runs with web_search=false.
Parameter | Type | Required | Description |
| string | yes | Target catalog UUID |
| array | yes | Source items to map |
| string | no | Mapping instructions (default: "Map source fields to target catalog schema") |
| boolean | no | Run asynchronously (default: false) |
| string | no |
|
service_judge_catalog_rows
Judge catalog rows for data quality. When catalog_id is provided, automatically loads the catalog's schema and quality_prompt (from readiness_config).
Parameter | Type | Required | Description |
| array | yes | Rows to evaluate (max 500) |
| string | no | Catalog UUID (loads schema + quality_prompt automatically) |
| object | no | Inline schema (only needed if no catalog_id) |
| string | no | Extra instructions (appended to catalog's quality_prompt) |
| string | no | Model preset (default: fast) |
| integer | no | Max rows per request (default: 200) |
service_image_run
Submit an image editing job. Supports: generate, edit, inpaint, bg_remove, relight, upscale.
Parameter | Type | Required | Description |
| string | yes |
|
| string | conditional | Input image (required for edit/inpaint/bg_remove/relight/upscale) |
| string | conditional | Mask image (required for inpaint) |
| string | conditional | Text prompt (required for generate/edit/inpaint) |
| string | no | Model provider override |
| string | no |
|
| string | no | Output size |
| integer | no | Number of results (default: 1) |
| string | no | Catalog ID for tracking |
| string | no | Item ID for tracking |
service_image_status
Get status/progress/result of an image editing run.
Parameter | Type | Required | Description |
| string | yes | Run UUID |
service_image_list
List image editing runs with optional filters.
Parameter | Type | Required | Description |
| string | no | Filter by catalog |
| string | no | Filter by item |
| string | no | Filter by status |
| string | no | Filter by tool type |
| integer | no | Max results (default: 20) |
| integer | no | Pagination offset (default: 0) |
Execution Tools (run locally)
execution_catalog_snapshot_pull
Export catalog rows + schema to local files (parquet/csv) for Python transforms. Uses fast parallel pagination.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID |
| string | no | Output directory (default: |
| string | no |
|
| integer | no | Limit rows for sampling (null = all) |
| integer | no | Rows per page (default: 400) |
| integer | no | Parallel fetch threads (default: 8) |
| boolean | no | Use |
| boolean | no | Reuse a local manifest-backed snapshot when available (default: true) |
| boolean | no | Force a live pull and update the local snapshot cache (default: false) |
Snapshot pulls also write catalog_<id>_manifest.json with deterministic row/schema hashes. Reusing the cache skips the API pull and returns cache_hit=true; pass refresh=true before final staging when you need a fresh source.
execution_local_diff_compute
Compute row/field diff between before/after local datasets. Outputs staged_changes.jsonl.
Parameter | Type | Required | Description |
| string | yes | Path to before dataset (parquet/csv) |
| string | yes | Path to after dataset (parquet/csv) |
| string | no | Row matching column (default: |
execution_bundle_validate
Validate a transform bundle before activity creation. Checks file existence, schema compatibility, row counts, product-variant integrity, and policy rules.
Parameter | Type | Required | Description |
| string | yes | Catalog UUID for schema validation |
| string | no | Before dataset path |
| string | no | After dataset path |
| string | no | Transform script path |
| string | no | Staged changes file path |
| object | no | Diff summary from |
| object | no | Proposed schema changes |
| object | no | Proposed taxonomy changes |
| boolean | no | Allow row deletions (default: false) |
| number | no | Warn above this change ratio (default: 0.2) |
execution_catalog_stage_dataset
One-command staging: compute diff from before/after datasets, validate bundle (including product-variant integrity), and create one pending-review activity.
Parameter | Type | Required | Description |
| string | yes | Target catalog UUID |
| string | yes | Before dataset path (parquet/csv) |
| string | yes | After dataset path (parquet/csv) |
| string | yes | Human-readable review message |
| string | no | Row matching column (default: |
| string | no | Python script path for audit provenance |
| object | no | Schema changes to apply |
| object | no | Taxonomy changes to apply |
| array | no | Attachment metadata |
| object | no | Additional audit context |
| string | no | Optional source snapshot ID for audit trail |
| boolean | no | Compute diff and validate without creating an activity |
| boolean | no | Open dashboard URL (default: true) |
Prompts
master_prompt
Single unified prompt guiding the agent through catalog operations, product-variant handling, safety rules, and key field matching. Loaded from rastro_mcp/prompts/master_prompt.md.
Typical Workflow
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 applyLarge Catalog Behavior
execution_catalog_snapshot_pullprefers raw catalog rows (product+variant) via/raw-items, then falls back to legacy/items.catalog_activity_create_transformstages large change sets into one activity by chunk-appending staged changes, then finalizes topending_review.execution_catalog_stage_datasetcomputes diff + stages everything into one pending-review activity in a single command.
Safety Defaults
catalog_item_updatedisabled -- backend PUT replaces full item data. Override:RASTRO_MCP_ENABLE_DIRECT_ITEM_UPDATE=trueProgrammatic approve/apply disabled -- review and apply from dashboard only.
Activity-first workflow -- all writes go through staging for review.
Bundle validation -- automatic schema, row count, and product-variant integrity checks.
Path safety -- execution tools validate paths to prevent directory traversal.
Configuration
Variable | Default | Description |
| optional | Preferred bearer token env var. Supports user JWTs and API keys. |
| optional | User JWT alias for |
| optional | API key alias for |
|
| API base URL |
| optional | Organization UUID override. Recommended when using a user token. |
|
| Enable direct item PUT |
|
| Chunk size for staging large activities |
|
| Retry count for staging chunks |
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for aerospace calculations: orbital mechanics, ephemeris, DSN operations, ...
- RasterOAuthapp.raster
Browse, search, upload, tag, transfer, and delete images in your Raster libraries over MCP.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server that provides tools to query 17+ astronomical databases (e.g., SIMBAD, VizieR, Gaia) via HTTP/TAP APIs, enabling AI applications to access astronomical data through natural language.236 npm2BSD 3-Clause
- FlicenseNot gradedqualityBmaintenanceMCP server for a VEDA STAC catalog, providing a tool to call and interactive React UI to view STAC collections.-
- AlicenseAqualityBmaintenanceA local, open-source MCP server that wraps astronomy data services (SIMBAD, JPL Horizons, VizieR, etc.) behind a conversational interface, enabling AI assistants to answer astronomy questions with real, typed, and provenance-tracked data.13MIT
- AlicenseNot gradedqualityBmaintenanceEnables discovery, analysis, and explanation of open satellite data through MCP, with support for STAC catalogs and NASA GIBS.1MIT