Multiplexing

All your integrations behind one endpoint

A DataGrout server multiplexes every integration you add behind a single MCP/JSONRPC URL. Your agents connect once and get access to all tools from all integrations β€” with a single credential, unified discovery, and consistent policy enforcement.


How It Works

Add integrations to a server. Your agent connects to the server’s endpoint. Every tool from every integration becomes available through that one URL.

Agent
  └── connects to: gateway.datagrout.ai/servers/{uuid}/mcp
        β”œβ”€β”€ salesforce@1/get_leads@1
        β”œβ”€β”€ salesforce@1/create_opportunity@1
        β”œβ”€β”€ quickbooks@1/create_invoice@1
        β”œβ”€β”€ sap@1/get_purchase_orders@1
        β”œβ”€β”€ data-grout@1/discovery.discover@1
        └── ... (all tools from all integrations)

DataGrout handles authentication to upstream integrations transparently. Your agent carries one credential; DataGrout carries the rest.


Tool Namespacing

Every tool is prefixed with its integration name and version to prevent collisions and make provenance clear:

salesforce@1/get_lead@1
quickbooks@1/create_invoice@1
sap@1/get_purchase_orders@1
data-grout@1/discovery.discover@1

Call tools/list once to see every tool across all integrations. Call a tool by its full namespaced name and DataGrout routes it automatically.


Setup

1. Create a Server

In the server dropdown (top-left), select Create New Server. Give it a name and choose an auth method. You receive:

MCP endpoint:   https://gateway.datagrout.ai/servers/{uuid}/mcp
JSONRPC endpoint: https://gateway.datagrout.ai/servers/{uuid}/rpc

2. Add Integrations

Go to the Home page (the integrations marketplace) and click Add on any integration. OAuth integrations prompt you to authenticate. MCP server integrations take a URL and optional credentials.

Once added, the integration’s tools immediately appear in your server.

3. Connect Your Agent

from datagrout.conduit import Client

client = Client(
    "https://gateway.datagrout.ai/servers/{uuid}/mcp",
    auth={"bearer": "your-token"},
)
await client.connect()

# All tools from all integrations
tools = await client.list_tools()

Discovery Over the Multiplexed Surface

With hundreds of tools available, you rarely want your agent to reason over the full list. Use discovery.discover with a goal to find the right tool:

matches = await client.discover(goal="create an invoice for a customer", limit=5)
# Returns: quickbooks@1/create_invoice@1, xero@1/create_invoice@1, etc.

The discovery engine works across all integrations simultaneously, ranked by semantic similarity to your goal.


Advanced Features

Selective Tool Enabling

Each integration has a list of its tools. Disable tools you don’t need β€” only enabled tools appear in tools/list and discovery results. This keeps the surface focused and follows least-privilege principles.

Go to Integration β†’ Tools and toggle individual tools.

Dynamic Addition

Add a new integration while agents are connected. The new tools appear in tools/list on the next call β€” no agent reconfiguration needed.

Intelligent Interface

For agents that should never reason over the raw tool list, enable Intelligent Interface in server settings. This reduces tools/list to just discovery.discover and discovery.perform. The agent discovers tools by goal and executes them β€” never seeing the full catalog.

See Intelligent Interface for details.

Private and Cloud Hybrid

Cloud integrations (Salesforce, QuickBooks) and on-premise systems (SAP via Private Connector) appear side-by-side in the same multiplexed endpoint. The agent doesn’t need to know the difference.


Performance

  • Routing overhead: under 50ms per call
  • Tool list cached: 5 minutes (invalidated when integrations change)
  • Concurrent upstream calls: handled via connection pooling

Related