WxMCPServer is a webMethods Integration Server (IS) package that implements an MCP Server for IBM webMethods Hybrid Integration (IWHI).
It requires either webMethods Integration Server or webMethods Microservices Runtime for hosting.
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:

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.
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
Detailed description for webMethods API Management
Detailed description for Azure API Management
Detailed description for IBM API Connect
The approach is generally open for 3rd party API Management solutions ("Federated API Management").
The following graphic provides an overview of the architecture:

If you are running locally you can use webMethods Service Designer and the webMethods Package Registry to load the package WxMCPServer

If you are running inside IBM webMethods Hybrid Integration (SaaS) you can add this GitHub repository as external package to your IBM webMethods Hybrid Integration project
-Use the global variables to define MCP server-wide settings. Use the API specifc configuration headers to overwrite these settings per MCP client.
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:

There is a pre-configured archive for webMethods API Gateway, that implements WxMCPServer API for webMethods API Gateway
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.mode |
No | stdio |
Response mode: "stdio" (always HTTP 200) or "http" (actual status codes). |
{
"mcpServers": {
"mcp-iwhi-apikey-demo": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://<Integration Server Host>:<Integration Server Port>/mcp",
"--header",
"auth_type:API_KEY",
"--header",
"api_key:<The API Key>",
"--header",
"tool_catalog_base_url:https://<webMethods API Gateway Host>:<webMethods API Gateway Port>/gateway/WxMCP-Tool-Catalog/1.1",
"--header",
"api_key_headername:<Your API Key header - i.e. x-Gateway-APIKey for webMethods>",
"--header",
"tool_header_prefix:header_",
"--header",
"tool_query_prefix:query_",
"--header",
"tool_path_prefix:path_",
"--header",
"tool_response_mode:structured",
"--header",
"response_code:http"
]
}
}
}
{
"mcpServers": {
"mcp-iwhi-oauth-demo": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://<Integration Server Host>:<Integration Server Port>/mcp",
"--header",
"auth_type:OAUTH",
"--header",
"tool_catalog_base_url:https://<webMethods API Gateway Host>:<webMethods API Gateway Port>/gateway/WxMCP-Tool-Catalog/1.1",
"--header",
"oauth_bearer_token:<The bearer token>",
"--header",
"tool_header_prefix:header_",
"--header",
"tool_query_prefix:query_",
"--header",
"tool_path_prefix:path_",
"--header",
"tool_response_mode:structured",
"--header",
"response_code:http"
]
}
}
}
uvx mcp-proxy
--headers api_key <Your API Key header - i.e. x-Gateway-APIKey for webMethods>
--headers 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
{
"servers": {
"my-wxmcp-http-server": {
"url": "http://<Integration Server Host>:<Integration Server Port>/mcp",
"type": "http",
"headers": {
"auth_type": "API_KEY",
"tool_catalog_base_url": "https://<webMethods API Gateway Host>:<webMethods API Gateway Port>/gateway/WxMCP-Tool-Catalog/1.1",
"api_key": "<Your API Key header - i.e. x-Gateway-APIKey for webMethods>",
"Content-Type": "application/json",
"api_key_headername": "x-Gateway-APIKey"
}
}
},
"inputs": []
}
"Content-Type": "application/json" is supported for sending and receiving data to APIs.