npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

di-mcp-server-experimental

v0.0.3

Published

[![Build and test](https://github.com/DecisionsDev/di-mcp-server/actions/workflows/build.yml/badge.svg)](https://github.com/DecisionsDev/di-mcp-server/actions/workflows/build.yml) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LI

Readme

MCP server for IBM Decision Intelligence and IBM Automation Decision Services

Build and test License npm Version npm Downloads

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.

Resources

Getting started with the MCP server

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.

For IBM Decision Intelligence

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/v1

For IBM Automation Decision Services

Zen APIKey authentication

Create 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/v1

Basic authentication

Create 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/v1

Command line syntax

Syntax of the command line:

npx -y di-mcp-server [--authentication-mode <AUTHENTICATION_MODE>] <CREDENTIALS> --url <RUNTIME_BASE_URL> [--transport <TRANSPORT>] [--deployment-spaces <DEPLOYMENT_SPACES>]

where

  • AUTHENTICATION_MODE (optional) is the authentication mode to access the decision runtime; either diapikey (default), zenapikey or basic respectively for authenticating with Decision Intelligence API key, Zen API key or basic credentials (i.e. username and password)
  • CREDENTIALS is one of the following options, depending on the chosen authentication mode:
    • For DI API key authentication: --di-apikey <DI_API_KEY> where DI_API_KEY is the API key to access the decision runtime for Decision Intelligence.
    • For Zen API key authentication: --zen-username <ZEN_USERNAME> --apikey <ZEN_API_KEY> where ZEN_USERNAME and ZEN_API_KEY are 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> where BASIC_USERNAME and BASIC_PASSWORD are the basic authentication credentials to connect to the decision runtime for Automation Decision Services.
  • RUNTIME_BASE_URL is 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/v1 where TENANT_NAME is the name of the tenant.
  • TRANSPORT (optional) is the transport protocol, either stdio (default) or http.
  • DEPLOYMENT_SPACES (optional) is a comma-separated list of deployment spaces to scan (defaults to development).
  • 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 | | --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 |

Integrating decision services into AI applications

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.

Integrating decision services into IBM watsonx Orchestrate

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.

Specifying the APIKEY and URL environment variables

You can use the connection setting to specity the API key and URL environment variables.

  1. Open the main menu, expand Manage, and then click Connections. The Connection settings opens.

    Thumbnail

  2. Click Add new connection to launch the Add new connection wizard.

    Thumbnail

  3. Enter the Connection ID and Display name fields, and then click Save and continue.

    Thumbnail

  4. In the Configure draft connection panel:

    • Select Key Value Pair as Authentication Type.
    • Enter the Key and Value fields to define the DI_APIKEY environment variable.
    • Click Add key value pair.

    Thumbnail

  5. Enter the Key and Value fields to define the URL environment variable, and then click Connect.

    Thumbnail

  6. When the draft connection is connected, click Next.

    Thumbnail

  7. Similarly configure the live connection. When it is done, click Add connection.

    Thumbnail

  8. In the Add MCP Server wizard:

    • Select the display name corresponding to the connection you just configured.
    • Enter the npx command WITHOUT the --di-apikey and --url arguments.
    • Click Connect, and then click Done.

    Thumbnail

Integrating decision services into Claude Desktop

You can integrate decision services into Claude Desktop by adding the MCP server.

  1. 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
  2. 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 APIKEY and URL environment 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.

Integrating decision services into Cursor

You can integrate decision services into Cursor by adding the MCP server.

  1. In Cursor, click the cog wheel icon to open the Cursor settings.

  2. Click Tools & Integration in the settings categories that are listed on the left.

    Thumbnail

  3. Click + New MCP Server, to open Cursor's mcp.json configuration file.

    Thumbnail

  4. 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"
                  }
              }
          }
          [..]
      }

For more information, see Cursor's documentation about Installing MCP servers in the Cursor documentation.

Using custom tool names

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

Default tool naming algorithm

By default, tool names are generated in the following way:

  1. Combines the decision service name with the operation ID: decisionServiceName operationID
  2. Replaces spaces and forward slashes with underscores: decisionServiceName_operationID
  3. Handles name collisions by using the decision service ID: use decisionServiceID_operationID if decisionServiceName_operationID already exists

Customizing tool names with the decision runtime REST API

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_ID is the operation unique identifier
  • YourCustomToolName is the desired tool name for the operation

Technical details

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

License

Apache 2.0

Notice

© Copyright IBM Corporation 2025.