Skip to main content

MCP Server Configuration

This guide shows how to connect MCP clients (Claude Desktop, Cursor, etc.) to Intugle.

Video Tutorial​

Getting Credentials​

  1. Navigate to your deployed ChatApp in Intugle
  2. Open Settings or Deploy Wizard
  3. Copy the MCP URL and API Key

MCP Configuration Panel

The MCP Configuration panel shows:

  • MCP URL: Your endpoint (e.g., https://dev.intugle.ai/mcp)
  • API Key: Your JWT token (masked, with copy button)
  • Expiration: Token expiry date
  • Authentication: Required Authorization: Bearer <api-key> header
  • Optional Headers: x-session-id and x-extra-params
  • MCP Client Configuration: Ready-to-use JSON config for Claude Desktop

Client Setup​

Claude Desktop​

Edit your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"intugle": {
"url": "https://your-instance.intugle.ai/mcp/",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}

Cursor IDE​

  1. Open Settings → MCP Servers
  2. Click Add Server
  3. Configure:
    • Name: Intugle
    • URL: Your MCP URL
    • Transport: streamable-http
    • Headers: Authorization: Bearer YOUR_API_KEY

Request Reference​

Headers​

HeaderRequiredDescription
AuthorizationYesBearer <JWT_TOKEN>
x-session-idNoCustom session ID (overrides default)
x-extra-paramsNoJSON object with extra parameters
x-cache-payloadNoCache configuration (see below)

x-cache-payload Format​

{
"deterministic_cache": true,
"cache_id": "optional-cache-key"
}

JWT Token Claims​

Your API key is a JWT token containing:

{
"subscription_id": 123,
"subscription_uuid": "uuid-string",
"user_id": 456,
"chatapp_id": null,
"exp": 1234567890
}
ClaimRequiredDescription
subscription_idYesYour subscription ID
subscription_uuidYesYour subscription UUID
user_idYesYour user ID
chatapp_idNoSpecific ChatApp ID, or "latest" for most recent
expYesToken expiration timestamp

Tool Reference​

IntugleAgent Tool​

Once connected, your MCP client can call the IntugleAgent tool.

Tool Name: IntugleAgent

Description: Agent for building data apps (data products, calculated fields, data relationships), talking with data and metadata (Data Analytics and Metadata exploration)

Input Parameters​

ParameterTypeRequiredDescription
questionstringYesA natural language question

Example Input:

{
"question": "What were our total sales last quarter?"
}

Example Questions​

"Show me revenue by region"
"What tables are related to customers?"
"Create a chart showing monthly sales trends"
"Find the top 10 products by revenue"
"Build a calculated field for profit margin"

Response Reference​

Output Structure​

Responses contain a list of UI components plus metadata:

{
"output": [
{
"index": 1,
"type": "markdown",
"content": "## Sales Summary\n\nTotal: **$1.2M**",
"status": "completed",
"delta": false,
"msg": null,
"parentid": null
}
],
"execution_time": 2.5,
"cache": "full",
"cache_id": "abc123"
}

Output Fields​

FieldTypeDescription
outputarrayList of UI components
execution_timenumberTime taken in seconds
cachestring|null"full", "partial", or null
cache_idstring|nullCache identifier for reuse

UI Component Structure​

FieldTypeDescription
indexnumberComponent order
typestring"markdown", "table", "chart", or "card"
contentstring|objectComponent content (varies by type)
statusstring"partial", "completed", or "failed"
deltabooleanWhether this is a delta update
parentidstring|nullParent component ID

Component Types​

Markdown​

{
"type": "markdown",
"content": "## Title\n\nYour **formatted** text here",
"status": "completed"
}

Table​

{
"type": "table",
"content": {
"data": {
"columns": ["Customer", "Revenue"],
"rows": [["Acme", 150000], ["Globex", 120000]]
},
"title": "Top Customers",
"column_mappings": {},
"allow_publish": false
},
"status": "completed"
}

Chart​

{
"type": "chart",
"content": {
"chart_json": "{ ... vega-lite spec ... }",
"title": "Revenue Trend",
"chart_type": "line",
"sample_data": {}
},
"status": "completed"
}

Card​

{
"type": "card",
"content": {
"title": "Total Revenue",
"description": "$1.2M",
"icon": "dollar",
"right_content": "+15%",
"right_icon": "arrow-up"
},
"status": "completed"
}

Session Management​

  • Sessions persist conversation context
  • Each session is bound to a workspace
  • Sessions timeout after inactivity (default: 15 seconds disconnect timeout)
  • Use x-session-id header to maintain a specific session

Error Handling​

ErrorCauseSolution
401 UnauthorizedInvalid/expired tokenRegenerate API key
403 ForbiddenNo access to workspaceCheck permissions
408 TimeoutQuery took too longSimplify query

Configuration Settings​

Server-side settings (for reference):

SettingDefaultDescription
MCP_TOOL_NAMEIntugleAgentTool name
MCP_CLIENT_DISCONNECT_TIMEOUT_MS15000Disconnect timeout
MCP_AUTHENTICATION_JWT_ALGORITHMHS256JWT algorithm