Skip to main content
Glama
Tunzaa

Tunzaa MCP Server

Official
by Tunzaa

Tunzaa MCP 服务器

AI 驱动支付集成的基础支撑

Tunzaa MCP 服务器是一个为社区构建的开发者中心工具。它提供高保真的基础数据、集成文档和“黄金”代码模式,使 AI 代理(氛围编程者)能够为 Tunzaa 生态系统生成完美、无幻觉的集成代码。

🚀 快速启动(最快方式)

您可以直接从 GitHub 运行服务器,无需克隆或安装依赖项。

1. Claude Desktop

将其添加到您的 claude_desktop_config.json 中:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "tunzaa": {
      "command": "npx",
      "args": ["-y", "github:Tunzaa/tunzaa_mcp"]
    }
  }
}

2. Cursor

  1. 前往 Settings -> Features -> MCP

  2. 点击 + Add New MCP Server

  3. 名称: Tunzaa | 类型: command | 值: npx -y github:Tunzaa/tunzaa_mcp

3. Windsurf

将其添加到您的 ~/.codeium/config.json 中:

{
  "mcpServers": {
    "tunzaa": {
      "command": "npx",
      "args": ["-y", "github:Tunzaa/tunzaa_mcp"]
    }
  }
}

Related MCP server: MCP Midtrans Documentation Server

🧭 氛围编程工作流

此服务器旨在帮助您在几分钟内构建 Tunzaa 集成。与您的 AI 助手一起遵循此流程:

  1. 基础支撑 (Grounding):将此 MCP 服务器添加到您的项目中。

  2. 探索:询问 AI:“列出 Tunzaa 资源并阅读身份验证指南。”

  3. 模拟:运行工具:create_demo_shop 以查看成功集成的实时跟踪。

  4. 生成:询问 AI:“基于基础跟踪和 node-express 示例,为我的应用构建一个结账页面。”


🏪 基础支撑“演示商店”

create_demo_shop 工具是此平台的基石。它不仅返回数据,还提供实时基础跟踪 (Live Grounding Trace)

如何使用:

  1. 触发模拟:告诉您的 AI 代理:“运行 Tunzaa create_demo_shop 工具以了解支付流程。”

  2. 审查跟踪:代理将收到一系列按时间顺序排列的调用,包括身份验证、支付发起和分期创建。

  3. 生产实现:跟踪中的每一步都包含“基础洞察”,教导代理如何在您的实际代码中处理状态、标头和引用 ID。

  4. 样板代码:要求代理“使用文档资源中发现的最佳实践,将基础跟踪转换为 [Node/Python/PHP] 实现。”


✨ 功能

  • 集成文档:AI 代理可以通过 MCP 资源直接“阅读”关于身份验证、支付和 Webhook 的指南。

  • 黄金模式:嵌入了适用于 Express.js、React Hooks 等的代码片段。

  • 氛围编程优化:丰富的模式描述和教学跟踪(通过 create_demo_shop)确保零幻觉。

  • 默认模拟模式:生成与真实 Tunzaa API 结构匹配的“黄金”模拟数据。

  • 实时模式(可选):针对 Tunzaa 沙盒/生产环境进行实时验证。


🛠️ 使用(实时模式)

要让 AI 验证来自您 Tunzaa 账户的真实数据(例如,检查交易状态),请将您的凭据添加到配置中的 env 块:

"env": {
  "TUNZAA_API_KEY": "your_api_key",
  "TUNZAA_SECRET_KEY": "your_secret_key",
  "TUNZAA_ENVIRONMENT": "sandbox"
}

🏗️ 本地开发

如果您想贡献或修改服务器:

  1. git clone https://github.com/Tunzaa/tunzaa_mcp.git

  2. cd tunzaa_mcp && pnpm install && pnpm run build

  3. 在您的配置中使用本地路径:"args": ["/ABSOLUTE/PATH/TO/tunzaa_mcp/dist/index.js"]

许可证

ISC

Available Tools

10 tools
create_demo_shopB

