Skip to main content
Glama

Ishtaran MCP

The official knowledge, discovery, planning, and validation layer for AI agents building on Ishtaran. It never executes financial operations -- no deposits, settlements, payouts, withdrawals, or refunds. Use one of the Ishtaran SDKs to actually integrate; use this server first so your agent doesn't hallucinate an endpoint, SDK method, error code, or webhook event that doesn't exist.

LLM thinks  ->  MCP teaches/plans/validates  ->  SDK executes the integration  ->  API executes the business

What it is not

Not an Admin Console, not a code generator, not a deployer, not a way to touch Production, and not a way to move money. If a tool result ever looks like it did something financial, that's a bug -- please open an issue.

Related MCP server: mcp-swagger

Install

No API key or environment variable is required -- every tool and resource works fully offline, right after install, using the Knowledge Bundle shipped inside the package.

Claude Code

Add to your project's .mcp.json (or run claude mcp add):

{
  "mcpServers": {
    "ishtaran": {
      "command": "npx",
      "args": ["-y", "@ishtaran/mcp"]
    }
  }
}

Claude Code will prompt you to approve the new server the next time you open the project.

Cursor

Settings -> MCP -> Add new MCP server:

{
  "mcpServers": {
    "ishtaran": {
      "command": "npx",
      "args": ["-y", "@ishtaran/mcp"]
    }
  }
}

VS Code (or any other stdio-based MCP client)

Point the client at the command npx -y @ishtaran/mcp with no arguments and no environment variables. Any client that speaks MCP over stdio works the same way.

Run it directly

npx -y @ishtaran/mcp

This starts the stdio server. It's meant to be launched by an MCP client, not used interactively.

First questions to try

  • "How do I integrate Ishtaran?"

  • "Build a marketplace using Ishtaran."

  • "How do I verify an Ishtaran webhook?"

  • "Explain NETWORK_EXECUTION_FEE_INSUFFICIENT_BALANCE."

  • "What's the difference between Settlement and Payout?"

  • "Can a Withdrawal pull from multiple accounts?" -- ask directly, or hand a claim like that to validate_integration_plan; it will tell you no and why.

The marketplace recipe

get_recipe with recipeId: "marketplace" points at marketplace-mercatto, a real, runnable reference implementation (buyer/seller Accounts, PaymentIntent funding, partial/full Settlement with PlatformFee and per-participant revenue split, MANUAL Payout, refunds, and the full webhook lifecycle), published as its own standalone, clonable repo: ishtaran-mercatto-example (also mirrored inside the main Ishtaran monorepo for internal development). wallet-payment-app is likewise real and runnable -- a self-custody wallet and payment app (private key stays client-side, WalletBalance-driven, Send vs Pay kept structurally distinct, app-owner-configurable monetization) -- published at ishtaran-wallet-example, verified live against the public Sandbox (9/9 E2E). service-milestone remains a real, supported pattern (recipeStatus: SUPPORTED_CONCEPT) with no reference project yet (referenceProjectStatus: PLANNED) -- the tools say this explicitly rather than pointing you at code that doesn't exist.

