Use the oracle_analytics-describe_data MCP Server Tool (Preview)
The oracle_analytics-describe_data tool allows you to programmatically retrieve comprehensive column-level metadata for subject areas and datasets.
Input Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"datamodelName": {
"type": "string",
"description": "Subject area name or XSA reference"
},
"tablesOnly": {
"type": "boolean",
"description": "Return only table list without columns"
},
"tableName": {
"type": "string",
"description": "Specific table to describe"
},
"tableNames": {
"type": "array",
"items": { "type": "string" },
"description": "Multiple tables to describe"
}
},
"required": ["datamodelName"]
}
Parameters
| Name | Type | Required or Optional | Default Value | Description |
|---|---|---|---|---|
datamodelName |
String | Required | - | Subject area name or XSA('namespace'.'dataset'). |
tablesOnly |
Boolean | Optional | false |
When true, returns only table names. |
tableName |
String | Optional | - | Filter to single table. Table name only, not fully qualified. |
tableNames |
String | Optional | - | Filter to multiple tables. |
JSON-RPC Request Examples
Get all tables in a subject
area
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "oracle_analytics-describe_data",
"arguments": {
"datamodelName": "Sales History Subject Area",
"tablesOnly": true
}
}
}Get columns for a specific
table
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "oracle_analytics-describe_data",
"arguments": {
"datamodelName": "Sales History Subject Area",
"tableName": "SALES"
}
}
}
Get columns from an XSA
dataset
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "oracle_analytics-describe_data",
"arguments": {
"datamodelName": "XSA('[email protected]'.'Chocolate Sales')",
"tableName": "Chocolate Sales"
}
}
}Response Structure
{
"tables": [
{
"fullQualifiedName": "\"Sales History Subject Area\".\"SALES\"",
"columns": [
{
"columnType": "attribute",
"nullable": "0",
"displayName": "PROD_ID",
"dataType": "NUMERIC",
"precision": "28",
"name": "PROD_ID",
"length": "28",
"description": "",
"scale": "0",
"aggregation": null,
"fullyQualifiedName": "\"Sales History Subject Area\".\"SALES\".\"PROD_ID\""
}
// ... additional columns: CUST_ID, TIME_ID, CHANNEL_ID, PROMO_ID, QUANTITY_SOLD, AMOUNT_SOLD
],
"tableName": "SALES"
},
{
"fullQualifiedName": "\"Sales History Subject Area\".\"TIMES\"",
"columns": [
{
"columnType": "attribute",
"nullable": "0",
"displayName": "TIME_ID",
"dataType": "TIMESTAMP",
"precision": "16",
"name": "TIME_ID",
"length": "16",
"description": "",
"scale": "0",
"aggregation": null,
"fullyQualifiedName": "\"Sales History Subject Area\".\"TIMES\".\"TIME_ID\""
}
// ... additional columns: DAY_NAME, CALENDAR_WEEK_NUMBER, CALENDAR_MONTH_DESC, CALENDAR_QUARTER_DESC, CALENDAR_YEAR, FISCAL_YEAR, etc. (38 total)
],
"tableName": "TIMES"
}
// ... additional tables: CHANNELS, CUSTOMERS, PRODUCTS, PROMOTIONS, CUSTOMER_BY_COUNTRY
],
"subjectArea": "Sales History Subject Area"
}
Column Metadata Fields
| Name | Type | Description |
|---|---|---|
name |
String | Column identifier. |
displayName |
String | Human-readable name. |
fullyQualifiedName |
String | Complete path for queries. |
columnType |
String | "attribute" or
"measure" |
dataType |
String | SQL data type, for example VARCHAR, NUMERIC, TIMESTAMP, and so on. |
precision |
String | Numeric precision. |
scale |
String | Decimal scale. |
nullable |
String | "0" (NOT NULL) or
"1" (nullable)
|
aggregation |
String Null |
Default aggregation rule, for example SUM, AVG, COUNT, and so on. |