The ultimate grounding tool. Executes a full sequence of Tunzaa API calls (Token -> Payment -> Installments). Use this to see a 'live trace' of the API, allowing you to generate perfect integration code.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_urlNoOptional URL to simulate the Tunzaa environment for grounding.

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions executing a sequence of API calls and generating a 'live trace', it doesn't disclose important behavioral aspects: whether this creates persistent data, what authentication is required, whether it's idempotent, what side effects occur, or what the output format looks like. The description provides some context about the multi-step nature but misses critical operational details.

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 appropriately concise with two sentences that each serve a distinct purpose: the first explains what the tool does, the second explains when to use it. There's no redundant information or unnecessary elaboration. The structure could be slightly improved by front-loading the core functionality more clearly, but overall it's 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 this is a multi-step API execution tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool actually creates (despite the name 'create_demo_shop'), what the output looks like, what errors might occur, or important behavioral constraints. For a tool that presumably orchestrates multiple API calls with potential side effects, more comprehensive documentation is needed.

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 input schema has 100% description coverage, with the single parameter 'api_url' clearly documented as 'Optional URL to simulate the Tunzaa environment for grounding.' The description doesn't add any meaningful parameter semantics beyond what the schema already provides - it doesn't explain when to use the api_url parameter, what values are valid, or how it affects the execution. Baseline 3 is appropriate when schema coverage is complete.

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 states the tool 'executes a full sequence of Tunzaa API calls (Token -> Payment -> Installments)', which provides a clear high-level purpose. However, it doesn't specify what resource is being created (a 'demo shop' as implied by the name) or differentiate from sibling tools like 'initiate_payment' or 'get_token' that handle individual steps. The phrase 'ultimate grounding tool' is vague marketing language rather than functional specification.

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 explicitly states 'Use this to see a 'live trace' of the API, allowing you to generate perfect integration code', which provides clear context about when this tool should be used (for API exploration and code generation). However, it doesn't mention when NOT to use it or explicitly contrast with sibling tools that handle individual API steps, leaving some ambiguity about alternative approaches.

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

create_installmentB

Create a new installment plan. Use this to understand the complex object structure required for installment-based payments.

ParametersJSON Schema
NameRequiredDescriptionDefault
customerYes
nameYesThe name of the item or plan (e.g., 'Samsung S24 Ultra - 12 Month Plan').
descriptionYesBrief description of the product or service being financed.
total_amountYesThe total price of the item to be paid in installments.
payment_frequencyYesHow often the customer will make payments.
start_dateYesThe date of the first installment payment (YYYY-MM-DD).
end_dateYesThe expected completion date for all payments (YYYY-MM-DD).
custom_intervalNoNumber of days between installments if frequency is 'custom'.
addressNo

TDQS

B3.1/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 of behavioral disclosure. It mentions 'complex object structure,' hinting at input complexity, but fails to disclose critical traits: whether this is a write operation (implied by 'create'), permission requirements, side effects (e.g., database changes), error handling, or response format. For a mutation tool with zero annotation coverage, this 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.

Conciseness4/5

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

The description is appropriately sized with two sentences that are front-loaded: the first states the purpose, and the second adds context. There's no wasted text, but the second sentence could be more actionable (e.g., specifying key parameters). It's efficient but not perfectly structured for maximum clarity.

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 complexity (9 parameters, nested objects, no output schema, and no annotations), the description is incomplete. It doesn't address the mutation nature, potential side effects, error scenarios, or what happens after creation (e.g., returns a plan ID). For a tool with high parameter count and no structured safety hints, more context is needed to guide effective use.

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 78% (high), so the baseline is 3 even with no parameter info in the description. The description adds minimal value beyond the schema by noting 'complex object structure,' but doesn't explain parameter interactions (e.g., 'custom_interval' depends on 'payment_frequency') or provide examples. It compensates slightly but not enough to raise the score.

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 the tool's purpose: 'Create a new installment plan.' It specifies the action (create) and resource (installment plan), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'edit_installment_plan' or 'initiate_payment,' which would require explicit comparison for a score of 5.

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 provides implied usage guidance: 'Use this to understand the complex object structure required for installment-based payments.' This suggests it's for creating plans with structured data, but it lacks explicit when-to-use rules, alternatives (e.g., vs. 'edit_installment_plan'), or exclusions. No misleading information is present, but guidance is minimal.

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

