watsonx MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@watsonx MCP Servergenerate a haiku about coding"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
watsonx MCP Server
MCP server for IBM watsonx.ai integration with Claude Code. Enables Claude to delegate tasks to IBM's foundation models (Granite, Llama, Mistral, etc.).
Features
Text Generation - Generate text using watsonx.ai foundation models
Chat - Have conversations with watsonx.ai chat models
Embeddings - Generate text embeddings
Model Listing - List all available foundation models
Related MCP server: watsonx MCP Server
Available Tools
Tool | Description |
| Generate text using watsonx.ai models |
| Chat with watsonx.ai models |
| Generate text embeddings |
| List available models |
Setup
1. Install Dependencies
cd ~/watsonx-mcp-server
npm install2. Configure Environment
Set these environment variables:
WATSONX_API_KEY=your-ibm-cloud-api-key
WATSONX_URL=https://us-south.ml.cloud.ibm.com
WATSONX_SPACE_ID=your-deployment-space-id # Recommended: deployment space
WATSONX_PROJECT_ID=your-project-id # Alternative: project IDNote: Either WATSONX_SPACE_ID or WATSONX_PROJECT_ID is required for text generation, embeddings, and chat. Deployment spaces are recommended as they have Watson Machine Learning (WML) pre-configured.
3. Add to Claude Code
The MCP server is already configured in ~/.claude.json:
{
"mcpServers": {
"watsonx": {
"type": "stdio",
"command": "node",
"args": ["/Users/matthewkarsten/watsonx-mcp-server/index.js"],
"env": {
"WATSONX_API_KEY": "your-api-key",
"WATSONX_URL": "https://us-south.ml.cloud.ibm.com",
"WATSONX_SPACE_ID": "your-deployment-space-id"
}
}
}
}Usage
Once configured, Claude can use watsonx.ai tools:
User: Use watsonx to generate a haiku about coding
Claude: [Uses watsonx_generate tool]
Result: Code flows like water
Bugs arise, then disappear
Programs come aliveAvailable Models
Some notable models available:
ibm/granite-3-3-8b-instruct- IBM Granite 3.3 8B (recommended)ibm/granite-13b-chat-v2- IBM Granite chat modelibm/granite-3-8b-instruct- Granite 3 instruct modelmeta-llama/llama-3-70b-instruct- Meta's Llama 3 70Bmistralai/mistral-large- Mistral AI large modelibm/slate-125m-english-rtrvr-v2- Embedding model
Use watsonx_list_models to see all available models.
Architecture
Claude Code (Opus 4.5)
│
└──▶ watsonx MCP Server
│
└──▶ IBM watsonx.ai API
│
├── Granite Models
├── Llama Models
├── Mistral Models
└── Embedding ModelsTwo-Agent System
This enables a two-agent architecture where:
Claude (Opus 4.5) - Primary reasoning agent, handles complex tasks
watsonx.ai - Secondary agent for specific workloads
Claude can delegate tasks to watsonx.ai when:
IBM-specific model capabilities are needed
Running batch inference on enterprise data
Using specialized Granite models
Generating embeddings for RAG pipelines
IBM Cloud Resources
This MCP server uses:
Service: watsonx.ai Studio (data-science-experience)
Plan: Lite (free tier)
Region: us-south
Create your own watsonx.ai project and deployment space in IBM Cloud.
Integration with IBM Z MCP Server
This watsonx MCP server works alongside the IBM Z MCP server:
Claude Code (Opus 4.5)
│
├──▶ watsonx MCP Server
│ └── Text generation, embeddings, chat
│
└──▶ ibmz MCP Server
└── Key Protect HSM, z/OS ConnectDemo scripts in the ibmz-mcp-server:
demo-full-stack.js- Full 5-service pipelinedemo-rag.js- RAG with watsonx embeddings + Granite
Document Analyzer
The document analyzer (document-analyzer.js) provides powerful tools for analyzing your external drive data using watsonx.ai:
Commands
# View document catalog (9,168 documents)
node document-analyzer.js catalog
# Summarize a document
node document-analyzer.js summarize 1002519.txt
# Analyze document type, topics, entities
node document-analyzer.js analyze 1002519.txt
# Ask questions about a document
node document-analyzer.js question 1002519.txt 'What AWS credentials are needed?'
# Generate embeddings for documents
node document-analyzer.js embed
# Semantic search across documents
node document-analyzer.js search 'IBM Cloud infrastructure'Features
Summarization: Generate concise summaries of any document
Analysis: Extract document type, topics, entities, and sentiment
Q&A: Ask natural language questions about document content
Embeddings: Generate 768-dimensional vectors for semantic search
Semantic Search: Find similar documents using vector similarity
Demo
Run the full demo:
./demo-external-drive.shEmbedding Index & RAG
The embedding-index.js tool provides semantic search and RAG (Retrieval Augmented Generation):
# Build an embedding index (50 documents)
node embedding-index.js build 50
# Semantic search
node embedding-index.js search 'cloud infrastructure'
# RAG query - retrieves relevant docs and generates answer
node embedding-index.js rag 'How do I set up AWS for Satellite?'
# Show index statistics
node embedding-index.js statsBatch Processor
The batch-processor.js tool processes multiple documents at once:
# Classify documents into categories
node batch-processor.js classify 20
# Extract topics from documents
node batch-processor.js topics 15
# Generate one-line summaries
node batch-processor.js summarize 10
# Full analysis (classify + topics + summary)
node batch-processor.js full 10Categories: technical, business, creative, personal, code, legal, marketing, educational, other
Files
index.js- MCP server implementationdocument-analyzer.js- Document analysis CLI toolembedding-index.js- Embedding index and RAG toolbatch-processor.js- Batch document processordemo-external-drive.sh- Demo scriptpackage.json- DependenciesREADME.md- This file
Author
Matthew Karsten
License
MIT
Available Tools
13 toolskey_protect_create_keyA
Create a new encryption key in IBM Key Protect (stored in FIPS 140-2 Level 3 HSM)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new key | |
| type | No | Key type: root_key (for wrapping) or standard_key (for encryption) | standard_key |
| description | No | Description of the key's purpose | |
| extractable | No | Whether the key material can be extracted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds useful security context ('stored in FIPS 140-2 Level 3 HSM') and implies a persistent write operation, but it does not disclose permissions, idempotency, return behavior, or rate limits. This is a moderate gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes meaning: the action, the resource, the service, and the security storage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is quite brief for a create operation with no output schema and no annotations. It covers the fundamental purpose and adds security context, but it omits expected return values, next steps, or any caveats. Schema covers parameters well, but the overall description could be more complete for a tool that creates a persistent resource.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully describes all four parameters including defaults and enum values. The description adds no parameter-level detail beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create'), the resource ('encryption key'), and the service ('IBM Key Protect'). This distinguishes it from sibling tools like key_protect_list_keys, key_protect_wrap_key, and key_protect_delete_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a new encryption key is needed, but it does not explicitly state when to use this tool over alternatives or mention any exclusions. There is no guidance on prerequisites or when not to use it, though the create action is self-evident among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
key_protect_delete_keyA
Delete an encryption key from IBM Key Protect (irreversible)
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force deletion even if key has associated resources | |
| key_id | Yes | The ID of the key to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the most critical behavioral trait: the deletion is 'irreversible'. This provides a safety warning, but it does not mention permissions, what happens to associated resources, or the effect of the 'force' parameter. Since no annotations are provided, the description carries the full burden and only partially meets it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that front-loads the action and the key warning. No irrelevant information, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with schema-covered parameters and no output schema, the description is mostly complete. However, it could mention the 'force' parameter behavior for associated resources, which is only in the schema, and it lacks information about potential failures or permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions at 100% coverage, so the description does not need to add parameter information. The description itself does not reference parameters, but the schema already provides adequate semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Delete an encryption key from IBM Key Protect', with a specific verb and resource. It distinguishes itself from sibling tools like key_protect_list_keys and key_protect_create_key, and adds the unique irreversibility warning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description simply states the action without contextual decision-making information, e.g., when to use force or what to consider before deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
key_protect_get_keyA
Get details of a specific key from IBM Key Protect
| Name | Required | Description | Default |
|---|---|---|---|
| key_id | Yes | The ID of the key to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It merely states 'Get details' without explaining whether this is a read-only operation, what specific details are returned, or any potential errors (e.g., key not found). The verb implies read-only, but there is no additional context about response structure or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the tool's purpose. It is front-loaded with the action and resource, and there is no redundant or extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter get operation, the description is minimally sufficient: it identifies the action and requires key_id. However, there is no output schema and the description does not specify what 'details' means (e.g., metadata, policies, or key material). Given that the tool could return security-sensitive data, more detail about the response would improve completeness. The missing usage guidance also lowers the score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (key_id is fully described as 'The ID of the key to retrieve'). The description does not add any extra parameter meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('details of a specific key'), and the system ('IBM Key Protect'). It distinguishes itself from sibling tools like key_protect_list_keys (listing) and key_protect_delete_key (deletion) by specifying retrieval of a single key's details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is implied: use this when you need details for a specific key, identified by key_id. However, there is no explicit guidance on when not to use it or how it compares to alternatives like listing keys or wrapping/unwrapping. The context of Name and sibling tools suggests the use case, but the description does not articulate it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
key_protect_list_keysB
List encryption keys from IBM Key Protect (HSM-backed key management on IBM Z infrastructure)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of keys to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention that this is a read-only operation, what the response includes, pagination behavior, or any access requirements. The parenthetical about HSM backing is contextual, not behavioral.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and resource, with no wasted words. It is appropriately concise for a straightforward list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description should explain return values or important behavioral details. It does neither, leaving the agent without information about what the response looks like or any caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both limit and offset have descriptions), so the baseline is 3. The description adds no extra parameter context, but the schema already documents the parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('List') and resource ('encryption keys from IBM Key Protect'), which clearly distinguishes it from sibling operations like create/get/wrap/unwrap/delete. The parenthetical adds helpful context about the service type, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives (e.g., get_key for a single key). The description only states what it does, not when to select it, and lacks any prerequisite or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
key_protect_unwrap_keyA
Unwrap (decrypt) data using a root key in IBM Key Protect
| Name | Required | Description | Default |
|---|---|---|---|
| aad | No | Additional authentication data (must match wrap AAD) | |
| key_id | Yes | The ID of the root key to use for unwrapping | |
| ciphertext | Yes | Base64-encoded wrapped data encryption key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It only says 'Unwrap (decrypt) data', which merely restates the function. It does not mention whether the operation is read-only, requires special permissions, has side effects, or what happens on AAD mismatch. This lack of non-obvious behavioral disclosure is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded with the main action. No wasted words. It is appropriately concise for a straightforward tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 3 parameters all fully described in the schema, and no output schema or annotations, the description adequately states the core purpose. It could mention the return value (plaintext) or error conditions, but these are not strictly necessary for a simple operation. The description is sufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for parameters like key_id, ciphertext, and aad. It does not explain parameter relationships or provide usage examples, so it neither enhances nor detracts from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: 'Unwrap (decrypt)' with a specific resource 'data using a root key'. This distinguishes it from sibling tools like key_protect_wrap_key, which performs the inverse operation. The verb and resource are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (unwrap data) but does not explicitly state when to use this tool versus alternatives like key_protect_wrap_key. It provides no context such as 'use this for data wrapped with wrap_key' or any exclusions. The usage is somewhat inferred from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
key_protect_wrap_keyA
Wrap (encrypt) data using a root key in IBM Key Protect - for envelope encryption
| Name | Required | Description | Default |
|---|---|---|---|
| aad | No | Additional authentication data (AAD) for AEAD encryption | |
| key_id | Yes | The ID of the root key to use for wrapping | |
| plaintext | Yes | Base64-encoded data encryption key to wrap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the operation ('wrap (encrypt) data') and gives the envelope encryption context, but fails to mention that this operation does not modify the root key (i.e., it's a safe read-like operation), that it returns ciphertext, or any required permissions. This is a significant gap for a cryptographic tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that clearly states the action and purpose. There is no redundant wording or filler, and it earns its place by adding the envelope encryption context beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters, no annotations, and no output schema. The description provides some context (envelope encryption) but does not explain what the function returns (wrapped ciphertext), the role of AAD, or any behavioral expectations. While the schema covers parameters, the lack of output/behavioral detail leaves gaps especially for a crypto operation. It is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (key_id, plaintext, aad) having a description. The tool description adds the high-level concept of envelope encryption but no additional parameter-level meaning. Baseline 3 is appropriate since the schema already documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Wrap (encrypt)' and the resource 'data using a root key in IBM Key Protect', and adds the purpose 'for envelope encryption'. This distinguishes it from sibling tools like key_protect_unwrap_key and key_protect_list_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for envelope encryption' provides clear context for when this tool is appropriate. However, it does not explicitly mention alternatives (e.g., using unwrap_key for decryption) or when not to use this tool. The sibling list implies the encryption/decryption pairing, but the description itself lacks exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watsonx_chatD
Have a conversation with watsonx.ai chat models
| Name | Required | Description | Default |
|---|---|---|---|
| messages | Yes | Array of chat messages | |
| model_id | No | Chat model ID | ibm/granite-3-3-8b-instruct |
| temperature | No | ||
| max_new_tokens | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states a high-level action and fails to mention important behavioral traits like whether the response is streaming, if authentication is required, rate limits, or how errors are handled. The tool appears to be a black box.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, so it is concise in length, but it is under-specified for a tool with four parameters. Unlike the high-calibration example where two sentences carried complete information, here the brevity removes essential context, making it more of an under-specification than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is inadequate for the tool's complexity. There is no output schema, no annotations, and the description does not mention return format, message structure requirements, or any operational details. An agent cannot reliably invoke this tool based on the provided information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond the schema. Since schema coverage is only 50% (temperature and max_new_tokens lack descriptions), the description should compensate but does not. It doesn't clarify the role of messages, model selection, or generation parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Have a conversation with watsonx.ai chat models' clearly identifies the tool as a chat-based interaction with watsonx.ai models, using a specific verb and resource. It distinguishes from siblings like watsonx_generate (likely single-turn generation) and watsonx_embeddings, though it doesn't explicitly mention multi-turn conversation or response generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as watsonx_generate or watsonx_list_models. The description does not state any exclusions, prerequisites, or typical use cases, leaving the agent without direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watsonx_embeddingsB
Generate text embeddings using watsonx.ai embedding models
| Name | Required | Description | Default |
|---|---|---|---|
| texts | Yes | Array of texts to embed | |
| model_id | No | Embedding model ID | ibm/slate-125m-english-rtrvr-v2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description would need to disclose behavioral traits such as output format or side effects, but it only states the core action. No additional context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff, making it easy to parse and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and no output schema, but the description doesn't explain the return format or provide usage context, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both texts and model_id having descriptions, so the baseline is 3. The description adds no parameter-specific meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates text embeddings using watsonx.ai models, which is a specific verb and resource that distinguishes it from sibling tools like watsonx_chat and watsonx_generate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It is a bare statement of functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watsonx_generateC
Generate text using IBM watsonx.ai foundation models (Granite, Llama, Mistral, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| top_k | No | Top-k sampling | |
| top_p | No | Top-p nucleus sampling | |
| prompt | Yes | The prompt to send to the model | |
| model_id | No | Model ID (e.g., 'ibm/granite-3-3-8b-instruct', 'meta-llama/llama-3-70b-instruct') | ibm/granite-3-3-8b-instruct |
| temperature | No | Temperature for sampling (0-2) | |
| max_new_tokens | No | Maximum number of tokens to generate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action and model examples; it does not disclose output format, non-determinism, latency, authentication requirements, rate limits, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, delivering the essential information efficiently. It is compact and front-loaded, earning a high score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only source of behavioral and contextual information. It provides only a high-level overview and lacks details on return values, prerequisites, error handling, or how it differs from watsonx_chat. This is insufficient for a text-generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all six parameters having descriptive names and default values. The tool description adds no additional parameter context, but the schema already provides sufficient semantic coverage, yielding a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generate') and resource ('text'), and names the platform (IBM watsonx.ai) with example model families. It clearly states the core function but does not explicitly differentiate from the sibling watsonx_chat, which likely also generates text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool over alternatives like watsonx_chat or watsonx_embeddings. There are no use-case descriptions, exclusions, or mention of different tool behaviors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watsonx_list_modelsA
List available foundation models in watsonx.ai
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. 'List' implies a read-only operation, but the description does not explicitly confirm non-mutation, mention pagination, rate limits, or output format. For a zero-parameter listing tool, the risk is low, but the lack of explicit safety disclosure is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, self-contained sentence with no filler or repetition. It is front-loaded and efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, no output schema, no annotations), the description is nearly complete. It states the resource and action, though it could improve by noting what kind of data is returned (e.g., model IDs) or its role relative to sibling generation tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so the description need not explain parameter semantics. The baseline of 4 is appropriate because there is nothing to add beyond the existing schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('available foundation models in watsonx.ai'), clearly distinguishing it from sibling tools like watsonx_generate, watsonx_embeddings, and watsonx_chat which operate on models rather than list them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not state that this is a prerequisite for model-consuming tools or mention any exclusions, leaving the agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zos_connect_call_serviceB
Call a z/OS Connect service to interact with mainframe programs (CICS, IMS, batch). Requires ZOS_CONNECT_URL to be configured.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | No | JSON payload to send to the mainframe service | |
| operation | No | Operation/method to invoke (e.g., GET, POST) | POST |
| service_name | Yes | Name of the z/OS Connect service to call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions a configuration requirement but does not disclose whether the call may mutate mainframe state, potential side effects, error behaviors, or response handling. For a tool that invokes services, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that includes useful context (mainframe program types) and a key prerequisite. It avoids fluff, though it slightly repeats the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, and the description does not address response behavior, error scenarios, or potential side effects. For a service-calling tool, this is insufficient for an agent to use it safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented in the schema. The description adds nothing beyond the schema—it only names the service generically. Given the high coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Call a z/OS Connect service' with a specific verb and resource, and clarifies the interaction with mainframe programs (CICS, IMS, batch). This distinguishes it from sibling tools like zos_connect_list_services and zos_connect_get_service_info, which are for discovery/inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions. The only usage hint is the configuration prerequisite 'Requires ZOS_CONNECT_URL', but it does not explain scenarios where this tool is appropriate or when other z/OS Connect tools should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zos_connect_get_service_infoA
Get detailed information about a z/OS Connect service including its OpenAPI specification
| Name | Required | Description | Default |
|---|---|---|---|
| service_name | Yes | Name of the z/OS Connect service |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does add value by stating the output includes the OpenAPI specification, which is useful. However, it does not explicitly confirm read-only status or mention any prerequisites or potential errors, leaving some gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence of 14 words. It is front-loaded with the core action ('Get detailed information') and immediately clarifies the scope ('including its OpenAPI specification'). No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one simple parameter and no output schema, the description is mostly complete. It explains both the general purpose (detailed info) and the specific output (OpenAPI specification), which helps the agent understand what to expect. However, it does not mention any usage limitations or explicitly differentiate from list_services, which would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has a full description for the only parameter (service_name: 'Name of the z/OS Connect service'), providing 100% coverage. The tool description does not add any additional meaning or constraints for this parameter, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb action ('Get') and the specific resource ('detailed information about a z/OS Connect service') along with a key output detail ('including its OpenAPI specification'). This distinguishes it from sibling tools like zos_connect_list_services (list) and zos_connect_call_service (call) by focusing on retrieval of detailed spec info for a single service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for obtaining detailed service information, but it does not explicitly state when to use it over alternatives or mention any exclusions. For example, it could have said 'Use this instead of zos_connect_list_services when you need the OpenAPI specification.' Without such guidance, the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zos_connect_list_servicesA
List available z/OS Connect services (RESTful APIs to mainframe programs). Requires ZOS_CONNECT_URL to be configured.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It mentions the environment configuration requirement, which is useful, but it does not describe the return format, error behavior, or explicitly state that the operation is read-only. For a simple list operation, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences each add value: one states the purpose, the other states a critical prerequisite. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is mostly complete. It identifies the resource and environment requirement. However, it could briefly mention what a successful response contains (e.g., list of service names), since there is no output schema to infer this from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly adds no parameter-specific details, as none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('available z/OS Connect services') with a clarifying parenthetical ('RESTful APIs to mainframe programs'). It clearly distinguishes from sibling tools like zos_connect_get_service_info and zos_connect_call_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states a prerequisite: ZOS_CONNECT_URL must be configured. This gives context on when the tool can be used. However, it does not explicitly mention alternatives or exclusions, such as using get_service_info for individual service details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v1.0.1- First observed
key_protect_create_key - First observed
key_protect_delete_key - First observed
key_protect_get_key - First observed
key_protect_list_keys - First observed
key_protect_unwrap_key - First observed
key_protect_wrap_key - First observed
watsonx_chat - First observed
watsonx_embeddings - First observed
watsonx_generate - First observed
watsonx_list_models - First observed
zos_connect_call_service - First observed
zos_connect_get_service_info - First observed
zos_connect_list_services
TDQS
Each tool targets a distinct resource and action: AI generation/embeddings/chat, key lifecycle operations, and z/OS Connect service interactions. Even within similar actions like list_models vs list_keys, the domains are clearly separated by prefixes and descriptions, leaving no ambiguity.
The naming uses consistent lowercase snake_case with clear subservice prefixes (watsonx_, key_protect_, zos_connect_). However, verb placement is not uniform: some tools start with a verb (watsonx_generate, key_protect_list_keys) while others are noun-only (watsonx_embeddings). This minor inconsistency is easy to adapt to.
With 13 tools spanning three related enterprise AI and mainframe domains, the count is well within the ideal range. Each tool handles a distinct operation without redundancy or excessive granularity, making the set easy to learn and use.
Each sub-domain has solid coverage: watsonx generation, chat, embeddings, and model listing; key management covers CRUD plus wrap/unwrap; z/OS Connect supports listing, fetching specs, and calling services. Minor gaps like key rotation or service deployment exist, but the core workflows are fully supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Share context and questions between Claude instances — VS Code, claude.ai web, and mobile.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceGives Claude access to multiple AI models (Gemini, OpenAI, OpenRouter, Ollama) for enhanced development capabilities including extended reasoning, collaborative development, code review, and advanced debugging.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to delegate tasks to IBM watsonx.ai foundation models (Granite, Llama, Mistral) for text generation, chat, embeddings, and document analysis. Supports two-agent architectures where Claude can leverage IBM's enterprise AI capabilities for specialized workloads.1-
- FlicenseNot gradedqualityNot gradedmaintenanceGives Claude Desktop access to multiple AI models (Gemini, OpenAI, OpenRouter, Ollama) for enhanced development capabilities including extended reasoning, collaborative development, code review, debugging, and large context analysis with conversation threading.221-
- FlicenseCqualityDmaintenanceEnables Claude Code to call Gemini models through an OpenAI-compatible API, providing tools for deep analysis, brainstorming, code review, and general queries using Gemini's capabilities.4-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ExpertVagabond/watsonx-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server