WxMCPServer

WxMCPServer is a webMethods Integration Server (IS) package that implements an MCP Server (currently as of 18-06-2025) for IBM webMethods Hybrid Integration (IWHI).
It requires either webMethods Integration Server or webMethods Microservices Runtime for hosting.

What's New

v1.5.0 (January 6, 2026)
- Introduced new header names, please refer to latest WxMCPServer 1.5 API specification
- Introduced new webMethods IS endpoint https://<server>:<port>/v1_5_0/mcp
- Introduced on-demand loading of tools. If tools are not presented in local cache (i.e. due to refreshing the package), they are loaded even without enforcing "tools/list"

Table of Contents


1. Overview

WxMCPServer enables you to expose your existing APIs, including their existing API policies, as MCP Tools through an enterprise-grade integration platform.

It leverages your existing API management infrastructure:

Screenshot

In the current solution approach, the MCP Tool Catalog API is grouped together with business APIs into an API product. This API product is then used to retrieve metadata (including the OpenAPI specification) for all APIs in the product.


2. Key Benefits


3. Requirements

WxMCPServer requires IBM webMethods Integration Server or IBM webMethods Microservices Runtime as the server (tested with v11.1).
To integrate with API Management solutions, you must implement the MCP Tool Catalog API.

There are instructions (and pre-configured assets) on how to implement this API on various systems

3.1 Implementing Tool Catalog on webMethods API Management

Detailed description for webMethods API Management

3.2 Implementing Tool Catalog on Azure API Management

Detailed description for Azure API Management

3.3 Implementing Tool Catalog on IBM API Connect

Detailed description for IBM API Connect

The approach is generally open for 3rd party API Management solutions ("Federated API Management").


4. Roles and Responsibilities

The following graphic provides an overview of the architecture:

Screenshot


5. Quick Start

5.1 MCP Tool Catalog API

5.2 webMethods Integration Server

5.3 Installing package WxMCPServer on webMethods Integration Server

5.4 Configuring WxMCPServer

-Use the global variables to define MCP server-wide settings. Use the API specifc configuration headers to overwrite these settings per MCP client.

5.5 Protecting WxMCPServer implementation

If you do not run a local MCP server , but a shared one used for enterprise scenarios, you should put the WxMCPServer API on the API Gateway in front of the WxMCPServer implementation. Ideally you put it into the same API product than MCP Tool Catalog API, so that all APIs share the same credentials ("Invoke, what you can list and vice versa").
See full enterprise architecture below:

Screenshot

There is a pre-configured archive for webMethods API Gateway, that implements WxMCPServer API for webMethods API Gateway


6. Integration Server Global Variables

You can set default values for WxMCPServer, which are used if no corresponding HTTP headers are sent.

Note: MCP client HTTP headers always take precedence over default values.

Variable Name Required Default Value Description
wxmcp.cache.manager.name No WxMCP_Cache_Manager_Default The name of the Cache Manager to be used.
wxmcp.auth.type Yes (none) Authentication type: "OAUTH" or "API_KEY".
wxmcp.tool.catalog.base.url Yes (none) Base URL of your MCP Tool Catalog API on API Gateway, e.g., https://<myWebMethodsAPIGateway>/gateway/WxMCP-Tool-Catalog-wMAPIGW/1.1
wxmcp.api.key.headername Conditional (none) Used only when wxmcp.auth.type = "API_KEY". Specifies the API key header name.
wxmcp.tool.header.prefix No header_ Default prefix for tool header properties.
wxmcp.tool.query.prefix No query_ Default prefix for tool query parameter properties.
wxmcp.tool.path.prefix No path_ Default prefix for tool path parameter properties.
wxmcp.tool.response.mode No both Tool response format: text, structured, or both.
wxmcp.response.code No stdio Response mode: "stdio" (always HTTP 200) or "http" (actual status codes).

7. Configuration Examples

7.1 Claude Desktop — stdio | npx | API Key

{
  "mcpServers": {
    "mcp-iwhi-apikey-demo": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://<Integration Server Host>:<Integration Server Port>/mcp",
        "--header",
        "x-auth-type:API_KEY",
        "--header",
        "x-api-key:<The API Key>",
        "--header",
        "x-tool-catalog-base-url:https://<webMethods API Gateway Host>:<webMethods API Gateway Port>/gateway/WxMCP-Tool-Catalog/1.1",
        "--header",
        "x-api-key-headername:<Your API Key header - i.e. x-Gateway-APIKey for webMethods>",
        "--header",
        "x-tool-header-prefix:header_",
        "--header",
        "x-tool-query-prefix:query_",
        "--header",
        "x-tool-path-prefix:path_",
        "--header",
        "x-tool-response-mode:structured",
        "--header",
        "x-response-code:http"
      ]
    }
  }
}

7.2 Claude Desktop — stdio | npx | OAUTH Style

{
  "mcpServers": {
    "mcp-iwhi-oauth-demo": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://<Integration Server Host>:<Integration Server Port>/mcp",
        "--header",
        "x-auth-type:OAUTH",
        "--header",
        "x-tool-catalog-base-url:https://<webMethods API Gateway Host>:<webMethods API Gateway Port>/gateway/WxMCP-Tool-Catalog/1.1",
        "--header",
        "x-oauth-bearer-token:<The bearer token>",
        "--header",
        "x-tool-header-prefix:header_",
        "--header",
        "x-tool-query-prefix:query_",
        "--header",
        "x-tool-path-prefix:path_",
        "--header",
        "x-tool-response-mode:structured",
        "--header",
        "x-response-code:http"
      ]
    }
  }
}

7.3 IBM watsonx Orchestrate | Langflow - stdio | uvx | API Key

uvx mcp-proxy 
--headers x-api-key <Your API Key header - i.e. x-Gateway-APIKey for webMethods>
--headers x-tool-catalog-base-url https://<webMethods API Gateway Host>:<webMethods API Gateway Port>/gateway/WxMCP-Tool-Catalog/1.1
http://<Integration Server Host>:<Integration Server Port>/mcp --transport streamablehttp

7.4 VS Code MCP Server - Streamable HTTP

{
  "servers": {
    "my-wxmcp-http-server": {
      "url": "http://<Integration Server Host>:<Integration Server Port>/mcp",
      "type": "http",
      "headers": {
        "x-auth-type": "API_KEY",
        "x-tool-catalog-base-url": "https://<webMethods API Gateway Host>:<webMethods API Gateway Port>/gateway/WxMCP-Tool-Catalog/1.1",
        "x-api-key": "<Your API Key header - i.e. x-Gateway-APIKey for webMethods>",
        "Content-Type": "application/json",
        "x-api-key-headername": "x-Gateway-APIKey"
      }
    }
  },
  "inputs": []
}

8. Limitations