flowchart LR
client("AI Assistant <br><br>(Claude, Watsonx Orchestrate, etc.)") -- MCP --> server("Decision Intelligence<br>MCP Server")
server -- HTTPS --> runtime("IBM Decision Intelligence <br>or IBM ADS <br><br>Decision Runtime")
This Model Context Protocol (MCP) server empowers AI assistants by accessing decisions from IBM Decision Intelligence or IBM Automation Decision Services.
The MCP server is available as an npm package in the free npm registry at https://www.npmjs.com/package/di-mcp-server.
It supports both STDIO and streamable HTTP transports for local or remote deployments for supporting any MCP clients.
- Supercharge your AI Assistants with the decisioning capabilities of IBM Decision Intelligence: step by step instructions to use this MCP server for IBM Decision Intelligence
- Trusted automated decisions in Agentic application with IBM Decision Intelligence and MCP: this video shows how an agentic application can leverage automated decision services defined and hosted in the IBM Decision Intelligence platform to make accurate and explainable decisions
- Enrich your watsonx Orchestrate chat experience with IBM Decision Intelligence: step by step instructions to use decisionning capability in IBM watsonx Orchestrate.
You can use the MCP server available in the npm registry. If you want to develop your own MCP server or contribute to the development, see Developing the MCP server.
You can run the MCP server with npx to expose each operation of the last deployed version of a decision service as a MCP tool.
Create the MCP server using decisions deployed in IBM Decision Intelligence:
npx -y di-mcp-server --di-apikey <YOUR_DI_API_KEY> --url https://mytenant.decision-prod-us-south.decision.saas.ibm.com/ads/runtime/api/v1Create the MCP server using decisions deployed in IBM Automation Decision Services using the Zen APIKey authentication:
npx -y di-mcp-server --authentication-mode zenapikey --zen-username <YOUR_ZEN_USERNAME> --zen-apikey <YOUR_ZEN_API_KEY> --url https://myads-hostname/ads/runtime/api/v1Create the MCP server using decisions deployed in IBM Automation Decision Services using the basic authentication:
npx -y di-mcp-server --authentication-mode basic --basic-username <YOUR_USERNAME> --basic-password <YOUR_PASSWORD> --url https://myads-hostname/ads/runtime/api/v1Syntax of the command line:
npx -y di-mcp-server [--authentication-mode <AUTHENTICATION_MODE>] <CREDENTIALS> --url <RUNTIME_BASE_URL> [--transport <TRANSPORT>] [--deployment-spaces <DEPLOYMENT_SPACES>] [--decision-service-ids <DECISION_SERVICE_IDS>]where
AUTHENTICATION_MODE(optional) is the authentication mode to access the decision runtime; eitherdiapikey(default),zenapikeyorbasicrespectively for authenticating with Decision Intelligence API key, Zen API key or basic credentials (i.e. username and password)CREDENTIALSis one of the following options, depending on the chosen authentication mode:- For DI API key authentication:
--di-apikey <DI_API_KEY>whereDI_API_KEYis the API key to access the decision runtime for Decision Intelligence. - For Zen API key authentication:
--zen-username <ZEN_USERNAME> --apikey <ZEN_API_KEY>whereZEN_USERNAMEandZEN_API_KEYare the Zen API key credentials to access the decision runtime for Automation Decision Services (see Authorizing HTTP requests by using the Zen API key) - For basic authentication:
--basic-username <BASIC_USERNAME> --basic-password <BASIC_PASSWORD>whereBASIC_USERNAMEandBASIC_PASSWORDare the basic authentication credentials to connect to the decision runtime for Automation Decision Services.
- For DI API key authentication:
RUNTIME_BASE_URLis the base URL of the decision runtime REST API. For Decision Intelligence its pattern is:https://<TENANT_NAME>.decision-prod-us-south.decision.saas.ibm.com/ads/runtime/api/v1where TENANT_NAME is the name of the tenant.TRANSPORT(optional) is the transport protocol, eitherstdio(default) orhttp.DEPLOYMENT_SPACES(optional) is a comma-separated list of deployment spaces to scan (defaults todevelopment).DECISION_SERVICE_IDS(optional) If defined, comma-separated list of decision service ids to be exposed as tools
The following environment variables can be used in addition to the command line options.
| CLI Option | Environment Variable | Description |
|---|---|---|
| --authentication-mode | AUTHENTICATION_MODE | Optional authentication mode to connect to the decision runtime: diapikey (default), zenapikey or basic |
| --di-apikey | DI_APIKEY | Decision Intelligence API key |
| --zen-username | ZEN_USERNAME | Zen username |
| --zen-apikey | ZEN_APIKEY | Zen API key |
| --basic-username | BASIC_USERNAME | Basic authentication username |
| --basic-password | BASIC_PASSWORD | Basic authentication password |
| --decision-service-ids | DECISION_SERVICE_IDS | Optional comma-separated list of decision services (default: fetch all decision services) |
| --deployment-spaces | DEPLOYMENT_SPACES | Optional comma-separated list of deployment spaces to scan (default: development) |
| --debug | DEBUG | When the value is true, the debug messages are written to the stderr of the MCP server |
| --transport | TRANSPORT | Optional transport protocol: stdio (default) or http |
| --url | URL | Base URL of the decision runtime |
The MCP server for Decision Intelligence extends its capability by enabling AI applications, such as IBM watsonx Orchestrate and Claude, to discover and execute deployed decision services.
The article Enrich your watsonx Orchestrate chat experience with IBM Decision Intelligence demontrates how to integrate the capability to discover and execute decisions in an IBM watsonx Orchestrate agent using the Decision Intelligence MCP server.
See the WxO integration page for passing sensitive configuration settings to the DI MCP Server.
You can integrate decision services into Claude Desktop by adding the MCP server.
-
Locate the Claude Desktop configuration file.
Find your Claude configuration directory:
- macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
${HOME}/.config/Claude/claude_desktop_config.json
- macOS:
-
Add the MCP server configuration to the configuration file.
-
In the configuration directory, edit or create
claude_desktop_config.json:{ [..] "mcpServers": { "di-mcp-server": { "command": "npx", "args": [ "-y", "di-mcp-server", "--di-apikey", "<APIKEY>", "--url", "https://<TENANT_NAME>.decision-prod-us-south.decision.saas.ibm.com/ads/runtime/api/v1" ] } } [..] } -
Alternatively, you can use the
APIKEYandURLenvironment variables to respectively specify the API key and the base URL of the decision runtime REST API:{ [..] "mcpServers": { "di-mcp-server": { "command": "npx", "args": ["-y", "di-mcp-server"], "env": { "DI_APIKEY": "<APIKEY>", "URL": "https://<TENANT_NAME>.decision-prod-us-south.decision.saas.ibm.com/ads/runtime/api/v1" } } } [..] }
-
For more information, see https://modelcontextprotocol.io/quickstart/user.
You can integrate decision services into Cursor by adding the MCP server.
-
In Cursor, click the cog wheel icon to open the Cursor settings.
-
Click Tools & Integration in the settings categories that are listed on the left.
-
Click + New MCP Server, to open Cursor's
mcp.jsonconfiguration file. -
Add a new MCP server entry.
As for Claude Desktop, you can specify the API key and base URL of the decision runtime REST API using with one of the following methods:
- Using command line arguments:
{ [..] "mcpServers": { "di-mcp-server": { "command": "npx", "args": [ "-y", "di-mcp-server", "--di-apikey", "<APIKEY>", "--url", "https://<TENANT_NAME>.decision-prod-us-south.decision.saas.ibm.com/ads/runtime/api/v1" ] } } [..] } - Using environment variables:
{ [..] "mcpServers": { "di-mcp-server": { "command": "npx", "args": ["-y", "di-mcp-server"], "env": { "DI_APIKEY": "<APIKEY>", "URL": "https://<TENANT_NAME>.decision-prod-us-south.decision.saas.ibm.com/ads/runtime/api/v1" } } } [..] }
- Using command line arguments:
For more information, see Cursor's documentation about Installing MCP servers in the Cursor documentation.
When you integrate with MCP hosts, you might need to customize the tool names to meet specific requirements or limitations, such as:
- Maximum length restrictions
- Forbidden characters
- Naming conventions
By default, tool names are generated in the following way:
- Combines the decision service name with the operation ID:
decisionServiceName operationID - Replaces spaces and forward slashes with underscores:
decisionServiceName_operationID - Handles name collisions by using the decision service ID: use
decisionServiceID_operationIDifdecisionServiceName_operationIDalready exists
If the default naming strategy doesn't meet the requirements of your MCP hosts, you can specify custom tool names by setting the mcpToolName.OPERATION_ID decision metadata:
{
"map": {
[..]
"mcpToolName.OPERATION_ID": {
"name": "mcpToolName.OPERATION_ID",
"kind": "PLAIN",
"readOnly": false,
"value": "YourCustomToolName"
}
[..]
}
}where
OPERATION_IDis the operation unique identifierYourCustomToolNameis the desired tool name for the operation
flowchart LR
github["di-mcp-server github repository"] -- publish --> registry
registry["NPM registry"] -- npx -y di-mcp-server--> server
subgraph MCP Host
client["MCP Client"] <-- MCP/STDIO --> server("DI MCP Server")
end
server -- HTTPS --> runtime("Decision Runtime")
subgraph id["Decision Intelligence<br>or Automation Decision Services"]
runtime
end
client <-- MCP/HTTP --> server2("DI MCP Server") -- HTTPS --> runtime
© Copyright IBM Corporation 2025.