Resources vs Tools vs Prompts

  • Resources (ishtaran://...) are for browsing/reading -- an index, a capability, an operation, an error, a webhook event, a recipe, a reference project, the glossary.

  • Tools are for asking a specific question or getting a computed answer. Eleven tools cover the full V1 surface -- search (search_knowledge), capability lookup (get_capability), operation lookup (get_operation), SDK method lookup (choose_sdk), error explanation (explain_error), webhook contract (get_webhook_contract), integration recipes (get_recipe), integration planning (plan_integration), plan validation (validate_integration_plan), and knowledge freshness (get_knowledge_status, update_knowledge).

  • Prompts are pre-built starting points for common tasks (integrate_ishtaran, build_marketplace, build_wallet, build_service_marketplace, debug_ishtaran, implement_webhook_receiver, review_ishtaran_integration).

Staying current without reinstalling

The Engine package (@ishtaran/mcp) and the Knowledge Bundle it ships with are versioned independently. The package version (e.g. 0.1.0) only changes when the server's code -- resources, tools, prompts, protocol behavior -- changes. The Knowledge Bundle (its own knowledgeVersion, e.g. 2026.09.09.abc123) changes whenever public docs, the OpenAPI contract, SDK methods, recipes, or reference projects change -- which is far more often, and does not require a new package release.

On startup, the server reads its embedded Knowledge Bundle immediately (never blocks on network), then checks a small public manifest in the background, best-effort. get_knowledge_status shows whether a newer bundle is available; update_knowledge (with consent: true) downloads and applies it. New docs, routes, capabilities, recipes, and reference projects can reach you this way -- you normally do not need to run npx @ishtaran/mcp again or reinstall anything.

Updates are DATA only (a JSON bundle, HTTPS-fetched, SHA-256-verified, schema-validated, atomically swapped) -- never remotely executed code, and update_knowledge never runs without explicit consent. If the bundle ever requires a newer Engine than you have installed, the server tells you so explicitly rather than silently failing or fetching arbitrary code.

Development (working in the Ishtaran monorepo)

cd mcp
npm install
npm run build:knowledge   # generates mcp/knowledge/<version>/*.json from the current repo state
npm run typecheck
npm test                  # full suite: unit, contract, golden, anti-pattern, marketplace, update
npm run build             # bundles mcp/dist/index.js
npm run ci                # everything above, in the same order CI runs it

mcp/build/ is the Knowledge Build System (reads public sources only -- OpenAPI, SDK source, AI docs, hand-authored errors/webhooks/glossary/gaps/recipes/projects -- and writes mcp/knowledge/<version>/*.json). It only runs inside the Ishtaran monorepo, since it cross-references the live OpenAPI contract and all 4 official SDKs' source trees, none of which exist in this standalone repo -- that's why this repo's CI does not run build:knowledge and instead tests against the already-committed bundle. mcp/src/ is the Engine (resources/tools/prompts/search/cache/update logic) and rarely needs to change when only the knowledge bundle changes.

To point a local MCP client at your own build instead of the published package, use node /absolute/path/to/mcp/dist/index.js as the command with no arguments.

Troubleshooting

  • "No shipped knowledge bundle found" -- run npm run build:knowledge before npm run build (only relevant when building from source; the published package always ships a bundle).

  • A tool call fails with isError: true -- this is a normal, recoverable "unknown id" or "not supported" response (e.g. an admin operationId, a nonexistent webhook event). Read the message; it's the answer, not a bug.

  • Everything looks stale -- call get_knowledge_status; if updateAvailable is true, call update_knowledge with consent: true.

License

Apache-2.0 -- see LICENSE.

Available Tools

11 tools
choose_sdkChoose SDK methodC

The real SDK method(s) for one operation, per language extracted directly from SDK source -- never invented by analogy.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNo
operationIdYes

TDQS

C2.6/5.0
Behavior2/5

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 mentions that the results are extracted from SDK source and not invented, which is a reliability claim, but it does not describe any side effects, error conditions, or the nature of the return value (e.g., whether it is a lookup, might be empty, or could fail). This is insufficient for a tool with no annotation coverage.

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

Conciseness4/5

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

The description is a single, compact sentence with no filler. It front-loads the core purpose ('real SDK method(s)') and includes the sourcing detail. It is not verbose, but the phrasing is slightly awkward ('per language extracted...' could be clearer). Overall, it is concise and efficient.

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

Completeness2/5

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

Given the absence of annotations, an output schema, and schema descriptions, the description is expected to carry substantial context. It fails to explain the expected input format, what the output looks like, or any dependencies. It does not mention that operationId is required or that language is optional, nor does it clarify what 'one operation' means. The tool is not adequately specified for an agent to call it correctly without further inference.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining what language and operationId mean. It does not. The schema only provides an enum for language and a generic string for operationId, but the description never clarifies how to obtain or interpret operationId, nor does it explain the per-language aspect. The description adds no parameter-level value, leaving the agent to guess.

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 that the tool returns the actual SDK method(s) for a given operation, per language, sourced directly from SDK source. It distinguishes itself from siblings like get_operation by focusing on SDK method names, but it does not explicitly say what the output format is (e.g., a string, list). The phrase 'never invented by analogy' adds a quality attribute, but the core purpose is understandable.

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 provides no guidance on when to use this tool versus alternatives such as get_operation or search_knowledge. It does not mention any conditions or contexts where this tool is the right choice, nor does it exclude any scenarios. The only hint is 'never invented by analogy,' which implies reliability but not usage selection.

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

explain_errorExplain errorA

Meaning, HTTP status, retryability, remediation, and related operations for one error code.

ParametersJSON Schema
NameRequiredDescriptionDefault
errorCodeYes

TDQS

A3.8/5.0
Behavior4/5

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

No annotations are present, so the description carries the burden. It discloses the informational nature of the tool and enumerates output facets (meaning, HTTP status, retryability, remediation, related operations). It doesn't mention edge cases like unknown error codes, but it is reasonably transparent for a read-oriented lookup tool.

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?

A single front-loaded sentence that enumerates exactly what the tool provides. Zero filler; every phrase communicates a distinct piece of useful 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?

For a tool with one required parameter and no output schema, the description is complete enough: it identifies the input and specifies the categories of output. Minor gaps are the lack of an explicit note about read-only behavior or behavior for invalid codes.

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 only declares errorCode as a string with no description or format. The description compensates minimally by saying 'for one error code' — enough to know what to pass, but with no examples, accepted formats, or guidance on how to find valid codes.

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 defines the tool's purpose: explaining an error code by returning its meaning, HTTP status, retryability, remediation, and related operations. The resource is specific and the action is implied by the name and description, though it does not explicitly distinguish itself from sibling tools.

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

Usage Guidelines3/5

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

The description implies when to use it — for a single error code — but gives no explicit guidance on when not to use it or how it compares to alternatives among sibling tools like get_operation or get_recipe.

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

get_capabilityGet capabilityA

Full detail for one capability: its operations, related errors/webhooks/recipes.

ParametersJSON Schema
NameRequiredDescriptionDefault
capabilityYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral disclosure burden. 'Full detail' suggests a read-only retrieval, but the description never explicitly states that the operation does not modify data, nor does it mention any permissions, rate limits, or side effects. It is a simple get, so the lack of explicit safety disclosure is a minor gap, but still not fully transparent.

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 a single, focused sentence that front-loads the core purpose ('Full detail for one capability') and then enumerates the included content. Every word earns its place; there is no redundancy or padding.

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

Completeness2/5

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

Although the tool is simple (one parameter, no output schema), the description fails to define the input parameter, which is critical for correct invocation. It also does not state the read-only nature or any prerequisites. Given the absence of annotations and schema descriptions, the description is incomplete for an agent to use confidently.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate by explaining the 'capability' parameter. It merely says 'one capability' without specifying whether it is a name, ID, slug, or another identifier, nor its format or valid values. This leaves the agent without enough information to construct a correct request.

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 the tool retrieves 'full detail' for a capability, listing its operations, errors, webhooks, and recipes. This distinguishes it from siblings like get_operation (which targets a specific operation) and get_webhook_contract (which targets a webhook). The verb 'get' and resource 'capability' 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.

Usage Guidelines3/5

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

The description implies usage when a comprehensive view of a single capability is needed, but it never explicitly contrasts with sibling tools like get_operation or get_recipe, nor does it state when not to use this tool. The distinction is inferable from the name and sibling set, but no explicit guidance is provided.

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

get_knowledge_statusGet knowledge statusA

Local vs remote knowledge version, whether an update is available, and when the remote was last checked. Never blocks on network beyond a short timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It explicitly discloses the network timeout behavior ('never blocks beyond a short timeout'), which is valuable. It implies a read-only operation but doesn't explicitly state side effects or error behavior; however, the timeout note adds meaningful transparency beyond the schema.

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 with no fluff. The core output (local vs remote, update availability, last check) is front-loaded, and the timeout behavior is appended as useful clarification. Every clause earns its place.

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?

For a zero-parameter tool with no output schema, the description covers the essential information an agent needs: what status fields are returned and the network behavior. It doesn't specify exact output formatting, but without an output schema, this is acceptable given the simplicity.

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?

The tool has zero parameters, so the baseline is 4. No parameter meaning is needed, and the description correctly focuses on what the status returns rather than any input semantics.

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 the tool reports local vs remote knowledge versions, update availability, and last check time. It uses a specific verb ('get') and resource ('knowledge status'), and the content distinguishes it from siblings like update_knowledge or search_knowledge.

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

Usage Guidelines3/5

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

The description implies its use for status checks but provides no explicit guidance on when to prefer it over alternatives like update_knowledge or get_capability. Context is clear enough for an agent to infer, but no exclusions or alternatives are named.

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

get_operationGet operationC

Full detail for one public API operation, including per-language SDK mapping.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationIdYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the entire burden of behavioral disclosure. It mentions that the tool returns 'full detail' including SDK mapping, which is useful, but it does not explain whether the operation is read-only, whether it requires authentication, what happens if the operationId is invalid, or the structure of the response. For a tool that likely performs a read operation, this lack of behavioral context is a notable gap, but the description at least gives a hint of the output content.

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

Conciseness4/5

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

The description is a single, concise sentence that is easy to scan and quickly conveys the main purpose. It is not overly verbose, and the key detail (SDK mapping) is included without excessive fluff. It could arguably be more front-loaded with an explicit statement of the resource, but overall it is appropriately sized.

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

Completeness2/5

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

Given the tool's moderate complexity (one parameter, no output schema, no annotations), the description is insufficiently complete. An agent lacks critical information such as how to obtain a valid operationId, what the 'full detail' includes beyond SDK mapping, and the nature of the response (e.g., errors, not found cases). The description is a minimal stub that leaves too much to inference.

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

Parameters2/5

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

The schema description coverage is 0%, meaning the description must compensate for the lack of parameter documentation. The description only mentions 'per-language SDK mapping' which indirectly relates to the output, not the input parameter. It does not explain what operationId represents (e.g., a string identifier of a specific API operation), format expectations, or how to obtain it. Since there is only one parameter, the description adds minimal semantic value beyond the schema's type definition.

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 identifies the resource (a public API operation) and the kind of information returned (full detail, including per-language SDK mapping). It is more specific than just the name, and while it doesn't explicitly distinguish from siblings, the focus on 'operation' and 'SDK mapping' helps set it apart from tools like get_capability or get_recipe.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving details about a specific operation, but it does not state when to use it versus alternatives like search_knowledge or explain_error. There is no explicit guidance on when not to use it or what prerequisites exist (e.g., needing an operationId). The context is somewhat clear but not fully elaborated.

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

get_recipeGet recipeC

A full integration pattern: capabilities, flow, invariants, errors, webhooks, anti-patterns, and reference project status.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeIdYes

TDQS

C2.2/5.0
Behavior2/5

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 lists content areas (capabilities, flow, errors, webhooks) but does not state whether the operation is read-only, what the response shape looks like, what errors might occur, or any side effects. The description adds minimal behavioral context beyond the listed topics.

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

Conciseness3/5

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

The description is a single, compact sentence with no filler, and the concept of a 'full integration pattern' is front-loaded. However, the sentence is under-specified despite its brevity, and the trailing list of components reads more like content tags than structured guidance. It is concise but not fully effective.

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

Completeness2/5

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

The tool has one undocumented parameter, no output schema, and no annotations. The description hints at a rich response (capabilities, flow, errors, webhooks, etc.) but does not explain the input identifier, return format, or error handling. An agent would struggle to invoke this tool correctly with the information provided.

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

Parameters1/5

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

The schema has one parameter, recipeId, with no description and 0% schema description coverage. The description does not mention recipeId at all, so an agent cannot determine what value to pass (e.g., an ID, a slug, a path) or how it affects the returned integration pattern. The description completely fails to compensate for the undocumented parameter.

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

Purpose3/5

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

The description identifies the tool as delivering 'a full integration pattern' and lists its components, which gives a general sense of what is returned. However, it lacks an explicit action verb such as 'retrieves' or 'returns,' and the meaning of 'recipe' is only inferred from the tool name. It is not a tautology, but the purpose is somewhat vague.

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 provides no guidance on when to use this tool versus alternatives like get_capability, get_operation, or get_webhook_contract. There is no mention of conditions, exclusions, or expected usage scenarios, leaving the agent to guess the appropriate context.

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

get_webhook_contractGet webhook contractA

The full delivery contract (headers, HMAC formula, timestamp/ordering rules), or detail for one specific event type.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventTypeNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It does disclose the content and the optional filtering behavior, which implies a read-only retrieval. However, it does not explicitly state read-only semantics, potential authentication requirements, rate limits, or any side effects. The description adds value by specifying the exact data returned, but leaves the operational profile implicit.

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 a single, well-structured sentence that front-loads the core purpose ('full delivery contract') and immediately lists key contents, then introduces the optional event-specific detail. No redundancy or filler; every phrase earns its place.

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?

For a simple get tool with one optional parameter and no output schema, the description is largely sufficient. It tells the agent what it returns and how the parameter affects the result. It lacks examples of eventType values and explicit error conditions, but given the low complexity, these are minor gaps.

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 has one parameter (eventType) with zero description coverage. The description partially compensates by explaining that providing it yields detail for one specific event type, while omitting it yields the full contract. However, it does not define valid event type values or format, leaving the agent to infer or discover them elsewhere.

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 the tool retrieves a webhook delivery contract, specifying the exact contents (headers, HMAC formula, timestamp/ordering rules) and the optional event-specific detail. This is a specific verb-resource pairing that is distinct from all sibling tools, which target capabilities, knowledge, operations, SDKs, errors, recipes, and integration planning.

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 implies usage: omit eventType for the full contract, provide it for a specific event type. It doesn't explicitly name alternatives, but the sibling tools are unrelated, so the context is clear. The guidance on parameter behavior is effective but not explicit about when to choose this over others.

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

plan_integrationPlan integrationB

Given a goal, resolves the matching recipe (or the closest by search) and expands it into a concrete plan with real operations, SDK calls, errors, and webhooks.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYese.g. "marketplace with 90/10 split and manual payout"
recipeIdNoSkip search and use this recipe id directly.

TDQS

B3.3/5.0
Behavior2/5

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 mentions the tool resolves a recipe and expands it into a plan, but does not disclose whether it mutates state, has side effects, requires prior steps, or what the exact output format is. The lack of any behavioral detail beyond the high-level process is a significant gap.

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 a single, tightly packed sentence with no filler. It front-loads the core action and lists the key output components efficiently. Every word contributes value.

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

Completeness3/5

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

For a 2-parameter tool with no output schema and no annotations, the description provides a reasonable high-level overview but lacks detail on expected return format, possible failure modes, and any dependencies on the surrounding knowledge system. Siblings like get_knowledge_status suggest prerequisites, but none are mentioned. It is functional but not fully self-sufficient.

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 coverage is 100%: both goal and recipeId have clear descriptions. The tool description adds context about the overall process (e.g., 'closest by search') but does not add meaningful parameter-specific detail beyond the schema. Since coverage is full, a baseline of 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 clearly states the action: given a goal, it resolves a recipe and expands it into a concrete plan with specific components (operations, SDK calls, errors, webhooks). This differentiates it from siblings like get_recipe (which just fetches a recipe) and validate_integration_plan (which validates, not plans).

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 implies it handles the recipe resolution internally, but does not explicitly state when to use this tool versus alternatives like get_recipe or search_knowledge. There is no guidance on prerequisites (e.g., whether knowledge must be loaded) or scenarios where a sibling would be more appropriate.

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

search_knowledgeSearch knowledgeA

Hybrid search (exact id > alias > lexical) across operations, capabilities, errors, webhooks, recipes, glossary, gaps, and reference projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNo
limitNo
queryYesFree text or an exact id (operationId, error code, event name, capability id, recipe id).

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations present, the description carries the full behavioral burden. It does disclose the search strategy and fallback order (exact ID > alias > lexical), which is genuinely useful. But it omits other behavior an agent would need: result format, result limits, match highlighting, and how strictly 'exact id' matching is applied.

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?

A single sentence that front-loads the search strategy (exact ID > alias > lexical) followed by the scope. No filler, no redundant restating of the name, and every clause carries information.

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

Completeness3/5

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

There is no output schema, so the description should clarify what the tool returns)Skip; it does not. It also doesn't explain limit behavior or whether results are scored/deduplicated. However, for a read-only search tool, the scope and matching behavior are the most important context and those are covered.

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 coverage is low (only query is described in the schema). The description partially compensates by enumerating the searchable kinds and the search precedence, but it never explains the limit parameter's semantics (e.g., default number of results, maximum, pagination). It adds less than it could for the uncovered parameters.

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 a specific verb ('search') with a clear resource and scope, listing the eight knowledge domains it spans. It is immediately distinguishable from the get_* siblings, which retrieve a single known item, because this tool is explicitly a cross-domain lookup with a defined search strategy.

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

Usage Guidelines3/5

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

The description implies the tool is for cross-cutting lookup across domains, especially when you may not know the exact item type or ID. However, it never states when to prefer this over a sibling get_* tool, and it does not mention whether to use it for alias-based lookup or only as a last resort.

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

update_knowledgeUpdate knowledgeA

Downloads and applies the newer remote knowledge bundle (data only, verified by SHA-256 hash and schema before being made active). Requires consent:true -- never runs without it. Never updates the MCP engine itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
consentYesMust be true to proceed -- this is the explicit-consent gate.

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so well. It discloses that the update is data-only, verifies via SHA-256 hash and schema before activation, requires explicit consent, and never updates the MCP engine itself. This gives an agent a clear safety and side-effect profile.

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 short sentences, each carrying essential information: action, verification/safety, and critical prerequisite. No filler or redundant restatement of the tool name.

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?

Given the tool's simplicity (one required parameter, no output schema, no nested objects), the description is complete enough for correct invocation. It explains what happens, how safety is ensured, the required consent flag, and what the operation does not affect.

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 already describes the consent parameter completely and marks it required, so the description adds little new parameter-level meaning. It reinforces the consent gate but does not introduce additional format, values, or behavioral details beyond the 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 states a specific verb and resource: 'Downloads and applies the newer remote knowledge bundle.' It also clarifies scope with 'data only' and 'Never updates the MCP engine itself,' which distinguishes it clearly from sibling tools like get_knowledge_status or search_knowledge.

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

Usage Guidelines3/5

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

The description implies the tool is used to apply the latest remote knowledge bundle and requires consent, but it does not explicitly state when to use it over alternatives or when not to use it. No exclusions or alternative tool references are provided.

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

validate_integration_planValidate integration planA

Checks a proposed plan (free-text claims and/or operationIds) against known gaps and platform invariants -- flags unsupported claims (e.g. multi-source Withdrawal, ManagedCustody, non-existent webhook events, API Key in a client app) rather than letting them pass silently.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimsNoFree-text statements about the intended integration.
operationIdsNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral burden. It discloses that the tool 'flags unsupported claims' (a read-only action), but it does not state whether it modifies data, requires authentication, or describes the exact output format. The examples give some insight but not comprehensive behavioral context.

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 a single, well-structured sentence that front-loads the action ('Checks a proposed plan') and then adds illustrative examples. It is concise with no wasted words, effectively balancing detail and brevity.

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

Completeness3/5

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

Without an output schema, the description should hint at return values. It implies the tool returns a list of flagged issues ('flags unsupported claims'), but it does not specify the response structure, whether it returns a report or throws an error, or any prerequisites. For a validation tool, this is adequate but leaves some ambiguity.

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 description coverage is only 50% (operationIds lacks a schema description). The description compensates by explaining both parameters: 'free-text claims' for claims and 'operationIds' for the array of identifiers. It adds semantic meaning beyond the schema, though it could be more explicit about operationIds format or constraints.

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 the tool's purpose: to check a proposed plan against known gaps and platform invariants, with explicit examples of unsupported claims. It uses a specific verb ('checks/flags') and identifies the resource (proposed plan), and the context of validating a plan distinguishes it from sibling tools like plan_integration or search_knowledge.

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

Usage Guidelines3/5

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

The description implies usage (when you have a plan to validate) but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. It lacks phrases like 'use after plan_integration' or 'instead of search_knowledge', so guidance is only implicit.

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. 11 tool updatesv0.1.0
    • First observedchoose_sdk
    • First observedexplain_error
    • First observedget_capability
    • First observedget_knowledge_status
    • First observedget_operation
    • First observedget_recipe
    • First observedget_webhook_contract
    • First observedplan_integration
    • First observedsearch_knowledge
    • First observedupdate_knowledge
    • First observedvalidate_integration_plan

TDQS

B3.4/5.0

Scored across 11 tools

Disambiguation4/5

Most tools target distinct resources (capabilities, operations, SDKs, errors, webhooks, recipes, knowledge). get_capability and get_operation are close but descriptions clarify capability vs operation; search_knowledge and plan_integration both search, but one is a general lookup and the other is goal-driven planning.

Naming Consistency4/5

Tool names mostly follow a verb_noun pattern: get_capability, get_operation, get_webhook_contract, get_recipe, get_knowledge_status, update_knowledge, search_knowledge, explain_error, choose_sdk, plan_integration, validate_integration_plan. Minor inconsistency: explain_error and choose_sdk use different verb styles, but the pattern is still readable and predictable.

Tool Count5/5

11 tools is well-scoped for a knowledge/API integration server. Each tool covers a distinct aspect of the domain: lookup, search, planning, validation, and knowledge maintenance.

Completeness4/5

The surface covers the core lifecycle: search, retrieve details, plan, validate, and update knowledge. Minor gaps: no explicit tool for listing all capabilities/operations or comparing knowledge versions beyond status, but the search and get tools cover most needs.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to dynamically discover and interact with APIs through Swagger/OpenAPI specifications and Postman collections using a strategic four-tool approach. It streamlines API integration by providing universal tools for endpoint discovery, detailed request information, and authenticated execution.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    Exposes Swagger/OpenAPI API documentation to AI models, enabling exploration, search, and interaction with endpoints, schemas, and execution of API calls.
    14
    1 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI coding agents with accurate OpenAPI contract details to prevent hallucinated API calls, supporting multi-version pinning, endpoint discovery, and request validation.
    38 npm
    Apache 2.0
  • F
    license
    A
    quality
    B
    maintenance
    Enables LLMs to dereference and query OpenAPI/Swagger specifications, search endpoints and schemas, validate payloads, extract security schemes, and generate production-ready integration code in multiple languages.
    8
    -