delete_installment_planC

Cancel/Delete an existing installment plan. Use this to verify the cancellation response structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe numeric ID of the plan to cancel/delete.
addressNo

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 carries the full burden. It discloses that the tool performs a cancellation/deletion (implying a destructive mutation) and mentions verifying the response structure, but lacks critical behavioral details: it doesn't specify if the deletion is reversible, what permissions or authentication are required, any rate limits, side effects (e.g., impact on related payments), or error handling. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is concise with two sentences, front-loading the primary action ('Cancel/Delete an existing installment plan.') and following with a secondary purpose. There is no wasted text, but the second sentence about verifying response structure feels somewhat disconnected and could be integrated more smoothly. Overall, it's efficient but not perfectly structured.

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 complexity (a destructive mutation with 2 parameters, 50% schema coverage, no output schema, and no annotations), the description is incomplete. It lacks details on behavioral traits, full parameter meanings, output expectations, and usage context. The mention of response structure verification is insufficient to cover these gaps, making it inadequate for safe and effective agent use.

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 50% (only 'plan_id' has a description). The description adds no parameter-specific information beyond what the schema provides—it doesn't explain the 'address' parameter or provide additional context for 'plan_id'. With low schema coverage, the description fails to compensate for undocumented parameters, resulting in minimal added value. The baseline is adjusted downward due to the coverage gap, but the description doesn't worsen it.

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 the tool's purpose with specific verbs ('Cancel/Delete') and identifies the resource ('an existing installment plan'). It distinguishes from siblings like 'edit_installment_plan' and 'get_installment_plan' by focusing on removal rather than modification or retrieval. However, it doesn't explicitly differentiate from all siblings (e.g., 'create_installment' is for creation, but this is implied).

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 minimal guidance: it states to use this tool for cancellation/deletion, but offers no context on when to use it versus alternatives (e.g., when not to delete, prerequisites like plan status). It mentions verifying the cancellation response structure, which hints at a testing use case, but this is vague and doesn't clarify operational scenarios. No explicit when/when-not or alternative tool references are included.

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

edit_installment_planC

Update an existing installment plan. Use this to understand which fields are mutable via the Tunzaa API.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe numeric ID of the plan to modify.
updatesYesA map of fields to update (e.g., {'description': 'New description'}).
addressNo

TDQS

C2.9/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 states this is an update operation, implying mutation, but doesn't cover critical aspects like required permissions, whether changes are reversible, rate limits, error handling, or what the response entails. The mention of 'mutable via the Tunzaa API' adds some context but is insufficient for a mutation tool.

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

Conciseness4/5

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

