Skip to main content
Glama
nirholas

@three-ws/ibm-x402-mcp

by nirholas

A Model Context Protocol server that exposes IBM Granite foundation models as pay-per-use tools via the x402 payment protocol. End users pay USDC on Solana per call — no IBM Cloud account of their own. The server operator supplies IBM credentials (WATSONX_*) and a receiving Solana wallet (MCP_SVM_PAYMENT_ADDRESS); callers supply only USDC. One free tool (ibm_granite_getting_started) explains prices and the flow before any payment.

Built by three.ws. Community-built and not affiliated with IBM.

How it works

  1. An MCP client (Claude Desktop, Claude Code, Cursor, or an agent) connects to this server.

  2. The client calls a tool — e.g. ibm_granite_chat.

  3. Without an x402 payment payload, the server returns a 402 PaymentRequired envelope quoting the USDC price and the Solana receiving address.

  4. The client signs a Solana USDC transfer and retries with the payment in _meta["x402/payment"].

  5. The server verifies and settles the payment via the facilitator, calls IBM watsonx.ai, and returns the result with a settlement receipt in _meta["x402/payment-response"].

x402-capable MCP clients handle this loop automatically.

Related MCP server: ntriq-agentshop

Install

npm install @three-ws/ibm-x402-mcp

Run it directly with npx (no install needed):

MCP_SVM_PAYMENT_ADDRESS=<your-solana-wallet> \
WATSONX_API_KEY=<ibm-api-key> \
WATSONX_PROJECT_ID=<watsonx-project-id> \
npx @three-ws/ibm-x402-mcp

Or install globally for the ibm-x402-mcp binary on your PATH:

npm install -g @three-ws/ibm-x402-mcp

Quick start

Whoever runs the process is the operator: the server fails fast at startup without a payment address and IBM credentials (WATSONX_API_KEY, WATSONX_PROJECT_ID). Callers of the running server need only USDC — no IBM account. With Claude Code, one command:

claude mcp add ibm-granite-x402 \
  -e MCP_SVM_PAYMENT_ADDRESS=your-solana-wallet \
  -e WATSONX_API_KEY=your-ibm-api-key \
  -e WATSONX_PROJECT_ID=your-watsonx-project-id \
  -- npx -y @three-ws/ibm-x402-mcp

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

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

Inspect the tool surface with the MCP Inspector:

npx -y @modelcontextprotocol/inspector npx @three-ws/ibm-x402-mcp

Tools

Tool

What it does

Price

ibm_granite_getting_started

Overview, prices, and the x402 payment flow. No payment or IBM account required.

Free

ibm_granite_chat

Conversational AI via IBM Granite (default ibm/granite-3-8b-instruct).

$0.02 USDC

ibm_granite_code

Code generate, review, refactor, explain, test, document.

$0.025 USDC

ibm_granite_embed

Batch text embeddings for RAG, search, and clustering (1–64 texts).

$0.005 USDC

ibm_granite_analyze

Structured document analysis: entities, sentiment, risk flags, summary, next steps.

$0.04 USDC

ibm_granite_forecast

Zero-shot time-series forecasting via IBM Granite TTM (Tiny Time Mixer).

$0.05 USDC

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

Input parameters

ibm_granite_getting_started — section (optional: overview (default, everything) / pricing / payment / tools / setup).

ibm_granite_chat — messages (required: 1–50 { role, content } pairs; roles system/user/assistant, content ≤ 32,000 chars), model (default ibm/granite-3-8b-instruct), max_new_tokens (1–4096, default 1024), temperature (0–2, default 0.7).

ibm_granite_code — task (required: generate/review/refactor/explain/test/document), prompt (required, ≤ 16,000 chars: the description for generate, the code for everything else), language, context (≤ 4,000 chars).

ibm_granite_embed — inputs (required: 1–64 texts, ≤8000 chars each), model.

ibm_granite_analyze — document (required), analysis_type (general/contract/financial/technical/medical/sentiment, default general), language.

ibm_granite_forecast — timestamps (required: 64–1024 ISO-8601, uniform cadence, oldest first), values (required: 64–1024 numbers, same length), freq (required: pandas cadence, e.g. 1h, 1D), prediction_length (1–96), label.

Example calls

