IBM Operational Decision Manager (ODM) is a business rules management system that helps organizations automate, manage, and govern business decisions. ODM allows you to define, deploy, and update decision logic outside of application code, making your business more agile and responsive.
The Model Context Protocol (MCP) server acts as a bridge between IBM ODM and modern AI assistants or orchestration platforms. By connecting MCP to ODM Decision Server Runtime, you can:
- Expose decision services as tools and prompts for AI assistants
- Enable dynamic decision automation in workflows
- Simplify integration with Watson Orchestrate and other platforms
- Centralize business logic and make it accessible to end users and bots
- Decision Storage: Demonstrates resource management with a local storage system
- Tools: Add and invoke ODM decision services as tools
The Decision MCP Server can be configured using command-line options or environment variables.
All configuration parameters can be set via CLI arguments or environment variables—CLI arguments take precedence.
Depending on your IBM ODM deployment, you may need to use different authentication methods:
- Authentication: Zen API Key (recommended)
- How to configure:
- CLI:
--zenapikey <your-zen-api-key>
- Env:
ZENAPIKEY=<your-zen-api-key>
- CLI:
- Example:
uv run decision-mcp-server --url=https://<cpd-odm-url>/odm/res --zenapikey=<your-zen-api-key>
- Authentication: Basic Auth (username/password) or OpenID Connect (Bearer token)
- How to configure:
- Basic Auth:
- CLI:
--username <user> --password <pass>
- Env:
ODM_USERNAME=<user> ODM_PASSWORD=<pass>
- CLI:
- OpenID Connect:
- CLI:
--bearertoken <token>
- Env:
BEARER=<token>
- CLI:
- Basic Auth:
- Example (Basic Auth):
uv run decision-mcp-server --url=http://<odm-k8s-url>/res --username=odmAdmin --password=odmAdmin
- Example (OIDC):
uv run decision-mcp-server --url=http://<odm-k8s-url>/res --bearertoken=<your-oidc-token>
- Authentication: Basic Auth (username/password)
- How to configure:
- CLI:
--username <user> --password <pass>
- Env:
ODM_USERNAME=<user> ODM_PASSWORD=<pass>
- CLI:
- Example:
uvx run decision-mcp-server --url=http://localhost:9060/res --username=odmAdmin --password=odmAdmin
Tip: You can mix CLI arguments and environment variables as needed. CLI arguments always take precedence.
CLI Argument | Environment Variable | Description | Default |
---|---|---|---|
--url |
ODM_URL |
ODM service URL | http://localhost:9060/res |
--runtime-url |
ODM_RUNTIME_URL |
ODM runtime service URL | http://localhost:9060/DecisionService |
--username |
ODM_USERNAME |
ODM username for basic authentication | odmAdmin |
--password |
ODM_PASSWORD |
ODM password for basic authentication | odmAdmin |
--zenapikey |
ZENAPIKEY |
Zen API Key for authentication (Cloud Pak for Business Automation) | |
--bearertoken |
BEARER |
OpenID Bearer token for authentication (Kubernetes) | |
--verifyssl |
VERIFY_SSL |
Whether to verify SSL certificates (True or False ) |
True |
ODM Offering | Authentication Method(s) | CLI/Env Example(s) |
---|---|---|
Cloud Pak for Business Automation | Zen API Key | --zenapikey / ZENAPIKEY |
Kubernetes | Basic Auth, OpenID Connect | --username , --password , --bearertoken / ODM_USERNAME , ODM_PASSWORD , BEARER |
Developer (Docker/Local) | Basic Auth | --username , --password / ODM_USERNAME , ODM_PASSWORD |
- Python 3.13+
- Docker
- Watson Orchestrate ADK
git clone <repo-url>
cd decision-mcp-server
-
Install Watson Orchestrate ADK
Follow the official guide.
docker run -e LICENSE=accept --network wxo-server -p 9060:9060 -p 9443:9443 --name odm -e SAMPLE=true icr.io/cpopen/odm-k8s/odm:9.5
- Import the sample material
- Open the Decision Server Console Decision Server Console
- Login - odmAdmin / odmAdmin
- Click Explorer
- Deploy button
- Select the file in
<DIRECTORY>/samples/hr_ruleapps.jar
- Click Deploy button
- Register the MCP Server
Use the Waston orchestrate command line
orchestrate toolkits import --kind mcp --name DecisionServer --description "A MCP IBM Decision Server" --package-root $PWD --command "uv run decision-mcp-server --url=http://odm:9060/res"
This should return something like that
[INFO] - ✅ The following tools will be imported:
• vacation
[INFO] - Successfully imported tool kit DecisionServer
Notes:
- If you have issue to import the mcp server verify you have not .venv directory. If so remove it by using
rm -R .venv
-
Use Waston Orchestrate with ODM
- Start the Watson Orchestrate Chat UI
orchestrate chat start
-
Click
Create a new Agent
- Name : Decision Agent
- Description : A Decisional Agent
Click
Create
button
-
Click
Manage Agents
-
Select the
Decision Agent
-
Click Toolset
-
Click
Add tools
-
Click Add from Local instance
-
Check
DecisionServer:vacation
-
Click
Add Agents
button
Now we are ready to use this agent. Select the Decision Agent chat
Then ask this question :
John Doe is an Acme Corp employee who was hired on November 1st, 1999. How many vacation days is John Doe entitled to each year?
This should return
John Doe is entitled to 43 days per year.
- Python 3.13+
- uv
- Rancher Docker - [Optional if you will used ODM deployed on Kubernetes]
- Claude Desktop
- Check uv and Python
uv python list
...
cpython-3.13.3-macos-aarch64-none /opt/homebrew/opt/[email protected]/bin/python3.13 -> ../Frameworks/Python.framework/Versions/3.13/bin/python3.13
- Check docker installation (Optional if you will used ODM deployed on Kubernetes)
docker search ibmcom/odm
NAME DESCRIPTION STARS OFFICIAL
ibmcom/odm Official IBM Operational Decision Manager fo… 31
...
-
Open Claude Desktop Settings Start by accessing the Claude Desktop settings. Click on the Claude menu in your system’s menu bar (not the settings within the Claude window itself) and select “Settings…”On macOS, this appears in the top menu bar.
-
Access Developer Settings
In the Settings window, navigate to the “Developer” tab in the left sidebar. This section contains options for configuring MCP servers and other developer features.
Click the “Edit Config” button to open the configuration file:
Developer settings showing Edit Config button This action creates a new configuration file if one doesn’t exist, or opens your existing configuration.
The file is located at:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json
- Configure the
decision-mcp-server
Server
Replace the contents of the configuration file with the following JSON structure. This configuration tells Claude Desktop to start the Decison MCP Server with access:
{
"mcpServers": {
"decision-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/DecisionsDev/decision-mcp-server",
"decision-mcp-server"
]
}
}
}
- Restart Claude Desktop
For more details on IBM ODM, see IBM Documentation. For Watson Orchestrate ADK, see Getting Started.
-
Support configuration via CLI and environment variables
Allow configuration of the MCP server (host, port, etc.) through command-line arguments and environment variables. -
Verify Zen authentication support
Ensure compatibility with IBM Zen-based authentication flows. -
Support multiple Decision Server endpoints
Verify connection when the Decision Server Console and Runtime are hosted on different URLs. -
Test and document Claude Desktop integration
Ensure compatibility with Claude Desktop and provide integration instructions. -
Record demo video for Claude Desktop integration
Capture a short video showcasing the MCP server in action with Claude Desktop. -
Test Cursor AI integration
-
Document the integration process
-
Record demo video for Cursor AI integration
Capture a short walkthrough of Cursor AI usage with the MCP server. -
Implement Notification Context
Add support for the MCPnotification
context to handle asynchronous updates or events. -
Store and expose Decision Trace executions as MCP resources
Persist decision traces and make them available as MCP resources for querying or analysis. -
Expose a tool to explain decision Write a tool that extract rules from DC and explain the decision base on the trace.
-
Verify OpenID Connect authentication
Confirm proper behavior with OIDC identity providers and document setup.