Data 360 MCP Server

The data/data360 server exposes Data 360’s Connect API through MCP, so agents can query, transform, and activate customer data programmatically.

Use this server to:

  • Query unified customer profiles, trigger segmentation, and manage identity resolution through MCP
  • Manage unified profiles and calculated insights at runtime via API
  • Ingest, transform, and activate data through API prompting
  • Configure data mappings, identity resolution, and developer environments

The server exposes three meta-tools (tools that manage other tools): search, payload_examples, and execute. These tools discover the correct Connect API at runtime rather than loading all of them up front, which keeps token usage low regardless of how many Data 360 APIs exist.

Use the Data 360 MCP server to create, list, update, and delete:

  • Data lake objects (DLO)
  • Data model objects (DMO)
  • Data streams
  • Transforms
  • Calculated insights
  • Segments
  • Activations and activation targets
  • Data actions and data action targets
  • Data spaces
  • Data kits
  • RAG retrievers and retriever configurations
  • Semantic search indexes
  • Semantic data models (SDM) and SDM entities (data objects, calculated dimensions/measurements, metrics, relationships)
  • DLO-to-DMO mappings (including field mappings)

Note: This MCP server replaces the previous Data 360 server, which is now available as the Data 360 Legacy MCP Server.

The Data 360 MCP is available with API v66.0 and later. MCP server calls count as calls to the underlying Connect API endpoints for limits and Flex Credit usage. See Data Cloud License Billing and Limits.

Prerequisites 

  • Data 360 license enabled in your org
  • API v66.0 or later
  • Permissions:
    • Manage Data 360 for configuration operations
    • View Data 360 for read-only operations
  • MCP client installed and configured with OAuth authentication

For setup instructions, see Set Up Your Org.

Server URL 

Use these server URLs to access the production, sandbox, and scratch versions of the data-360 server.

  • Production: https://api.salesforce.com/platform/mcp/v1/data360
  • Sandbox/Scratch: https://api.salesforce.com/platform/mcp/v1/sandbox/data360

Example Prompts 

  • “What data is available about {customer name} in Data 360?”
  • “Query the unified customer profile for contacts at Acme Corp — show engagement scores and last interaction dates.”
  • “What are the top 20 accounts by product usage events in the last 30 days?”
  • “Show me all customers who received a marketing email last week but haven’t opened it.”
  • “Pull the behavioral data for customer ID cust_abc123 from Data 360.”

Available Tools 

The data/data360 server provides the following tools. Use them in this order for the best result.

  • search: identifies the correct tool to use
  • payload_examples: provides payload examples
  • execute: executes tool with payload

1. search — discover tool families by intent 

Describe what you want to do in natural language. The server scores tool families by intent and returns matching tool names.

Params: query (natural-language intent)

1// request
2{ "query": "create and manage a segment" }
3
4// response (trimmed to two families)
5{
6  "query": "create and manage a segment",
7  "results": [
8    { "family": "Segment", "summary": "Segment Connect API tools.",
9      "tools": ["d360_segment_count", "d360_segment_create", "d360_segment_deactivate",
10                "d360_segment_delete", "d360_segment_get", "d360_segment_get_by_id",
11                "d360_segment_list", "d360_segment_member_list", "d360_segment_publish",
12                "d360_segment_update"] },
13    { "family": "Activation", "summary": "Activation Connect API tools.",
14      "tools": ["d360_activation_create", "d360_activation_get", "d360_activation_list",
15                "d360_activation_update"] }
16  ]
17}

2. payload_examples — get the schema and example for a named tool 

Given a tool name, returns its input JSON Schema, an example payload, and a human-readable description.

Params: toolName

1// request
2{ "toolName": "d360_query_sql" }
3
4// response (trimmed)
5{
6  "toolName": "d360_query_sql",
7  "family": "Query",
8  "description": "Submit Data Cloud SQL for execution and return query metadata plus the first chunk of rows. Use d360_query_sql_status to poll long-running queries and d360_query_sql_rows to fetch additional pages.",
9  "example": { "input": { "sql": "SELECT FirstName__c, LastName__c FROM UnifiedIndividual__dlm LIMIT 10" } },
10  "inputSchema": { "type": "object", "required": ["input"], "properties": {
11    "input": { "type": "object", "properties": {
12      "sql": { "type": "string" },
13      "rowLimit": { "type": "integer" },
14      "adaptiveTimeout": { "type": "integer" },
15      "querySettings": { "type": "object" },
16      "sqlParameters": { "type": "object" } } },
17    "workloadName": { "type": "string" },
18    "dataspace": { "type": "string" } } }
19}

3. execute — run a named tool 

Names a tool and passes its arguments as a JSON string. The server dispatches to the underlying Connect API and returns the result.

Params:

  • toolName — the tool to invoke
  • paramsJson — parameters as a JSON string matching the tool’s schema
1// request — list segments
2{ "toolName": "d360_segment_list", "paramsJson": "{\"batchSize\": 3}" }
3
4// response (one segment shown; includeCriteria DBT/XML elided)
5{
6  "result": {
7    "batchSize": 3, "offset": 0, "orderByExpression": "[Name asc]", "totalSize": 1,
8    "segments": [{
9      "apiName": "High_Value_Accounts",
10      "displayName": "High Value Accounts",
11      "description": "Top-spending accounts by total order revenue…",
12      "segmentOnApiName": "ssot__Account__dlm",
13      "segmentType": "DBT",
14      "segmentStatus": "ACTIVE",
15      "publishStatus": "SUCCESS",
16      "publishInterval": "NO_REFRESH",
17      "lastSegmentMemberCount": 1,
18      "lookbackPeriod": "P90D",
19      "dataSpace": "default",
20      "marketSegmentId": "1sgVF000001PVhZYAW",
21      "includeCriteria": "<DbtPipeline>…SELECT DISTINCT … HAVING SUM(...TotalAmount__c) >= 1359.67…</DbtPipeline>"
22    }]
23  }
24}
1// request — run SQL (Query family)
2{ "toolName": "d360_query_sql", "paramsJson": "{\"input\": {\"sql\": \"SELECT 1 AS test_col\"}}" }
3
4// response
5{
6  "result": {
7    "data": [[1]],
8    "metadata": [{ "name": "test_col", "type": "Integer", "nullable": false }],
9    "returnedRows": 1,
10    "status": {
11      "completionStatus": "ResultsProduced", "progress": 1.0,
12      "rowCount": 1, "chunkCount": 1, "wallClockTime": 0.001728879,
13      "queryId": "MTAuMjIuMTIxLjkxOjc0ODQ_1adb65f9-…"
14    }
15  }
16}

Long-running queries return a queryId. Poll d360_query_sql_status and page results with d360_query_sql_rows.


Related Resources