// ibm_granite_chat
{
  "messages": [
    { "role": "system", "content": "You are an expert data engineer." },
    { "role": "user", "content": "Design a lakehouse schema for IoT sensor telemetry." }
  ],
  "max_new_tokens": 1024,
  "temperature": 0.7
}

// ibm_granite_code
{ "task": "review", "prompt": "def calculate_roi(revenue, cost): return revenue / cost", "language": "Python" }

// ibm_granite_embed
{ "inputs": ["enterprise data governance", "cloud-native AI pipeline", "real-time analytics"] }

// ibm_granite_analyze
{ "document": "This Software License Agreement is entered into between...", "analysis_type": "contract" }

// ibm_granite_forecast  (timestamps/values must be 64–1024 points; abbreviated here)
{ "timestamps": ["2025-01-01T00:00:00Z", "...", "2025-03-05T00:00:00Z"], "values": [12500, "...", 13200], "freq": "1D", "prediction_length": 14, "label": "daily_revenue_usd" }

Payment flow

This server uses the x402 protocol for micropayments:

  1. Client calls a tool without payment → 402 PaymentRequired with the USDC amount and Solana address.

  2. Client builds and signs a Solana USDC transfer transaction.

  3. Client retries with the signed tx in _meta["x402/payment"].

  4. Server verifies and settles via the configured facilitator (default PayAI).

  5. Server calls IBM watsonx.ai and returns the result with _meta["x402/payment-response"] (settlement receipt).

MCP Client (Claude Desktop / Cursor / agent)
       │  tools/call (with x402 payment in _meta)
       ▼
