MCP server providing AI agents with tools to interact with Salesforce Data Cloud via the Model Context Protocol. Supports both stdio (local) and HTTP/SSE (Heroku) transport modes.
36 tools with consistent naming (verb_noun pattern) and descriptions present. However, descriptions are often generic (50-100 chars) and lack LLM-optimized guidance on WHEN to use each tool vs. similar ones. Input schemas are well-formed with types and required fields, but output schemas are undocumented, LLMs cannot predict response structure for chaining. Error handling is minimal; no recovery guidance. Security concerns: no tool annotations (readOnlyHint/destructiveHint) despite 8 WRITE/DESTRUCTIVE tools. Parameters lack constraints (enums, ranges, patterns) that would prevent hallucinated values.
Ask Data Cloud a natural-language question. Generates SQL, runs it, and returns a plain-English summary plus the raw rows.
Create a new Data Model Object in Data Cloud.
Delete a Data Model Object. IRREVERSIBLE. Requires confirm: true.
Get detailed schema information for a specific Data Lake Object, including all fields and their types.
Get full schema for a Data Model Object - fields, types, primary keys, relationships.
Get detail for a specific search index.
No output schemas documented. LLMs cannot predict response structure for tool chaining. E.g., query_data_cloud returns rows but structure is undocumented; downstream tools cannot reliably extract fields.
8 WRITE/DESTRUCTIVE tools (ingest_records, publish_segment, create_data_model_object, update_data_model_object, delete_data_model_object, publish_event, publish_events_batch) lack tool annotations (destructiveHint, idempotentHint). LLMs cannot distinguish safe from risky operations.
Descriptions lack LLM-optimized guidance. Most are 50-100 chars and generic (e.g., 'List all segments'). Missing WHEN to use vs. similar tools, prerequisites, and side effects. Baseline: A+ tools average 194 chars with clear intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Get full schema for a Semantic Data Model - dimensions, measures, relationships.
Take any query result rows and produce a plain-English analysis using the inference model.
Fetch the next page of results from a previously submitted async query using its queryId.
Retrieve calculated insights and metrics from Data Cloud.
List all Data Lake Objects (DLOs) available in Data Cloud.
Get statistics about identity resolution in Data Cloud, including unified profiles and match rates.
Get full detail of a single DLO-to-DMO mapping by its developer name.
Get detail for a specific retriever configuration.
Look up a unified individual profile in Data Cloud by its unified profile ID.
Bulk-ingest records into a Data Lake Object via the Data Cloud Ingest API. Handles the full job lifecycle: create → upload → close.
List all activation targets configured in Data Cloud for publishing segments to downstream systems.
List source-system connections of a specific connector type. Each connection is returned with full detail (id, label, name, dataSource, connectionStatus, organizationId). Optional filters refine results.
List Data Actions configured in Data Cloud (outbound triggers fired on segment/profile events).
List all Data Model Objects (DMOs) - the harmonized layer above Data Lake Objects in Data Cloud.
List all data streams configured for data ingestion, filterable by status (active, inactive, all).
List DLO-to-DMO mappings - how raw Data Lake Object fields flow into Data Model Object fields. Provide either dmoDeveloperName or sourceObjectName (one is required).
List identity resolution rulesets in Data Cloud, including match rules and survivorship configuration.
List RAG retrievers configured in Data Cloud (used by Agentforce grounding).
List vector/hybrid search indexes configured in Data Cloud.
List all segments with their status, record count, target entity, and refresh interval.
List Semantic Data Models (SDMs) in Data Cloud - the abstraction layer over DMOs for analytics.
Translate a natural-language question into Data Cloud SQL, execute it, and return both the SQL and rows.
Publish a single event to a Data Cloud event-based connector.
Publish a batch of events to a Data Cloud event-based connector.
Trigger a publish or refresh of a Data Cloud segment by its segment ID.
Submit a SQL query to Data Cloud asynchronously. Returns a queryId and the first page of results. Use get_async_query_results to fetch subsequent pages.
Execute a SQL query against Salesforce Data Cloud using ANSI SQL. Returns query results in JSON format.
Execute a semantic query against a Semantic Data Model. Pass either a fully-formed structuredSemanticQuery or use the dimensions/measures shorthand. The body is sent to /semantic-engine/gateway as { semanticModelId, structuredSemanticQuery: { fields: [...], options: { limitOptions: { limit } } } }.
Run a similarity search against a configured search index.
Update an existing Data Model Object.
No input validation or constraint documentation. Parameters like 'status' in list_data_streams lack enum values; 'limit' in list_connections lacks min/max bounds. LLMs will hallucinate invalid values.
No error recovery guidance. Tools return errors but do not suggest next steps (e.g., 'Object not found. Try list_data_model_objects() to see available options'). Agents cannot self-correct.