IBM watsonx.ai Granite

io.github.nirholasPublished by GitHub account nirholasv0.2.2Updated Oct 24, 2026

IBM watsonx.ai MCP by three.ws: chat, text generation, embeddings, and tokenization.

The publisher's own server: Granite

VerifiedSTDIODesktop onlyData & AnalyticsAI & ML

Overview

AI-generated overview

Local MCP server that connects an assistant to IBM watsonx.ai Granite models for chat, text generation, embeddings, tokenization and forecasting.

What you can do
Chat and generate text with watsonx.ai foundation models, with decoding controls and token usage returned per call. Create embedding vectors for up to 1000 texts at a time. Count tokens, and optionally list them, against a model tokenizer. Run zero-shot time-series forecasts on timestamped numeric series. List the foundation models available to your account and region, optionally filtered by function.
When to use it
Use it when you already have an IBM Cloud account with watsonx.ai provisioned and want an assistant to call Granite models directly for chat, generation, embeddings, token counting or short-horizon forecasting, without an intermediary service.
Requirements
Runs locally via npx, so Node.js 20 or newer is needed. An IBM Cloud account with watsonx.ai provisioned, an IBM Cloud API key in WATSONX_API_KEY, and a project id in WATSONX_PROJECT_ID or a space id in WATSONX_SPACE_ID. Optional variables set the regional host, model ids, API versions and timeout. Network access to IBM Cloud is required.
Before you install
The server holds an IBM Cloud API key and exchanges it for a short-lived IAM token; treat the key as a sensitive credential and keep it out of shared configs. Inference calls are billed to your IBM Cloud account, so usage may incur costs. The tools are described as read-only inference and do not modify your account or environment. It is community-built and not affiliated with IBM.

Installation

In SourceWeft

  1. Open IBM watsonx.ai Granite in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[three.ws]

@three-ws/ibm-watsonx-mcp

MCP server for IBM watsonx.ai — chat, generation, embeddings, tokenization, forecasting, and model discovery, on your own IBM Cloud account.

[npm] [downloads] [license] [node] [MCP Registry] [three.ws]

Install · Quick start · Tools · Requirements · three.ws


A Model Context Protocol server that exposes IBM watsonx.ai — IBM Granite foundation models and anything else in your account — to MCP clients such as Claude Desktop, Claude Code, and Cursor. It talks directly to the watsonx.ai as-a-Service REST API with your own IBM Cloud credentials: it mints an IAM bearer token from your API key, caches it until just before expiry, and scopes every call to your project. No intermediary backend, no telemetry, no mock data.

Community-built and not affiliated with IBM. Registry name: io.github.nirholas/ibm-watsonx.

Install

bash
npm install @three-ws/ibm-watsonx-mcp

Run it directly with npx (no install needed):

bash
WATSONX_API_KEY=... WATSONX_PROJECT_ID=... npx @three-ws/ibm-watsonx-mcp

Or install globally to get the ibm-watsonx-mcp binary on your PATH:

bash
npm install -g @three-ws/ibm-watsonx-mcp

Quick start

With Claude Code, one command:

bash
claude mcp add ibm-watsonx -e WATSONX_API_KEY=... -e WATSONX_PROJECT_ID=... -- npx -y @three-ws/ibm-watsonx-mcp