The description is concise with two sentences, front-loading the core purpose. However, the second sentence about 'mutable via the Tunzaa API' could be more integrated or omitted if it doesn't add actionable guidance, slightly reducing efficiency.

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 complexity of a mutation tool with 3 parameters, no annotations, no output schema, and incomplete parameter coverage, the description is inadequate. It fails to provide necessary context on behavior, usage, or output, leaving significant gaps for an AI agent to operate effectively.

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 67% (2 out of 3 parameters have descriptions). The description adds minimal value beyond the schema, as it doesn't explain parameter meanings, constraints, or examples beyond the schema's details for 'plan_id' and 'updates'. The 'address' parameter lacks documentation in both schema and description, but the baseline is 3 due to moderate schema coverage.

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 the action ('Update') and resource ('an existing installment plan'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'create_installment' or 'delete_installment_plan', which would require more specific context about when to use each.

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 minimal guidance, mentioning only that it's for updating plans and referencing the Tunzaa API for mutable fields. It lacks explicit when-to-use instructions, alternatives (e.g., vs. create_installment), prerequisites, or exclusions, leaving usage context unclear.

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

get_installment_planB

Get details of a specific installment plan. Use this to see the precise fields returned for a plan (status, schedules, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe unique numeric ID of the installment plan.
addressNo

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 of behavioral disclosure. It mentions that the tool returns details like 'status, schedules, etc.,' but does not disclose critical behavioral traits such as whether it's a read-only operation, authentication requirements, error handling, or rate limits. This leaves significant gaps for an AI agent to understand how to use it safely and effectively.

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 concise and well-structured, consisting of two sentences that efficiently convey the tool's purpose and usage. Every sentence adds value without redundancy, making it easy to parse and understand quickly.

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?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but lacks details on behavioral aspects, parameter usage, and output format. Without annotations or an output schema, more context would be helpful for the AI agent to use the tool correctly.

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 input schema has 50% description coverage (only 'plan_id' is described). The description does not add any parameter-specific information beyond what the schema provides. It implies the tool retrieves details for a 'specific installment plan,' which aligns with the 'plan_id' parameter, but does not explain the purpose of the 'address' parameter or provide additional context. With moderate schema coverage, the baseline score of 3 is appropriate.

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

Purpose4/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: 'Get details of a specific installment plan.' It specifies the verb ('Get') and resource ('installment plan'), and mentions the type of details returned ('status, schedules, etc.'). However, it does not explicitly differentiate from sibling tools like 'list_installments' or 'get_payment_status,' which slightly reduces clarity.

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 provides implied usage guidance: 'Use this to see the precise fields returned for a plan.' This suggests it's for retrieving detailed information about a specific plan, but it does not explicitly state when to use this tool versus alternatives like 'list_installments' or 'get_payment_status,' nor does it mention prerequisites or exclusions.

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

get_payment_statusB

Check the status of a payment transaction. Helpful for understanding the various status states (COMPLETED, PENDING, FAILED) for your application logic.

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIDYesThe 'transactionID' previously returned by 'initiate_payment'.
addressNo

TDQS

B3.4/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 mentions the tool checks status and lists possible states (COMPLETED, PENDING, FAILED), which gives some context about expected behavior. However, it lacks details on permissions, rate limits, error handling, or whether it's idempotent, which are important for a payment-related tool. The description does not contradict annotations, but it's insufficient for full transparency.

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 concise with two sentences that efficiently convey the tool's purpose and utility. It is front-loaded with the main action ('Check the status...') and avoids unnecessary details. However, it could be slightly more structured by explicitly separating usage guidance from purpose, but overall it's well-sized with minimal waste.

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?

Given no annotations, no output schema, and moderate schema coverage, the description provides basic purpose and status context but lacks completeness. It does not explain return values, error cases, or dependencies (e.g., requiring a valid 'transactionID' from 'initiate_payment'), which are crucial for effective tool use. The description is adequate as a starting point but has clear gaps for a payment status 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 50% (only 'transactionID' has a description). The description does not add meaning beyond the schema, as it does not explain parameters like 'address' or provide additional context for 'transactionID'. Since schema coverage is moderate, the baseline is 3, but the description fails to compensate for the undocumented 'address' parameter, leaving gaps in understanding.

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 with a specific verb ('Check') and resource ('status of a payment transaction'), distinguishing it from siblings like 'initiate_payment' (which creates payments) and 'get_installment_plan' (which retrieves plan details). It explicitly mentions the tool helps understand status states, which adds clarity about its informational role.

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 by stating it's 'helpful for understanding the various status states... for your application logic,' suggesting it should be used to monitor payment outcomes. However, it does not explicitly state when to use this tool versus alternatives (e.g., vs. 'handle_callback' for real-time updates) or provide exclusions, leaving some ambiguity in context.

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

get_tokenA

Retrieve a Tunzaa access token. Refreshes internal token automatically. Use this to verify your API credentials and see the internal token structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoOptional override for the Tunzaa API base URL.

TDQS

A3.8/5.0
Behavior4/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 effectively describes key behaviors: the tool retrieves an access token, automatically refreshes internal tokens, and serves for credential verification and token structure inspection. It doesn't mention side effects, error conditions, or performance characteristics, but covers the core operational behavior adequately for a simple retrieval 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?

The description is extremely concise (three sentences) with zero wasted words. Each sentence adds distinct value: the core function, an important behavioral detail (automatic refresh), and usage context. It's front-loaded with the primary purpose and efficiently structured.

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 low complexity (one optional parameter, no output schema, no annotations), the description is reasonably complete. It explains what the tool does, key behavior (automatic refresh), and primary use cases. For a simple token retrieval tool, this provides sufficient context, though it could benefit from mentioning response format or error handling.

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 input schema has 100% description coverage, with one optional parameter ('address') fully documented in the schema. The description adds no parameter-specific information beyond what the schema provides. According to the rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.

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 the tool's purpose with specific verbs ('retrieve', 'refreshes') and identifies the resource ('Tunzaa access token'). It distinguishes from siblings by focusing on authentication tokens rather than payment/installment operations. However, it doesn't explicitly contrast with other authentication-related tools since none are listed among siblings.

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 provides implied usage context ('verify your API credentials', 'see the internal token structure'), suggesting this is for authentication validation and debugging. However, it lacks explicit guidance on when to use this versus alternatives (e.g., whether to call this before other operations) or any exclusion criteria. The mention of 'refreshes internal token automatically' hints at a maintenance use case but isn't framed as explicit guidance.

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

handle_callbackB

Simulate or handle the callback payload sent by Tunzaa to your webhook. Essential for grounding your webhook integration code with real payload examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYesThe unique Tunzaa transaction ID sent in the webhook.
statusYesThe final status of the payment (e.g., 'COMPLETED', 'FAILED', 'CANCELLED').
reference_idNoYour system's unique order reference.
amountNoThe amount confirmed by the provider.
payment_dateNoThe date the payment was completed.
timestampNoUNIX timestamp of the event.

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 'simulate or handle' which suggests both testing and production use, but doesn't clarify whether this is a read-only operation, if it modifies data, what permissions are needed, or what the response looks like. For a tool with no annotation coverage, this leaves significant behavioral gaps.

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 concise sentences that efficiently convey the tool's purpose and value. The first sentence states what it does, the second explains why it's useful. There's no wasted verbiage or redundant 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?

Given no annotations and no output schema, the description provides adequate basic purpose but lacks important behavioral context for a tool that appears to handle webhook payloads. It doesn't explain what happens after simulation/handling, whether there are side effects, or what the agent should expect as a result. For a 6-parameter tool in a payment system context, more completeness would be helpful.

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 fully documents all 6 parameters. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain format details or provide examples). With complete schema coverage, the baseline score of 3 is appropriate.

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

Purpose4/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: 'Simulate or handle the callback payload sent by Tunzaa to your webhook.' It specifies the verb ('simulate or handle') and resource ('callback payload'), but doesn't explicitly differentiate from sibling tools like 'get_payment_status' or 'initiate_payment' which handle different aspects of the payment flow.

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 provides some usage context: 'Essential for grounding your webhook integration code with real payload examples.' This implies it's used for testing or development with webhooks, but doesn't explicitly state when to use it versus alternatives like 'get_payment_status' for checking status directly, or provide clear exclusions.

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

initiate_paymentB

Initiate a payment request (M-Pesa, etc.) via Tunzaa. Call this to inspect the response structure needed to implement mobile money flows in your local code.

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_msisdnYesCustomer phone number in local format (e.g., 0744550667). Essential for Mobile Money push.
amountYesTransaction amount as a string to avoid precision issues (e.g., '5000').
referenceYesUnique order reference from your system. Used to match callbacks.
addressNoOptional override for API base URL.

TDQS

B3.1/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 is for initiating payments and inspecting response structures, but it doesn't disclose critical behavioral traits like whether this is a live transaction or demo, authentication requirements, rate limits, error handling, or what happens after initiation (e.g., callback triggering). For a payment tool with zero annotation coverage, this 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.

Conciseness4/5

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

The description is appropriately sized with two sentences. The first sentence states the purpose clearly, and the second provides usage context. There's no wasted text, and it's front-loaded with the core function. However, the second sentence could be more direct about tool usage rather than focusing on code implementation.

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 complexity of a payment initiation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., transaction effects, security), doesn't explain the response structure mentioned, and provides minimal guidance on usage. For a tool that likely involves financial transactions, this is inadequate despite the good schema coverage.

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 all 4 parameters thoroughly. The description doesn't add any parameter-specific semantics beyond what's in the schema (e.g., it doesn't explain format details for 'customer_msisdn' or 'reference' beyond the schema's descriptions). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate with extra insights.

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 the tool's purpose: 'Initiate a payment request (M-Pesa, etc.) via Tunzaa.' It specifies the action (initiate) and resource (payment request) with platform context (Tunzaa). However, it doesn't explicitly differentiate from sibling tools like 'get_payment_status' or 'handle_callback' beyond the 'initiate' verb.

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 provides implied usage guidance: 'Call this to inspect the response structure needed to implement mobile money flows in your local code.' This suggests it's for development/testing purposes, but it doesn't explicitly state when to use this vs. alternatives like 'get_payment_status' or provide clear exclusions. The context is somewhat clear but lacks explicit alternatives.

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