ibm-x402-mcp (stdio MCP server)
       │  verify + settle USDC on Solana
       ├──► x402 facilitator (default https://facilitator.payai.network)
       │
       │  inference call with IAM Bearer token
       └──► IBM watsonx.ai (us-south.ml.cloud.ibm.com)
                 └── IBM Granite 3 8B Instruct / Embedding / TTM

Requirements

  • Node.js >= 20.

  • A Solana wallet address to receive USDC (MCP_SVM_PAYMENT_ADDRESS).

  • IBM Cloud credentials: an API key (create one) and a watsonx.ai project id (Project → Manage → General → Project ID), or a deployment space id.

Environment variables

Variable

Required

Default

MCP_SVM_PAYMENT_ADDRESS

yes

— (aliases: X402_PAY_TO_SOLANA, X402_PAY_TO)

WATSONX_API_KEY

yes

—

WATSONX_PROJECT_ID

yes (or WATSONX_SPACE_ID)

—

WATSONX_SPACE_ID

alternative to WATSONX_PROJECT_ID

—

WATSONX_URL

no

https://us-south.ml.cloud.ibm.com

WATSONX_MODEL_ID

no

ibm/granite-3-8b-instruct

WATSONX_CODE_MODEL_ID

no

ibm/granite-3-8b-instruct

WATSONX_EMBED_MODEL_ID

no

ibm/granite-embedding-278m-multilingual

WATSONX_FORECAST_MODEL

no

ibm/granite-ttm-512-96-r2

WATSONX_TIMEOUT_MS

no

90000

X402_FEE_PAYER_SOLANA

no

three.ws fee payer

X402_FACILITATOR_URL

no

https://facilitator.payai.network

X402_FACILITATOR_TOKEN

no

— (Bearer token for a private facilitator)

X402_ASSET_MINT_SOLANA

no

canonical Solana USDC mint

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

Errors

Every failure state is explicit — there is no silent fallback:

State

What you see

Recovery

Missing env at startup

The process exits with a one-line configuration error: … naming the missing variable (MCP_SVM_PAYMENT_ADDRESS, WATSONX_API_KEY, or WATSONX_PROJECT_ID/WATSONX_SPACE_ID).

Set the variable and restart.

Unpaid call to a paid tool

An x402 PaymentRequired envelope quoting the USDC price and pay-to address — not an error; it is step 1 of the payment loop.

Pay and retry (x402-capable clients do this automatically).

Invalid/underpaid payment

The facilitator rejects verification and a fresh PaymentRequired envelope is returned; no inference runs and no funds settle.

Re-sign against the quoted accepts.

IBM-side failure

Tool result { "ok": false, "error": "watsonx_error", "message": "…", "status": … } — IAM auth failure (bad WATSONX_API_KEY), model error, or a watsonx.ai timeout (WATSONX_TIMEOUT_MS, default 90 s).

The message carries IBM's reason; check credentials, project id, and region.

Unexpected server fault

Tool result { "ok": false, "error": "internal_error", "message": "…" }.

Retry; file an issue if it persists.

Facilitator unreachable at boot

A facilitator init warning: … line on stderr; the server still starts and retries lazily on the first paid call.

Check X402_FACILITATOR_URL connectivity.

ibm_granite_getting_started is always free and never touches IBM or the facilitator — use it to sanity-check the server before paying.

  • @three-ws/ibm-watsonx-mcp — the same IBM Granite tools driven by your own IBM Cloud credentials (no x402, no per-call payment).


Support the project

If ibm-x402-mcp saves you time, star it on GitHub. Stars are how other developers and AI agents find the repositories worth trusting, and they cost you one click.

Know someone who would use it? Post on X · Share on Bluesky · Share on LinkedIn · Submit to Hacker News · Share on Reddit

Built for AI agents too

Coding agents and LLM tooling can read this repo directly: AGENTS.md, llms.txt, llms-full.txt. Point an agent at https://github.com/nirholas/ibm-x402-mcp and it has the context it needs.

More from the same author

Contributors

Contributors

Star history

Star History Chart

Part of three.ws

three.ws is a platform for 3D AI agents with Solana wallets: avatars, a skill marketplace, x402 payments and more than seventy MCP servers. @three-ws/ibm-x402-mcp is one package from it.

Available Tools

6 tools
ibm_granite_analyzeIBM Granite Analyze ($0.04)A
Read-only

Structured document analysis powered by IBM Granite: extract entities, sentiment, risk signals, a concise summary, and recommended next steps from any text (contracts, reports, emails, code reviews, etc.). Returns a machine-readable JSON analysis. No IBM Cloud account required — pay $0.04 USDC per call via x402.

NameRequiredDescriptionDefault
documentYesThe document, report, email, or text to analyze.
languageNoDocument language hint (e.g. "Spanish", "French"). Defaults to auto-detect.
analysis_typeNoAnalysis focus: general (universal), contract (legal terms, obligations), financial (metrics, risks, forecasts), technical (architecture, issues), medical (clinical entities, findings), or sentiment (tone, emotions).general

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, and the description adds that the tool returns structured JSON, costs $0.04 per call, and requires no account. No contradictions. It provides useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main purpose, followed by cost and output format. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains return contents (entities, sentiment, etc.), compensating for lack of output schema. It also addresses pricing and authentication (no account needed). Together with sibling names, it provides sufficient context for an agent to decide to use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters have descriptions). The description reinforces the tool's capabilities but does not add new parameter-level detail beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'extract entities, sentiment, risk signals, a concise summary, and recommended next steps', the resource 'any text', and distinguishes from siblings like ibm_granite_chat or ibm_granite_code. It is clear and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions input types (contracts, reports, emails) and cost/payment method, providing context for when to use. However, it does not explicitly state when not to use or compare with alternatives, though the sibling list provides implicit differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ibm_granite_chatIBM Granite Chat ($0.02)A
Read-only

Chat completion powered by IBM Granite foundation models (default: ibm/granite-3-8b-instruct). Send a conversation as role/content message pairs and receive the assistant reply with token usage. No IBM Cloud account required — pay $0.02 USDC per call via x402.

NameRequiredDescriptionDefault
modelNoOverride the Granite model id (e.g. ibm/granite-3-2b-instruct). Defaults to ibm/granite-3-8b-instruct.
messagesYesConversation history. Must include at least one user message.
temperatureNoSampling temperature (0 = deterministic). Defaults to 0.7.
max_new_tokensNoMaximum tokens to generate. Defaults to 1024.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly and openWorld hints. The description adds valuable information: payment model ($0.02 USDC via x402), that no IBM Cloud account is needed, and that token usage is returned. These details go beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, efficiently conveying the core functionality, input format, output, and pricing without redundancy. It is well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (four parameters with full schema descriptions), the description covers the essential context: input/output nature, default model, and payment. It lacks detail on response format but annotations and schema fill in gaps adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context by mentioning 'role/content message pairs' and default model, which clarifies the use of the messages array and model parameter beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a chat completion tool using IBM Granite models. While it doesn't explicitly differentiate from sibling tools, the names of siblings (analyze, code, embed, forecast, getting_started) imply distinct tasks, so the purpose is sufficiently clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives or when not to use it. It lacks explicit context for selection criteria among siblings or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ibm_granite_codeIBM Granite Code ($0.025)A
Read-only

