Skip to main content

Tools and enterprise data

Agents and applications are only as useful as the systems they can reach. DIAL connects them to tools, custom APIs, and documents through mechanisms that keep the platform's access control in place. This page explains those mechanisms and the access boundaries that come with them. It is for architects who have read What is DIAL.

Why connect tools through the platform​

Each integration a team builds on its own solves the same problems again: credentials, who may use the tool, and what gets recorded. A tool registered once in DIAL can serve many agents, under one set of access rules.

DIAL offers two ways in. A Toolset gives a model tools to call during a conversation. A route lets a client application call a custom API as it is.

MCP Toolsets​

DIAL supports the Model Context Protocol (MCP) natively. A Toolset registers an MCP server in DIAL, and any Quick App or other compatible application can then use its tools. When the model decides to call a tool, the call goes through DIAL Core and the result returns within the same conversation.

Toolsets are governed resources:

  • Access by role. Only users with the right roles can use a Toolset.
  • Allowed tools. Administrators can expose only some of an MCP server's tools.
  • Credentials. A Toolset connects to its MCP server with an API key, with OAuth 2.0, or without authentication. Credentials can belong to each user or to the whole organization.
  • Publication and audit. Toolsets can be published to the Catalog through the approval workflow, and administrators review their history in DIAL Admin.

REST APIs as tools​

Not every system has an MCP server. The OpenAPI to MCP bridge is a separate service that puts an MCP interface in front of a REST API. It creates MCP tools from the API's OpenAPI 3.x document, which the client sends, and resolves DIAL's stored credentials for each request. See Expose a REST API as MCP tools.

Custom APIs through routes​

Some APIs need to reach clients as they are, not as tools a model calls. A route registers such an API in DIAL Core. Client applications, such as DIAL Chat, then call it through DIAL Core, which handles authentication and authorization between the client and the API.

  • Any HTTP or WebSocket API. A route matches request paths and HTTP methods and proxies them to upstream endpoints over HTTP or WebSocket. Examples include a vector store query API, a realtime API over WebSocket, and an external model provider's chat completions endpoint.
  • Credentials stay in DIAL. DIAL Core sends the upstream's key as an API key or a Bearer token, so the client never handles it.
  • Access by role. Grant each route to the user roles that need it.
  • Load balancing. A route can have several upstreams with the same weights, tiers, and retries as a model. See Load balancing and failover.
  • Static responses. A route can return a fixed response without calling any backend, for example for a health check.
  • Global or per application. Global routes serve the whole platform, and their order sets their priority. Application routes belong to one application and apply only to its requests.
  • Traceable. Traces, log lines, and analytics log entries record which route served a request.

A route passes requests through to the API as they are, without translating them to another API. Routes are separate from the interceptor chain.

Generic RAG​

DIAL Generic RAG answers questions over a collection of documents that is uploaded and indexed in advance. It's an application type: each application of the type has its own documents and its own pipeline, set in the application's properties.

  • Configurable pipeline. Each application chooses its parsers, indexes, retriever, and answer generator. Indexes live in PostgreSQL with pgvector, or in Elasticsearch.
  • Metadata. Documents carry metadata, such as a date or a category, that requests can filter and sort by.
  • Document management. Documents are uploaded and reindexed through a REST API, or on a screen in DIAL Admin.
  • MCP tools. Each application is also an MCP server, so agents can list, read, search, and cite its documents.

Access boundaries to decide​

  • Whose permissions the tool uses. DIAL Core decides who may call a Toolset. The external system decides what that call may see, based on the credentials used there. An organization-wide credential gives every caller the same account's permissions, while a per-user credential keeps each user's own permissions.
  • Guardrail coverage. MCP calls and routes are separate from the interceptor chain on model and application paths.

Further reading​