list_installmentsA

List existing installment plans. Use this to see how pagination and plan summaries are returned by the Tunzaa API.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoStarting index for pagination.
limitNoNumber of plans to return per page.
addressNo

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 carries the full burden. It discloses that the tool returns paginated results and plan summaries, which is useful behavioral context. However, it doesn't cover other aspects like rate limits, authentication needs, or error handling, leaving gaps for a read operation.

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 with zero waste, front-loading the core purpose and efficiently adding usage context. Every word earns its place, making it highly concise and well-structured.

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 read tool with 3 parameters, 67% schema coverage, and no output schema, the description provides basic purpose and behavioral hints but lacks details on return format, error cases, or the 'address' parameter. It's minimally adequate but has clear gaps given the complexity.

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 67% (2 out of 3 parameters have descriptions). The description adds no parameter-specific information beyond what the schema provides, such as explaining the 'address' parameter. Baseline is 3 since the schema does moderate lifting, but the description doesn't compensate for the undocumented 'address' parameter.

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 the verb ('List') and resource ('existing installment plans'), making the purpose unambiguous. It distinguishes from siblings like 'get_installment_plan' by indicating it returns multiple plans rather than a single one, though it doesn't explicitly name alternatives.

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

Usage Guidelines3/5

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

The description implies usage for viewing pagination and plan summaries, suggesting it's for browsing multiple plans. However, it doesn't explicitly state when to use this vs. alternatives like 'get_installment_plan' for single plans or provide exclusions, leaving some ambiguity.

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. 10 tool updatesv1.0.0
    • First observedcreate_demo_shop
    • First observedcreate_installment
    • First observeddelete_installment_plan
    • First observededit_installment_plan
    • First observedget_installment_plan
    • First observedget_payment_status
    • First observedget_token
    • First observedhandle_callback
    • First observedinitiate_payment
    • First observedlist_installments

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific resources and actions in the Tunzaa API workflow, such as token retrieval, payment initiation, installment plan management, and callback handling. There is no overlap or ambiguity between tools, making it easy for an agent to select the correct one based on the task.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with clear, descriptive actions like 'create', 'get', 'list', 'edit', 'delete', 'initiate', and 'handle'. The naming is uniform throughout, using snake_case consistently without any deviations or mixed conventions.

Tool Count5/5

With 10 tools, the server is well-scoped for its purpose of demonstrating and interacting with the Tunzaa API. Each tool serves a specific, necessary function in the payment and installment workflow, avoiding bloat while covering core operations from authentication to transaction management.

Completeness5/5

The tool set provides complete coverage of the Tunzaa API domain, including token management, payment initiation and status checks, full CRUD operations for installment plans, and webhook callback handling. There are no obvious gaps, ensuring agents can handle the entire integration lifecycle without dead ends.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to interact with multiple payment providers (Stripe, Paystack) through a unified API. Supports payment initialization, verification, refunds, customer management, and invoicing without requiring knowledge of specific provider implementations.
    2
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to integrate Midtrans payments by providing comprehensive documentation, API references, and code examples for 15+ payment methods across 5 languages. Includes tools for generating charge requests, webhook handlers, and searching documentation without requiring API keys.
    9
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI agents with structured, verified specs for African APIs like Wave and Paycard, enabling automatic integration code generation without manual documentation parsing.
    20
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to test Cashfree payment integrations end-to-end by creating orders, simulating payments, listening to webhooks, and verifying signatures via MCP tools.
    MIT