Or add the server to your MCP client config (claude_desktop_config.json, Cursor's mcp.json):

json
{	"mcpServers": {		"ibm-watsonx": {			"command": "npx",			"args": ["-y", "@three-ws/ibm-watsonx-mcp"],			"env": {				"WATSONX_API_KEY": "your-ibm-cloud-api-key",				"WATSONX_PROJECT_ID": "your-watsonx-project-id"			}		}	}}

Restart the client and the six tools below appear. Inspect the surface manually with the MCP Inspector:

bash
npx -y @modelcontextprotocol/inspector npx @three-ws/ibm-watsonx-mcp

Tools

ToolWhat it does
watsonx_chatChat completion from a list of role/content messages. Returns the reply plus token usage.
watsonx_generateRaw prompt completion with decoding control (greedy/sample, stop sequences).
watsonx_embedEmbedding vectors for one or more texts (up to 1000). One vector per input plus dimensionality.
watsonx_tokenizeToken count (and optionally the tokens) for a text against a model tokenizer.
watsonx_forecastZero-shot time-series forecasting with an IBM Granite TimeSeries (TinyTimeMixer) model.
watsonx_list_modelsList the foundation models available to your account and region, optionally filtered.

Every tool is a read-only model-inference call — nothing in your environment or IBM account is modified — and declares MCP tool annotations (readOnlyHint, openWorldHint, idempotentHint) so clients can reason about side effects.

Input parameters

watsonx_chat — messages (required: array of { role, content }, roles system/user/assistant), model, max_tokens (1–4096), temperature (0–2), top_p (0–1).

watsonx_generate — input (required), model, max_new_tokens (1–4096), temperature (0–2), decoding_method (greedy/sample), stop_sequences.

watsonx_embed — inputs (required: 1–1000 texts), model.

watsonx_tokenize — input (required), model, return_tokens (boolean).

watsonx_forecast — timestamps (required: ISO-8601, uniform cadence, oldest first), values (required: numeric, same length), freq (required: pandas cadence, e.g. 1h, 15min, 1D), model, target_column, prediction_length (1–96).

watsonx_list_models — filter (e.g. function_text_generation, function_embedding), limit (1–200, default 100).

Example calls

jsonc
// watsonx_chat{ "messages": [{ "role": "user", "content": "Explain MCP in one sentence." }] }
// watsonx_generate{ "input": "Write a haiku about Kubernetes.", "decoding_method": "sample", "temperature": 0.7, "max_new_tokens": 60 }
// watsonx_embed{ "inputs": ["lakehouse", "data warehouse"] }
// watsonx_forecast{ "timestamps": ["2025-01-01T00:00:00Z", "2025-01-01T01:00:00Z"], "values": [1200, 1180], "freq": "1h", "prediction_length": 24 }
// watsonx_list_models{ "filter": "function_embedding" }

How auth works

WATSONX_API_KEY is exchanged for a short-lived IAM bearer token at https://iam.cloud.ibm.com/identity/token (grant_type=urn:ibm:params:oauth:grant-type:apikey). The token is cached in-process and refreshed about five minutes before it expires. Your API key never leaves your machine except in that single IAM exchange.

Requirements

  • Node.js >= 20.
  • An IBM Cloud account with watsonx.ai provisioned — sign up (free tier available).
  • An IBM Cloud API key — create one at https://cloud.ibm.com/iam/apikeys.
  • Your watsonx.ai project id — open the project → Manage → General → Project ID (or a deployment space id).

Environment variables

VariableRequiredDefault
WATSONX_API_KEYyes—
WATSONX_PROJECT_IDyes (or WATSONX_SPACE_ID)—
WATSONX_SPACE_IDalternative to WATSONX_PROJECT_ID—
WATSONX_URLnohttps://us-south.ml.cloud.ibm.com
WATSONX_MODEL_IDnoibm/granite-3-8b-instruct
WATSONX_EMBED_MODEL_IDnoibm/granite-embedding-278m-multilingual
WATSONX_FORECAST_MODELnoibm/granite-ttm-512-96-r2
WATSONX_API_VERSIONno2024-05-31
WATSONX_TS_API_VERSIONno2025-02-11 (time-series API date)
WATSONX_TIMEOUT_MSno60000
WATSONX_IAM_URLnohttps://iam.cloud.ibm.com/identity/token

Regional hosts: us-south, eu-de, eu-gb, jp-tok, au-syd, ca-tor — e.g. https://eu-de.ml.cloud.ibm.com.

Related

  • @three-ws/ibm-x402-mcp — the same IBM Granite tools as pay-per-use x402 endpoints (USDC on Solana), so callers need no IBM account of their own.

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

Source: packages/ibm-watsonx-mcp/README.md at commit c8f2cde

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.2.2LatestOct 10, 2026
  2. v0.2.1Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Granite integrations