Code generation, review, refactoring, and explanation via IBM Granite instruct models. Provide a task type and code/prompt; receive the generated or reviewed code with explanation. No IBM Cloud account required — pay $0.025 USDC per call via x402.

NameRequiredDescriptionDefault
taskYesCode task: generate (new code from description), review (bugs/security), refactor (quality), explain (plain language), test (unit tests), or document (add docstrings).
promptYesFor "generate": describe what to build. For all others: paste the code to process.
contextNoAdditional context: architecture notes, constraints, or example usage.
languageNoTarget programming language (e.g. "TypeScript", "Python", "Rust"). Optional for explain/review.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses cost ($0.025 USDC per call) and account requirement (no IBM Cloud account needed) beyond annotations. Annotations already indicate read-only and open world, and description adds useful behavioral context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with clear front-loading of purpose, followed by usage and cost. No wasted words; every sentence adds essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers task types, prompt usage, cost, and account requirement. Lacks detailed return value specification, but the mention of 'receive code with explanation' suffices given no output schema. Could mention rate limits or max response length, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds extra value by summarizing that prompt differs per task (code for review/refactor/explain, description for generate) and stating the output type (code with explanation).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool handles code generation, review, refactoring, and explanation via IBM Granite. Lists specific task types, distinguishing it from sibling tools like ibm_granite_chat or ibm_granite_analyze.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use (for code tasks) and what to provide (task and prompt). Lacks explicit exclusions or alternatives, but the mention of 'Provide a task type and code/prompt' gives enough guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ibm_granite_embedIBM Granite Embed ($0.005)A
Read-onlyIdempotent

Generate embedding vectors for one or more texts using IBM Granite (default: ibm/granite-embedding-278m-multilingual). Returns one float array per input, suitable for semantic search, RAG retrieval, and similarity scoring. Up to 64 texts per call. No IBM Cloud account required — pay $0.005 USDC per call via x402.

NameRequiredDescriptionDefault
modelNoOverride the embedding model id (e.g. ibm/granite-embedding-125m-english). Defaults to ibm/granite-embedding-278m-multilingual.
inputsYesTexts to embed. 1–64 strings per call, up to 8,000 characters each.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, openWorldHint, idempotentHint) declare safety and idempotency. The description adds context: uses IBM Granite model with a specified default, returns float arrays per input, and notes no IBM Cloud account required. This is non-contradictory and enhances transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the essential purpose and key constraints. Every word adds value; there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple embedding tool with full schema and annotations, the description covers return type (float array), limits, cost, default model, and use cases. No output schema exists, but the description adequately explains output. Completeness is high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds the default model string and reiterates limits (1-64 texts, 8000 characters), which is helpful but only marginally extends schema information. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses precise language: 'Generate embedding vectors for one or more texts' and specifies the default model, output format (float array), and use cases (semantic search, RAG retrieval, similarity scoring). It clearly distinguishes from sibling tools like ibm_granite_chat or ibm_granite_code.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the maximum number of texts (64) and the cost model ($0.005 USDC per call via x402), providing practical usage guardrails. It does not explicitly mention when not to use or alternatives, but the sibling names make the distinction clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ibm_granite_forecastIBM Granite Forecast ($0.05)A
Read-only

Zero-shot time-series forecasting via IBM Granite TTM (Tiny Time Mixer). Provide a numeric series with ISO-8601 timestamps and a cadence, receive the forecast horizon. No training required. Suitable for revenue, traffic, sensor, energy, and financial series. No IBM Cloud account required — pay $0.05 USDC per call via x402.

