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 SettingsMCP 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