NameRequiredDescriptionDefault
freqYesCadence of the series as a pandas-style frequency string. Examples: 1min, 5min, 15min, 30min, 1h, 2h, 4h, 12h, 1D, 1W, 1ME.
labelNoHuman label for the series (e.g. "daily_revenue_usd"). Returned in output for traceability.
valuesYesNumeric series aligned to timestamps, oldest to newest. Must be the same length as timestamps.
timestampsYesISO-8601 timestamps at a uniform cadence, oldest to newest (e.g. ["2025-01-01T00:00:00Z", ...]).
prediction_lengthNoNumber of steps to forecast ahead. Defaults to the model horizon (typically 96 for 1h data).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint and openWorldHint, which are consistent with the forecasting and payment model. The description adds value by specifying the zero-shot nature, the underlying model (TTM), and the cost per call, providing behavioral context beyond annotations. No contradiction found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, with the key action in the first sentence. It efficiently covers purpose, required inputs, and additional context (cost, suitability) without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of time-series forecasting and full schema coverage, the description provides sufficient context: model type, input requirements, and cost. While it mentions receiving the forecast horizon, it could elaborate on output format, but overall it is complete for an agent to use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter description coverage. The description adds context by summarizing the required inputs (timestamps, values, cadence) and mentioning the default prediction length (typically 96 for 1h data), which aids understanding beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Zero-shot time-series forecasting' using IBM Granite TTM, clearly identifying the verb (forecast) and resource (time series). It distinguishes from sibling tools that focus on analysis, chat, code, embedding, or getting started.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions when to use (suitable for revenue, traffic, sensor, energy, financial series) and that no training or IBM Cloud account is required. It implies alternatives are not needed but does not explicitly state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ibm_granite_getting_startedGetting Started (free)A
Read-onlyIdempotent

FREE — start here. Returns an overview of this server: the IBM Granite tools available, their per-call USDC prices, how the x402 pay-per-call flow works, setup requirements, and runnable example calls. No payment required. Call this first to orient before invoking a paid tool.

NameRequiredDescriptionDefault
sectionNoWhich part to return. Defaults to "overview" (everything). Use "pricing", "payment", "tools", or "setup" to focus.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly and idempotent. The description adds that it is free and returns an overview, which is consistent. It provides useful context beyond annotations (e.g., no payment needed) but does not disclose additional 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with 'FREE — start here,' and every word adds value. No redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple orientation tool with no required parameters and a clear enum, the description fully covers what the tool returns (overview, prices, payment, tools, setup, examples). No output schema is needed as the return content is described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with descriptions, including enum values and defaults. The tool description repeats the enum values but adds no new meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns an overview of server tools, prices, payment flow, setup, and examples. It explicitly positions itself as the starting point, distinguishing from sibling paid tools by being free and introductory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'start here' and 'Call this first to orient before invoking a paid tool,' providing clear guidance on when to use this tool. It also notes that no payment is required, reinforcing its role.

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.

  1. 6 tool updatesv1.1.0
    • First observedibm_granite_analyze
    • First observedibm_granite_chat
    • First observedibm_granite_code
    • First observedibm_granite_embed
    • First observedibm_granite_forecast
    • First observedibm_granite_getting_started

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a uniquely defined purpose (analysis, chat, code, embedding, forecasting, and getting started) with no ambiguity between them. An agent can easily distinguish which tool to invoke.

Naming Consistency5/5

All tool names follow the consistent pattern 'ibm_granite_<action>', using snake_case and a clear verb describing the operation. This pattern is uniform across all 6 tools.

Tool Count5/5

The server has 6 tools, which is well-scoped for a focused MCP server offering IBM Granite model capabilities. Each tool covers a distinct use case without being overwhelming or insufficient.

Completeness4/5

The tool set covers common AI tasks (chat, code, analysis, embeddings, forecasting) and includes a getting started guide. Minor gaps like model customization or batch operations are absent, but core functionality is complete for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    250+ AI-powered MCP tools: research, write, code, translate, scrape, sentiment, vision, RAG, agent memory, marketplace, trading signals, and more. 15 models across 7 providers. Pay-per-use via API key or x402 USDC micropayments.
    2
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Keyless, pay-per-call AI gateway: 248 LLMs plus image/video/voice/music generation and live crypto, DeFi, markets, web-search and research tools through one MCP server. Pay per call in USDC via x402 on Base/Solana — no API key, no signup, free tier.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Connects Claude Desktop, Cursor, or any MCP-compatible client to 36+ frontier LLMs with automatic per-token payments in USDC on Solana.
    5
    6 npm
    MIT