Skip to main content
Glama

Paymenter MCP Server πŸš€

TIP

🌐Language Selection / Chọn NgΓ΄n Ngα»― TΓ i Liệu:
πŸ‡ΊπŸ‡Έ English (README.md) β€’ πŸ‡»πŸ‡³ TiαΊΏng Việt (README_VI.md)

License: MIT Node.js Version Model Context Protocol Zero Dependencies Paymenter Version JSON:API Specification GitHub Stars GitHub Forks GitHub Issues

Enterprise Model Context Protocol (MCP) Server and Agent Skill for Paymenter (v1.2.0+).
Empowers AI Agents (Google Antigravity, Claude Desktop, Cursor, Cline) to autonomously govern cloud hosting infrastructure, provision VPS/servers, orchestrate client billing, automate support helpdesks, and manage wallet credits.


πŸ“‘ Table of Contents


Related MCP server: Plesk MCP Server

🌐 Translations / Đa Ngôn Ngữ

This documentation is available in multiple languages:

Language

Document Link

Description

πŸ‡ΊπŸ‡Έ English

README.md

Official documentation (Default)

πŸ‡»πŸ‡³ TiαΊΏng Việt

README_VI.md

BαΊ£n dα»‹ch tΓ i liệu Δ‘αΊ§y Δ‘α»§ & chi tiαΊΏt 100%


πŸ›οΈ Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                    
β”‚AgentRequestβ”‚                    
β””β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                    
β”Œβ–½β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           
β”‚MCP Router (35 Tools)β”‚           
β””β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           
β”Œβ–½β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Lazy Schema Validator (draft-07)β”‚
β””β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ–½β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           
β”‚Paymenter HTTP Clientβ”‚           
β””β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           
β”Œβ–½β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      
β”‚JSON:API Sideload Hydratorβ”‚      
β””β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      
β”Œβ–½β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   
β”‚AgentResponseβ”‚                   
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   

πŸ’‘ Why Paymenter MCP?

Capability

Manual API Integration

Paymenter MCP Server

Agent Discovery

Requires feeding 180KB OpenAPI JSON into context (~45k tokens)

Lazy-Loaded Tool Schemas: Zero token bloat at startup (~85% savings)

Relational Data

Raw JSON:API with scattered included array (requires manual lookup)

Automatic Hydration: Seamlessly maps nested entities into single coherent objects

Runtime Portability

Complex dependencies or Docker wrappers

Zero Dependencies: Pure Node.js built-ins (http, readline), starts in <50ms

Error Handling

Unformatted 422 HTTP validation crashes

Standard MCP { isError: true } with clear parameter diagnostics

Verification

Blind runtime calls

Built-in offline test ratchet suite (--test flag)


✨ Key Features

  • ⚑ Zero External Dependencies: 100% native Node.js (http, https, readline). Works out-of-the-box on Node.js 18+ without running npm install.

  • 🎯 35 Specialized Tools: Comprehensive management across 7 business domains (Users, Orders, Services, Invoices, Credits, Tickets, Catalog).

  • πŸ“¦ JSON:API Compound Document Hydration: Automatically resolves references between data.relationships and the included array so LLMs receive rich, context-complete payloads.

  • 🧠 Modern Antigravity Lazy-Loading: Includes 35 standalone JSON Schema Draft-07 files (schemas/*.json) and an operational instructions.md, preventing context window saturation.

  • πŸ›‘οΈ Self-Test Ratchet Suite: Run node server.js --test anytime to execute 9 offline test suites with guaranteed Exit Code 0.


🧰 35 Tools Catalog

Category

Tool Name

Description

System & Health

paymenter_health_check

Verify API connectivity, latency, auth token validity, and Paymenter server version.

paymenter_search

Global cross-entity search across Users, Orders, Services, Tickets, and Invoices.

paymenter_get_dashboard_summary

Executive metrics (active services count, unpaid invoices, pending tickets, users).

User Management

paymenter_list_users

List & filter users (filter[email], first_name, last_name, pagination, sort).

paymenter_get_user

Fetch single user profile by ID (sideload role, credits).

paymenter_create_user

Create new client account (email, password, first_name, last_name, role_id).

paymenter_update_user

Update client details, email verification status, or role.

paymenter_delete_user

Permanently remove client account from database.

paymenter_get_user_overview

360Β° client snapshot in 1 call (Profile + Credits + Services + Invoices + Tickets).

Orders & Services

paymenter_list_orders

List client orders (filter[id], currency_code, sideload services, user).

paymenter_get_order

Retrieve order details and constituent service instances.

paymenter_create_order

Generate new order (user_id, currency_code).

paymenter_delete_order

Cancel and delete order.

paymenter_list_services

List hosting/VPS instances (filter[status], expires_at, price, subscription_id).

paymenter_get_service

Detailed service configuration, package specs, and expiry date.

paymenter_create_service

Provision new service instance (product_id, plan_id, user_id, quantity, price).

paymenter_update_service

Modify service attributes, expiration, or billing cycle.

Lifecycle Actions

paymenter_suspend_service

Lock/suspend active service instance with reason.

paymenter_unsuspend_service

Re-activate suspended service instance.

paymenter_renew_service

Extend expiration date (expires_at) and create renewal invoice.

paymenter_cancel_service

Terminate and mark service as cancelled.

Billing & Credits

paymenter_list_invoices

List invoices (filter[user_id], status: pending/paid/cancelled).

paymenter_get_invoice

Fetch invoice breakdown and line items (include=items).

paymenter_create_invoice

Generate new billing invoice (user_id, currency_code, status, due_at).

paymenter_update_invoice

Update invoice status or due date.

paymenter_delete_invoice

Delete invoice from billing system.

paymenter_create_invoice_item

Add line item to invoice (invoice_id, description, price, quantity).

paymenter_manage_credit

Add or debit client prepaid wallet credit (user_id, amount, currency_code).

Support Desk

paymenter_list_tickets

List tickets (filter[status], filter[priority], filter[department]).

paymenter_get_ticket

View ticket discussion thread (include=messages).

paymenter_create_ticket

Open new support ticket (subject, user_id, priority, department).

paymenter_reply_ticket

Post message reply and optionally update status (replied/closed).

Catalog & Affiliates

paymenter_list_products

Browse hosting packages, server specifications, and pricing.

paymenter_list_categories

Browse product service categories.

paymenter_manage_affiliate

Manage referral affiliate codes (code), rewards, and commission rates.


πŸš€ Quickstart & Verification

1. Prerequisites

  • Node.js: v18.0.0 or higher.

  • Paymenter Instance: v1.2.0 or higher with an API Bearer token.

2. Environment Variables

export PAYMENTER_URL="https://billing.yourdomain.com/api"
export PAYMENTER_API_TOKEN="your_paymenter_api_bearer_token_here"

3. Run Built-in Verification Suite

node server.js --test

Output Evidence:

=== Paymenter MCP Server Self-Test Suite ===
1. Testing method "initialize"... PASSED
2. Testing method "ping"... PASSED
3. Testing notification "notifications/initialized"... PASSED
4. Testing method "tools/list"... PASSED (Exactly 35 tools registered)
5. Verifying schema structure of all 35 tools... PASSED
6. Testing "tools/call" for "paymenter_health_check"... PASSED
7. Testing "tools/call" error handling for non-existent tool... PASSED
8. Testing "tools/call" error handling for missing arguments... PASSED
9. Testing JSON:API compound document hydration... PASSED
>>> All 9 MCP Self-Tests Passed Successfully! Exit Code 0. <<<

πŸ”Œ Client Configurations

Google Antigravity CLI / IDE

Add to your ~/.gemini/antigravity-cli/settings.json (or project .agents/settings.json):

{
  "mcpServers": {
    "paymenter": {
      "command": "node",
      "args": ["/path/to/paymenter-mcp/server.js"],
      "env": {
        "PAYMENTER_URL": "https://billing.yourdomain.com/api",
        "PAYMENTER_API_TOKEN": "your_api_token"
      }
    }
  }
}

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "paymenter": {
      "command": "node",
      "args": ["/path/to/paymenter-mcp/server.js"],
      "env": {
        "PAYMENTER_URL": "https://billing.yourdomain.com/api",
        "PAYMENTER_API_TOKEN": "your_api_token"
      }
    }
  }
}

Cursor IDE

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "paymenter": {
      "command": "node",
      "args": ["/path/to/paymenter-mcp/server.js"],
      "env": {
        "PAYMENTER_URL": "https://billing.yourdomain.com/api",
        "PAYMENTER_API_TOKEN": "your_api_token"
      }
    }
  }
}

πŸ“¦ JSON:API Sideload Hydration

Paymenter utilizes the JSON:API v1.0 standard where related objects reside in an included array. Paymenter MCP Server intercepts and hydrates these relationships client-side:

// Example: Querying service with user and order relations
// Raw JSON:API separates data.relationships and included array.
// Paymenter MCP Server returns unified, hydrated data:
{
  "id": "104",
  "type": "services",
  "attributes": {
    "status": "active",
    "expires_at": "2027-01-01T00:00:00Z"
  },
  "hydrated_relationships": {
    "user": {
      "id": "42",
      "email": "customer@example.com",
      "first_name": "Jane"
    },
    "order": {
      "id": "89",
      "currency_code": "USD"
    }
  }
}

❓ Frequently Asked Questions (FAQ)

Q1: What version of Paymenter is supported?

A: Paymenter MCP Server officially supports Paymenter v1.2.0 and higher, which features the modern Laravel JSON:API administrative backend.

Q2: Does this work if Paymenter is running in Docker?

A: Yes! As long as your Paymenter container exposes its web port (e.g. http://localhost:8000/api or https://billing.domain.com/api), the MCP server will interact seamlessly via standard HTTP.

Q3: What API token permissions are required?

A: The Bearer token should be generated with Administrator privileges inside the Paymenter admin control panel to access administrative routes (/v1/admin/*).

Q4: Why is this written in Zero-Dependency Node.js?

A: To maximize portability, reliability, and speed. AI coding assistants (Antigravity CLI, Claude Desktop, Cursor) can launch server.js instantly without risking broken dependencies or needing an active internet connection to run npm install.

Q5: Can I use this alongside the Antigravity Agent Skill?

A: Yes! The included skill/ directory contains SKILL.md and reference guides designed specifically for Antigravity, providing deep domain knowledge while the MCP server executes the API operations.

Q6: How are rate limits handled?

A: Paymenter MCP Server gracefully handles HTTP 429 Too Many Requests responses, returning formatted error diagnostics with retry suggestions directly to the calling LLM.


πŸ“ Repository Structure

paymenter-mcp/
β”œβ”€β”€ package.json                          # Node.js project manifest (zero dependencies)
β”œβ”€β”€ server.js                             # Standalone MCP server (JSON-RPC 2.0 stdio, 35 tools)
β”œβ”€β”€ schemas/                              # Modern Antigravity Lazy-Loaded JSON schemas
β”‚   β”œβ”€β”€ instructions.md                   # Operational guidelines & relationship rules
β”‚   β”œβ”€β”€ paymenter_health_check.json
β”‚   β”œβ”€β”€ paymenter_list_users.json
β”‚   └── ... (all 35 draft-07 schemas)
β”œβ”€β”€ skill/                                # Antigravity agent skill module
β”‚   β”œβ”€β”€ SKILL.md                          # Comprehensive agent skill guide
β”‚   β”œβ”€β”€ references/
β”‚   β”‚   β”œβ”€β”€ api-endpoints.md              # 22 endpoints technical reference
β”‚   β”‚   └── jsonapi-conventions.md        # JSON:API v1.0 specifications
β”‚   └── scripts/
β”‚       └── paymenter_client.py           # Standalone Python client SDK
β”œβ”€β”€ .github/                              # GitHub templates
β”‚   └── ISSUE_TEMPLATE/
β”‚       β”œβ”€β”€ bug_report.md
β”‚       └── feature_request.md
β”œβ”€β”€ CONTRIBUTING.md                       # Contribution guidelines
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE                               # MIT License
└── README.md                             # Documentation & user guide

🀝 Contributing & Community

Contributions are welcomed! Please read our Contributing Guidelines and check out our Bug Report and Feature Request templates.

If you find this project useful, please give it a Star ⭐ on GitHub to support open-source AI infrastructure!


πŸ“„ License

This repository is licensed under the MIT License.
Copyright (c) 2026 Do Ngoc Anh (dongocanh0501).


Available Tools

35 tools
paymenter_cancel_serviceC

Cancel a service gracefully.

NameRequiredDescriptionDefault
reasonNoReason for cancellation
service_idYesService ID

TDQS

C2.8/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 behavioral burden. It does not state whether cancellation is immediate or end-of-term, irreversible, whether it triggers refunds, or what permissions are required; 'gracefully' hints at a soft path but is undefined.

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 single sentence is front-loaded and short, but brevity comes at the cost of substance, and the ambiguous adverb 'gracefully' is filler rather than information. It is not padded, but it is under-specified for a mutation tool.

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?

For a state-changing service lifecycle tool with no annotations and no output schema, the description omits the consequences of the call, reversibility, and relationship to suspend/terminate. An agent cannot confidently invoke it without external assumptions.

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 both service_id and reason are already documented in the schema. The description adds no extra meaning (e.g., acceptable reason values or identifier formats), so the baseline 3 applies.

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?

States a specific verb (cancel) and resource (service), so the core action is unambiguous. However, it offers no differentiation from the closely related suspend_service or delete-type siblings, and the modifier 'gracefully' adds vagueness rather than precision.

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?

No guidance on when to choose cancel over suspend_service, unsuspend_service, or update_service, which all operate on the same resource. The agent must infer the intended lifecycle distinction with no help from the description.

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

paymenter_create_invoiceC

Create a new invoice for a customer.

NameRequiredDescriptionDefault
due_atNoDue date in ISO 8601 format
statusNoInitial status (default pending)
user_idYesTarget user ID
currency_codeYes3-letter ISO currency code (e.g. USD)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it discloses nothing about side effects such as whether the invoice is emailed to the customer, whether inventory/credit is touched, or what permissions are required. Only the mutation intent is implied by "Create".

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?

A single front-loaded sentence with zero filler, which is efficient. It is arguably undersized for a mutation tool with four parameters and no annotations, but nothing is wasted.

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?

For a write operation with no annotations and no output schema, the description omits what the caller needs: permissions, whether the response returns the created invoice, and any downstream effects. Required parameters are left to the schema, and no behavioral context is provided.

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 user_id, currency_code, due_at, and the status enum. The description adds no semantics beyond the schema, making the baseline 3 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 states a specific verb and resource ("Create a new invoice"), which is accurate and unambiguous about the operation. It does not, however, distinguish itself from close siblings such as paymenter_create_invoice_item, paymenter_update_invoice, or paymenter_create_order, so the agent gets no explicit routing signal.

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?

There is no guidance on when to use this tool versus alternatives like paymenter_create_order or paymenter_create_invoice_item, nor any stated prerequisites (e.g., user must exist). The agent must infer all usage context from the name alone.

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

paymenter_create_invoice_itemC

Add a line item or charge to an existing invoice.

NameRequiredDescriptionDefault
priceYesUnit price
quantityYesQuantity (default 1)
invoice_idYesParent invoice ID
descriptionYesItem description
reference_idNoPolymorphic model ID
reference_typeNoPolymorphic model type (e.g. App\Models\Service)

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 of behavioral disclosure. It indicates this is a mutation operation on an existing invoice, but it omits permissions required, reversibility, side effects on invoice totals, and what the operation returns.

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 states the action and its scope with no wasted words. It is appropriately sized for the core operation.

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?

For a mutation tool with no annotations and no output schema, the description is too thin. It does not explain return values, side effects, permissions, or how the new item affects the invoice, leaving important context missing.

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 parameters. The description adds no parameter-level meaning beyond the generic mention of 'line item or charge', leaving this at the baseline for fully covered schemas.

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 uses a specific verb ('Add') and resource ('line item or charge'), and scopes it to an existing invoice, which distinguishes it from sibling invoice operations like create_invoice or update_invoice. It does not name an alternative sibling explicitly, but the purpose is clear.

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

Usage Guidelines2/5

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

The description implies usage by stating it adds to an existing invoice, but it gives no explicit when-to-use guidance, no conditions for choosing this tool over alternatives like create_invoice, and no prerequisites or exclusions.

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

paymenter_create_orderC

Create a new order for a user.

NameRequiredDescriptionDefault
user_idYesTarget user ID
currency_codeYes3-letter ISO currency code (e.g. USD)

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 of behavioral disclosure, and it does not state whether the target user must already exist, what side effects occur, whether the order is billed immediately, or what permissions are required. For a mutation tool with zero annotation coverage, this is a substantial 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?

A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity is partly under-specification rather than pure conciseness.

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?

For a mutation tool with no annotations and no output schema, the description is too thin: it omits preconditions, side effects, and result behavior. An agent could invoke it but would lack the context needed to do so reliably.

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 two parameters (user_id, currency_code) are fully documented by the schema itself. The description adds no format or constraint detail beyond that, making the baseline 3 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 states a specific verb (create) and resource (order) with scope (for a user), which is clear enough to distinguish it from list/get/delete order siblings. It stops short of explicitly naming or contrasting those alternatives, so it isn't maximally differentiating.

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?

There is no guidance on when to create an order versus related operations (e.g., creating a service or invoice item), no prerequisites, and no exclusions. Usage is only inferable from the literal purpose statement, which is the minimum, not real guidance.

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

paymenter_create_serviceC

Provision and assign a new digital/hosting service to a customer.

NameRequiredDescriptionDefault
priceYesRecurring price
statusYesInitial status
plan_idYesPlan/billing cycle ID
user_idYesUser ID
order_idNoLinked order ID
quantityYesQuantity (default 1)
coupon_idNoCoupon ID applied
expires_atNoISO 8601 expiration timestamp
product_idYesProduct ID
currency_codeYes3-letter ISO currency code (e.g. USD)
subscription_idNoGateway subscription ID

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 behavioral burden, yet it only implies a write operation ('Provision and assign'). It does not disclose side effects such as billing implications, whether the initial status triggers provisioning workflows, permission requirements, reversibility, or what happens on failure.

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?

It is a single efficient sentence with the core action front-loaded and no filler. It is concise, though its brevity contributes to the completeness gaps elsewhere.

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?

For an 11-parameter mutation tool with 7 required fields, no annotations, and no output schema, the description is far too thin. It does not explain the required parameters, the effect of the initial status enum, or the expected outcome of provisioning, leaving significant gaps an agent must fill.

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 all 11 parameters are already documented in the schema, and the baseline is 3. The description adds no parameter-level meaning beyond that, but it does not need to.

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 states a specific verb ('Provision and assign') and resource ('new digital/hosting service') plus the target ('to a customer'), so an agent can tell what the tool creates. It stops short of distinguishing this from siblings like paymenter_create_order or paymenter_update_service, leaving the boundary implicit.

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?

There is no guidance on when to use this versus paymenter_create_order, paymenter_list_services, or paymenter_update_service, and no prerequisites such as needing a valid product_id/plan_id or an existing user are mentioned. The agent must infer usage entirely from the name and sentence.

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

paymenter_create_ticketC

Open a new customer support ticket.

NameRequiredDescriptionDefault
statusYesInitial status (default open)
subjectYesTicket subject line
user_idYesAuthor customer user ID
priorityYesTicket priority
departmentNoDepartment name (e.g. Billing, Technical)

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 behavioral burden. It says 'Open a new' (implying a write/mutation), but discloses nothing about required permissions, whether user_id must reference an existing customer, what happens on duplicate subject, or side effects such as notifications. For a mutation tool with zero structured behavioral coverage, this is a real 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?

A single front-loaded sentence with no wasted words. It is appropriately scoped, though its terseness is what leaves the behavioral gaps rather than a conciseness problem per se.

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?

With 5 parameters (4 required), no annotations, and no output schema, the description should do more than one sentence. It omits required-field expectations, the user_id linkage to an existing customer, and any return information, leaving an agent under-informed for a creation call.

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 five parameters including enum values and the 'default open' default. The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.

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?

States a specific verb ('Open') and resource ('customer support ticket'), clearly separating it from siblings like paymenter_get_ticket, paymenter_list_tickets, and paymenter_reply_ticket. It does not explicitly name those siblings, but the create-vs-read-vs-reply distinction is obvious from the verb.

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 gives no when-to-use guidance, no prerequisites (e.g. user must already exist), and no mention of alternatives. An agent must infer usage entirely from the tool name and surrounding sibling list.

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

paymenter_create_userC

Register and create a new customer account in Paymenter.

NameRequiredDescriptionDefault
emailYesUser email address
role_idNoRole ID (e.g. administrator role ID)
passwordYesAccount initial password
last_nameNoLast name
first_nameNoFirst name
email_verified_atNoISO 8601 timestamp for email verification

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 behavioral burden. It does not disclose required permissions/role, whether a verification email is sent (relevant given the email_verified_at field), what happens on duplicate email, or whether the created account is returned. 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?

A single short, front-loaded sentence with no filler or redundancy. It is appropriately sized, though its terseness is partly why behavioral and contextual gaps remain.

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?

For a 6-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits permission requirements, duplicate-email behavior, side effects like verification emails, and any sense of the return value, leaving the agent without the context needed to call it safely.

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 each of the 6 parameters is already documented in the schema, establishing a baseline of 3. The description adds no extra meaning about field semantics (e.g., what role_id controls or how email_verified_at is handled), so it does not exceed the baseline.

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 states a specific verb (register/create) and resource (new customer account) plus the system (Paymenter), which is clear enough to act on. It does not explicitly differentiate from siblings like paymenter_update_user or paymenter_delete_user, but the 'new customer account' phrasing implicitly signals creation rather than mutation of an existing user.

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?

There is no guidance on when to use this versus alternatives (e.g., update_user), no preconditions such as requiring unique email or admin privileges, and no exclusions. The agent must infer usage entirely from the tool name.

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

paymenter_delete_invoiceB

Permanently delete an invoice record.

NameRequiredDescriptionDefault
invoice_idYesInvoice ID to delete

TDQS

B3.4/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 behavioral burden. It does disclose the one trait that matters most for a delete tool, irreversibility ('Permanently'), but is silent on permission requirements, cascade effects on related records, and what happens if the invoice is not found.

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

Conciseness5/5

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

A single four-word sentence that front-loads the permanence qualifier and contains no filler. Nothing could be removed without losing meaning.

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 single-parameter destructive tool with a fully documented schema, the description covers the essential behavior (permanent removal). The remaining gap is the absence of annotations or text describing side effects, failure modes, and permission needs on a destructive operation.

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%, with 'invoice_id' documented as 'Invoice ID to delete', so the parameter is fully explained by structured data. The description adds nothing beyond that, which is the expected baseline when the schema does the heavy lifting.

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?

States a specific verb and resource (delete an invoice record) and adds the crucial qualifier 'Permanently', so the agent immediately knows the operation is destructive. It does not explicitly name or contrast with sibling delete tools (paymenter_delete_order, paymenter_delete_user), but the resource noun 'invoice' makes the scope unambiguous.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as paymenter_update_invoice or paymenter_cancel_service for cases where deletion is not appropriate. The word 'Permanently' hints that care is needed but offers no routing or caution instructions.

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

paymenter_delete_orderB

Permanently delete an order by ID.

NameRequiredDescriptionDefault
order_idYesOrder ID to delete

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden, and "Permanently" is a genuine disclosure that the operation is irreversible. However, it says nothing about required permissions, cascading effects on related invoices/services, or failure behavior for an invalid ID.

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?

One short, front-loaded sentence with zero filler; the destructive qualifier appears immediately.

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?

For a destructive, high-stakes operation with no annotations and no output schema, the description should say more about consequences, dependencies, or confirmation expectations. As written, an agent lacks enough context to use it safely.

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% for the single order_id parameter, so the schema already documents it; the description only restates "by ID." Baseline 3 is appropriate since the schema does the heavy lifting.

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 gives a specific verb and resource ("delete an order") plus the key qualifier "Permanently," which cleanly separates it from get_order, list_orders, and create_order. It does not, however, explicitly contrast itself with any sibling beyond the resource name.

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?

There is no guidance on when to delete versus other order life-cycle actions, no prerequisites, and no exclusions or warnings about when not to use it. The agent must infer all usage conditions.

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

paymenter_delete_userA

Permanently delete a user account from Paymenter (irreversible).

NameRequiredDescriptionDefault
user_idYesThe unique numeric ID of the user to delete

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses permanence and irreversibility, which is the single most important trait for a mutation tool, but says nothing about cascading effects on related resources (orders, services, tickets) or required permissions.

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?

One sentence, zero filler, with the irreversible warning front-loaded alongside the action. Nothing is padded or redundant.

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 single-parameter destructive tool with no output schema, the description covers the essentials: what is deleted and that it cannot be undone. It falls short only on downstream impact and authorization expectations, which are minor given the tool's simplicity.

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% with a single self-documented user_id parameter, so the baseline of 3 applies. The description adds no additional semantics such as accepted ID formats or whether cross-account IDs are valid.

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?

States a specific verb ('delete') and resource ('a user account') plus the source system, and the resource noun cleanly separates it from sibling delete tools like paymenter_delete_order and paymenter_delete_invoice. An agent can route to it without opening the schema.

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?

Usage is only implied: the tool is for removing a user permanently. It never says when to prefer this over alternatives (e.g., suspending or deactivating a user) or what prerequisite state the account must be in, and no sibling is named as the non-destructive option.

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

paymenter_get_dashboard_summaryB

Fetch key operational metrics and statistics: total users, active services, pending invoices, open tickets.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. It does disclose what the call returns (four aggregate metric families), which is genuinely useful given there is no output schema, but it says nothing about permissions/auth, data freshness, or whether metrics are scoped to the tenant or a time window.

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?

A single front-loaded sentence with the resource stated first and the returned metrics enumerated after. The pairing 'metrics and statistics' is mildly redundant, but otherwise there is no filler.

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-argument, read-only summary tool with no siblings covering the same aggregate, the description supplies the essential information: that it is a fetch and what four things come back. Coverage of scope (tenant-wide? time-bounded?) and freshness is missing, but that is a modest gap for this complexity level.

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 takes zero parameters, so per the rubric the baseline is 4; there is no parameter semantics to explain and the description does not introduce misleading parameter behavior.

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?

States a specific verb ('Fetch') and resource (dashboard metrics/statistics: total users, active services, pending invoices, open tickets), which clearly separates it from the per-entity list/get siblings. It never names an alternative sibling explicitly, but the aggregate-summary nature is unambiguous from the enumerated metrics.

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?

There is no when-to-use, when-not-to-use, or alternative-routing guidance at all; an agent gets no signal about preferring this over paymenter_list_users / paymenter_list_invoices / paymenter_get_user_overview for an overview. Usage is only inferable from the tool's obvious single purpose.

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

paymenter_get_invoiceB

Get invoice details and line items by invoice ID.

NameRequiredDescriptionDefault
includeNoRelations (user, items)
invoice_idYesInvoice ID

TDQS

B3.2/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 behavioral burden. It never states that this is a read-only operation, what happens when the ID does not exist, or that permissions/auth are required; it also fails to explain that the 'include' relation expansion affects what is returned.

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?

A single front-loaded sentence with no padding; the key lookup key is stated up front. It is efficient, though it could have used one or two more clauses for guidance without bloat.

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 simple two-parameter read tool with no output schema, what is present is workable, but with zero annotations the description should at least mark it as a non-mutating lookup and note the include-Relations behavior. It stops just short of complete.

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% with only two parameters, so the baseline is 3. The description restates 'by invoice ID' and implies line items, adding nothing about the 'include' relation syntax beyond the schema's own 'Relations (user, items)' note.

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?

States a specific verb and resource (get invoice) plus the payload (details and line items) and the lookup key (invoice ID). This clearly separates it from paymenter_list_invoices and the create/update/delete_invoice siblings, though it never names them.

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?

Usage is only implied: the 'by invoice ID' phrasing signals this is the single-record fetch versus paymenter_list_invoices, but there is no explicit when-to-use, when-not-to-use, or named alternative. Adequate minimum, nothing more.

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

paymenter_get_orderC

Get order details by order ID.

NameRequiredDescriptionDefault
includeNoRelations (services, user)
order_idYesOrder ID

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 implies a read-only retrieval via 'Get' but does not state permissions, side effects, or what 'details' includes; it also omits any rate-limit or auth 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?

A single front-loaded sentence with zero waste, appropriate for a simple retrieval tool.

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?

No output schema exists, so the description should explain return values, but it does not. With no annotations either, the definition omits read-only safety and the effect of the include parameter, leaving gaps for an agent.

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 both parameters (order_id and include) are already documented in the schema. The description only echoes the order_id purpose and adds no extra semantics beyond the schema baseline.

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?

States a specific verb and resource ('Get order details') and scopes it to 'by order ID'. It does not differentiate from sibling tools like paymenter_list_orders or paymenter_get_user, but the purpose is clear.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as paymenter_list_orders. The only implied condition is having an order ID, with no exclusions or prerequisites stated.

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

paymenter_get_serviceC

Get detailed service provision record by ID.

NameRequiredDescriptionDefault
includeNoRelations
service_idYesService ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden, but it only implies a read via 'Get' and says nothing about permissions, side effects, error cases, or whether relation data is included. That is a significant gap for a tool with zero 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?

One short, front-loaded sentence with no filler; the action and key qualifier are immediately visible. The phrasing 'service provision record' is slightly awkward, but it is otherwise efficiently 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?

There is no output schema and no annotations, so the description should explain what the returned record contains and how the include parameter affects it, yet it does not. It is minimally functional for selection but leaves the agent guessing about the response shape.

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 service_id and include are already documented in the schema, and the description adds only the phrase 'by ID'. This matches the baseline 3 when structured fields do the heavy lifting.

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?

States a specific verb ('Get') and resource ('service provision record') and scopes it to a single record by ID, which cleanly separates it from sibling list_services. It does not explicitly name list_services or other alternatives, so it falls just short 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 Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative guidance is provided; the only implied condition is that a service ID is already known. This mirrors a 2-level definition with no routing information for the agent.

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

paymenter_get_ticketA

Get ticket details and message thread by ticket ID.

NameRequiredDescriptionDefault
includeNoRelations (messages, user, assigned_to)
ticket_idYesTicket ID

TDQS

A3.8/5.0
Behavior3/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 returns ticket details and the message thread, and the verb 'Get' implies a read-only operation. However, it does not mention permissions, rate limits, or pagination behavior.

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, front-loaded sentence with no wasted words. Every element earns its place by specifying the verb, resource, and scoping parameter.

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 two-parameter retrieval tool with full schema coverage, the description adequately summarizes the return content ('ticket details and message thread'). Since no output schema exists, this high-level return description is sufficient, though it could mention the 'include' parameter's effect on returned relations.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both 'ticket_id' and 'include' (including its allowed relations). The description adds only the phrase 'by ticket ID', which does not expand on the schema's parameter details.

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 ('Get') and resource ('ticket details and message thread') scoped by ticket ID. It clearly distinguishes this retrieval operation from siblings like list_tickets, create_ticket, and reply_ticket.

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 phrase 'by ticket ID' implies the prerequisite of having a ticket ID, which gives some usage context. However, it does not say when to use this tool versus list_tickets or search_tickets, nor does it provide explicit exclusions.

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

paymenter_get_userC

Retrieve detailed profile information for a specific user by ID.

NameRequiredDescriptionDefault
includeNoRelations to sideload (e.g. orders, services, invoices, tickets, credits, role)
user_idYesThe unique numeric ID of the user

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 behavioral burden. It implies a read, but discloses nothing about error behavior for unknown IDs, required permissions, or the fact that extra relations (orders, services, invoices, tickets, credits, role) can be expanded. For a retrieval tool with zero annotation coverage, that is a real 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?

A single front-loaded sentence with no filler or redundancy. It is efficient, though it is arguably too terse to be maximally useful.

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 two-parameter read tool with no output schema, 'detailed profile information' is vague about what is actually returned, and the relation-sideloading capability is left entirely to the schema. It is minimally adequate rather than complete.

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%, including an example list for the 'include' parameter, so the schema already documents both parameters. The description adds only 'by ID', which merely restates the required parameter, so the baseline 3 applies.

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?

States a specific verb ('Retrieve') and resource ('profile information for a specific user by ID'), which distinguishes it from the list/create/update/delete siblings on the same resource. However, it does nothing to separate itself from paymenter_get_user_overview, whose scope overlaps ambiguously with 'detailed profile information'.

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?

There is no guidance on when to use this versus paymenter_list_users (bulk) or paymenter_get_user_overview (apparently also a per-user summary). The inclusion of an 'include' parameter for sideloading relations is the key routing decision, yet the description never mentions it.

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

paymenter_get_user_overviewA

Fetch consolidated user overview including active services, open tickets, recent invoices, and credit balance.

NameRequiredDescriptionDefault
user_idYesThe unique numeric ID of the user

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, and the description carries the behavioral load. It does disclose the data categories returned, implying a read-only aggregate, but says nothing about permissions, pagination/limits on the embedded lists, or whether incomplete data is possible for a user with no activity.

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?

One sentence, front-loaded with the verb and resource, and the enumeration of contents earns its place by defining what 'overview' means. No filler.

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?

With no output schema, the description usefully enumerates the returned sections, which is exactly the missing information an agent needs. The only remaining gap is the depth/limits of each embedded collection.

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?

A single parameter with 100% schema description coverage, so the schema already documents user_id fully. The description adds no format hints (e.g., that numeric IDs are typical) or error behavior for unknown users, hitting the baseline rather than exceeding 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?

States a specific verb ('Fetch') and a specific composite resource ('consolidated user overview'), then enumerates the constituent parts (services, tickets, invoices, credit). This makes it distinguishable from paymenter_get_user, which presumably returns a single user record, though the distinction is inferred rather than stated.

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?

Usage is implied by 'consolidated overview' - an agent can infer this is a good first-look/summary call - but there is no explicit guidance on when to prefer it over paymenter_get_user, paymenter_list_services, or paymenter_list_invoices, which cover overlapping data.

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

paymenter_health_checkA

Check connectivity to Paymenter API and verify administrative API token authentication.

NameRequiredDescriptionDefault
check_connectivityNoPerform actual HTTP ping request to test network and token validity

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It usefully discloses that a real HTTP ping is made (via the parameter text) and that admin-token auth is exercised, but it omits whether the call is read-only/safe, whether it consumes rate limits, what happens on failure, and whether it requires credentials to be pre-configured.

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 with zero filler; the two capabilities are ordered by the sequence an agent would actually perform them (connectivity, then auth).

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 one-parameter diagnostic with no annotations this is nearly sufficient, but with no output schema the description should say what a result looks like (e.g., success/failure flags for connectivity vs. token validity) so the agent knows how to interpret the response. Everything else needed to invoke it is 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 description coverage is 100% and the single optional boolean is fully documented in the schema itself, including that it triggers an actual HTTP ping. The description adds no format, default, or cost semantics beyond that, so the baseline 3 applies.

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?

States two specific actions with a clear resource: checking connectivity to the Paymenter API and verifying administrative token authentication. This is unmistakably distinct from every sibling tool, which are all data/mutation operations (list_users, create_order, suspend_service, etc.), so an agent can route to it without opening the schema.

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 diagnostic nature implies usage (troubleshooting connectivity/auth before or after other calls), but the description never states when to reach for it, what failure conditions it is meant to diagnose, or any alternative. Usage is inferable rather than stated, which is the definition of a 3.

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

paymenter_list_categoriesC

List product categories in Paymenter.

NameRequiredDescriptionDefault
nameNoFilter by category name
pageNoPage number
slugNoFilter by slug
sortNoSort field
includeNoRelations (products, parent, children)
per_pageNoItems per page
parent_idNoFilter by parent category ID

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 behavioral burden and discloses nothing: not that it is a read-only operation, not pagination behavior, not filtering semantics, not return shape. It is a bare list statement with no traits beyond the name.

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?

A single short sentence with the resource front-loaded and zero wasted words. It is efficient but so terse that there is nothing to structure.

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?

This is a low-complexity read tool with fully documented parameters, so the description is minimally adequate. However, with no annotations and no output schema, it omits any statement of read-only safety or pagination/filter behavior that an agent would benefit from.

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 all seven parameters (name, slug, page, per_page, sort, include, parent_id) are already documented in the schema. The description adds nothing beyond that, so the baseline 3 applies.

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?

States a specific verb and resource ('List product categories'), which is unambiguous on its own. It does not distinguish itself from adjacent listing siblings such as paymenter_list_products, so it falls short of a 5.

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?

There is no guidance on when to use this tool versus alternatives like paymenter_list_products, nor any prerequisite or exclusion. Usage is only implied by the verb 'List'.

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

paymenter_list_invoicesC

List invoices with status, user filtering, and pagination.

NameRequiredDescriptionDefault
pageNoPage number
sortNoSort field
statusNoFilter by status
includeNoRelations (user, items)
user_idNoFilter by user ID
per_pageNoItems per page
currency_codeNoFilter by currency

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 only confirms that results are paginated and filterable, saying nothing about authentication/permission requirements, default page size, result ordering, or the cost of larger pages.

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?

A single front-loaded sentence with no filler, naming the core capabilities first. It is efficiently sized, though arguably too terse to be fully useful.

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 7-parameter, zero-required list tool with no annotations and no output schema, the description is adequate but thin. It omits sort/include/currency semantics and gives no indication of what a returned invoice record contains.

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 7 parameters. The description only restates status, user, and pagination, omitting sort, include, and currency_code without adding syntax or format details beyond the schema.

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 states a specific verb (list) and resource (invoices) and names the filterable dimensions. It is clearly distinguishable from paymenter_get_invoice or paymenter_create_invoice, though it does not explicitly name those siblings.

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?

There is no guidance on when to use this tool versus alternatives such as paymenter_search or paymenter_get_invoice, nor any stated prerequisites or exclusions. The agent must infer usage entirely from the name and schema.

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

paymenter_list_ordersB

List customer orders with pagination, sorting, and relations.

NameRequiredDescriptionDefault
pageNoPage number
sortNoSort field
includeNoRelations (services, user)
per_pageNoItems per page
currency_codeNoFilter by currency code (e.g. USD)

TDQS

B3.2/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 behavioral burden. 'List' implies a read operation, but the description does not disclose authentication requirements, rate limits, default sorting/pagination behavior, or what data is returned, leaving 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 a single front-loaded sentence with no wasted words. It efficiently states the operation and its notable capabilities.

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 list tool with a fully documented schema, the description is largely sufficient to invoke it correctly. It omits mention of the currency filter and does not describe return values, but the core operation and major capabilities are clear.

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 all five parameters are already documented in the schema. The description adds only a high-level mention of pagination, sorting, and relations, without adding syntax or format details beyond the schema's own descriptions.

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

Purpose4/5

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

The description states a specific verb and resource: 'List customer orders'. It clearly implies a multi-record retrieval operation, distinguishing it from get_order and create/delete siblings, but it does not explicitly name or contrast with those alternatives.

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 gives no guidance on when to use this tool versus alternatives such as paymenter_get_order or paymenter_search. It only lists capabilities (pagination, sorting, relations), leaving the agent to infer appropriate usage.

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

paymenter_list_productsC

List available products/plans in the catalog.

NameRequiredDescriptionDefault
nameNoFilter by product name
pageNoPage number
slugNoFilter by slug
sortNoSort field
hiddenNoFilter hidden products
includeNoRelations (category, plans)
per_pageNoItems per page
category_idNoFilter by category ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden, yet it says almost nothing. The word 'available' even risks misleading, since the schema exposes a 'hidden' filter implying non-available products are listable, and nothing is said about pagination behavior or what the listing contains.

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?

A single front-loaded sentence with no filler or redundancy. It is economical but arguably under-sized for an eight-parameter list tool.

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?

For an eight-parameter listing endpoint with no annotations and no output schema, the description is far too thin: no pagination semantics, no return-shape hint, no note on the hidden/available distinction. The schema covers parameter meaning, but everything else an agent needs is absent.

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 all eight filters are already documented in the schema, making 3 the baseline. The description adds nothing about how filters combine, what 'include' relations return, or how sorting/paging interact.

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?

States a specific verb and resource ('List available products/plans') and scopes it to 'the catalog', which implicitly separates it from siblings like paymenter_list_services or paymenter_list_categories. However it makes no explicit contrast with any sibling, so an agent must infer the boundary.

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 gives no when-to-use guidance, no prerequisites, and never names an alternative tool. An agent gets no signal about when this is preferable to paymenter_search or paymenter_list_services.

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

paymenter_list_servicesC

List provisioned hosting/digital services.

NameRequiredDescriptionDefault
pageNoPage number
sortNoSort field
statusNoFilter by status
includeNoRelations (coupon, user, order, product, invoices, properties)
user_idNoFilter by user ID
per_pageNoItems per page
product_idNoFilter by product ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and discloses almost nothing. It does not state that this is a read-only operation, nor does it describe pagination defaults (page/per_page), sort behavior, or what happens with no filters applied.

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?

A single, front-loaded sentence with no filler or redundancy. It is efficient, though its brevity verges on under-specification rather than tightness.

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?

A 7-parameter listing tool with no annotations and no output schema needs the description to cover pagination behavior, default filtering, and return shape. One bare sentence leaves an agent guessing about how results are paged and filtered.

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 all seven parameters are already documented in the schema, and the description adds no syntax, defaults, or format details beyond 'provisioned'. The baseline of 3 applies when the schema does the heavy lifting.

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?

States a clear verb+resource ('List ... services') and adds scope via 'provisioned hosting/digital services', which separates it from paymenter_list_products and paymenter_list_orders. It does not, however, contrast itself with the single-item sibling paymenter_get_service or explain what 'services' means relative to orders.

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?

No when-to-use guidance, no prerequisites, and no named alternative. An agent must infer that this is the bulk-retrieval path versus paymenter_get_service for a single record, and that paymenter_search may be preferable for keyword lookups.

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

paymenter_list_ticketsB

List customer support tickets with filters.

NameRequiredDescriptionDefault
pageNoPage number
sortNoSort field
statusNoFilter by status
includeNoRelations (messages, user, assigned_to)
user_idNoFilter by user ID
per_pageNoItems per page
priorityNoFilter by priority
departmentNoFilter by department

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 must carry the full behavioral burden. It does not disclose pagination behavior, default sorting, whether include relations affect performance, or what the response contains beyond the filters.

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 front-loaded sentence with no filler. It is appropriately concise, though slightly vague because 'with filters' is not expanded.

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?

For an eight-parameter listing tool with no annotations and no output schema, the description is too thin. It omits usage context, pagination guidance, and return-shape expectations that an agent would need to invoke it confidently.

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 baseline is 3 even though the description adds no parameter-specific detail. The schema already documents each filter, enum, and pagination field, and the description only repeats that filters exist.

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 states a specific verb and resource: 'List customer support tickets.' It also mentions filtering, which clarifies scope. However, it does not distinguish this tool from sibling alternatives such as paymenter_get_ticket or paymenter_search.

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 phrase 'with filters' implies that this tool is for retrieving multiple tickets by criteria, but it gives no explicit guidance on when to use it instead of paymenter_get_ticket or paymenter_search. It also provides no exclusions or prerequisites.

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

paymenter_list_usersB

List customer accounts with pagination, sorting, and filtering.

NameRequiredDescriptionDefault
pageNoPage number (default 1)
sortNoSort field (e.g. id, -id, email, -created_at)
emailNoFilter by email
includeNoRelations to sideload (e.g. orders, services, invoices, credits, role)
per_pageNoItems per page (default 15, max 100)
last_nameNoFilter by last name
first_nameNoFilter by first name

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. 'List' implies a read-only, non-destructive operation and it discloses that pagination/sorting/filtering are supported, but it omits any statement about permissions, rate limits, pagination defaults, or return shape.

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?

A single front-loaded sentence with zero filler. It is efficient, though arguably too terse to carry much informational 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?

All parameters are covered by the schema and no output schema exists, so the essentials are present. However, with no annotations and no output description, an agent gets no safety profile or sense of what a listed account record contains.

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 all seven parameters are already fully documented in the schema. The description only categorizes them (pagination, sorting, filtering) without adding format or syntax detail, which is the correct baseline of 3.

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?

States a specific verb (List) and resource (customer accounts) plus its capabilities (pagination, sorting, filtering). It is clearly distinguishable from the singular paymenter_get_user, though it never names siblings explicitly.

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?

There is no guidance on when to use this versus paymenter_get_user, paymenter_search, or paymenter_get_user_overview. The need to browse a collection is only implied by the verb 'List'.

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

paymenter_manage_affiliateC

Manage affiliate partner accounts: list, get, create, update, or delete.

NameRequiredDescriptionDefault
codeNoUnique affiliate promo code
actionYesOperation to perform
rewardNoCommission reward rate or fixed amount
enabledNoWhether affiliate program is enabled
user_idNoUser ID (required for create)
affiliate_idNoAffiliate ID (required for get, update, delete)

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 behavioral burden. It hints at mutations by listing create/update/delete but never discloses permissions required, reversibility, side effects, or what delete actually removes. This is a substantial gap for a CRUD tool with zero 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?

A single tight sentence with the resource front-loaded and the operation set appended. No wasted words, though the generic 'manage' verb and redundancy with the enum keep it from being a model of structure.

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?

For a six-parameter multi-action CRUD tool with no annotations and no output schema, the description is thin. It does not explain per-action return values or behavioral differences between list/get and create/update/delete, leaving the agent underequipped to call it 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?

Schema description coverage is 100%, so parameters are fully documented in the schema (code, reward, enabled, user_id, affiliate_id, action). The description adds no meaning beyond what the schema already provides, so the baseline 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?

States a clear verb+resource ('Manage affiliate partner accounts') and enumerates the five operations. It is readily distinguishable from siblings because it is the only affiliate-oriented tool. However, the operation list merely echoes the action enum, so it is clear without being distinctive.

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 gives no when-to-use context, no prerequisites, and no guidance on selecting among the five actions or preferring this over other tools. It only restates the available operations, leaving the agent to infer usage entirely from the schema.

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

paymenter_manage_creditC

Manage user prepaid credits wallet: list, get, deposit, update, or delete balances.

NameRequiredDescriptionDefault
actionYesOperation to perform
amountNoCredit amount to add or set
user_idNoUser ID (required for deposit, filter for list)
credit_idNoCredit record ID (required for get, update, delete)
currency_codeNo3-letter currency code (e.g. USD)

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 does not disclose that 'deposit' adds to a balance while 'update' sets it, that 'delete' is destructive/possibly irreversible, or what permissions or side effects apply to each action. For a multi-action tool mixing reads and writes, this is a substantial 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?

A single front-loaded sentence with no filler; the resource is named first and the operations follow. It is efficient, though the trailing action list duplicates what the schema enum already provides.

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?

This is a 5-parameter, 5-action polymorphic tool with no annotations and no output schema, yet the description says nothing about per-action behavior, required parameter combinations, or what each call returns (e.g., a balance vs a credit record). Too much is left for the agent to infer.

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 each parameter, including the conditional usage of user_id and credit_id. The description adds no meaning beyond mirroring the action enum, so the baseline of 3 applies.

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?

States a clear resource ('user prepaid credits wallet') and enumerates the five supported operations, so an agent knows this is the polymorphic credit-management entry point. It is distinguishable from invoice, order, and user siblings by the credit-wallet framing, though 'manage' is a generic verb and the action list largely restates the enum.

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?

No guidance on when to pick this tool over siblings, and no routing guidance between the five actions (e.g., when to use 'update' vs 'deposit', or that 'get' precedes 'update'/'delete'). The operation names imply usage but nothing is stated explicitly.

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

paymenter_renew_serviceC

Renew a service by extending its expiration date.

NameRequiredDescriptionDefault
service_idYesService ID
new_expires_atYesExtended ISO 8601 expiration timestamp

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 behavioral burden. It discloses only that the expiration date is extended, saying nothing about required permissions, whether renewal is immediate or billed, what happens if new_expires_at precedes the current expiration, or whether the change is reversible.

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?

A single front-loaded sentence with no filler, stating the action and its effect. It is efficient, though its brevity is partly under-specification rather than disciplined conciseness.

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?

For a mutation tool with no annotations and no output schema, the description is too thin: it omits prerequisites, permission needs, and side effects, and does not differentiate itself from the nearby update_service tool that could plausibly alter expiration as well.

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 service_id and new_expires_at (including its ISO 8601 format). The description adds no format, constraint, or validation detail beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb (renew) and resource (service) plus the mechanism (extending its expiration date), which distinguishes it from update_service, suspend_service, and cancel_service. It is clear but never names a sibling or explicitly contrasts with them.

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?

There is no guidance on when to renew versus using paymenter_update_service to set an expiration, nor any prerequisites such as required payment or permission. The agent must infer the intended usage context entirely.

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

paymenter_reply_ticketB

Post a reply message to an existing support ticket thread.

NameRequiredDescriptionDefault
messageYesResponse message body
user_idYesSender user ID (admin or customer)
ticket_idYesTarget ticket ID

TDQS

B3.2/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 behavioral burden. It discloses only that this is an append-style mutation; it says nothing about whether the reply triggers customer notifications, requires an open ticket status, needs admin vs customer privileges (despite user_id being described as either), or whether the write is reversible.

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?

A single, front-loaded sentence that names the action and target with no filler. It is appropriately sized for a three-parameter mutation, though it is arguably under-specified rather than maximally efficient.

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 simple three-parameter write with 100% schema coverage and no output schema, the description is minimally sufficient. It omits behavioral context (notifications, permissions, ticket state requirements) and does not explain what the call returns, which matters more given the absence of annotations.

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 all three parameters (ticket_id, user_id, message) are already documented in the schema, including that the sender may be an admin or customer. The description adds no meaning beyond that, so the baseline of 3 applies.

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?

States a specific verb (post a reply) and resource (existing support ticket thread), which clearly separates it from paymenter_create_ticket and paymenter_get_ticket. It doesn't explicitly name those siblings or define the boundary, but the action is 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?

"existing support ticket thread" implies the ticket must already exist and that this is for adding to a conversation rather than opening a new one, which is implicit routing guidance. However, there is no explicit when-to-use statement, no mention of prerequisites (valid ticket_id, permissions), and no naming of alternatives like paymenter_create_ticket.

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

paymenter_suspend_serviceA

Suspend an active service (e.g. for overdue invoice or abuse).

NameRequiredDescriptionDefault
reasonNoReason for suspension
service_idYesService ID

TDQS

A3.5/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 behavioral burden. It never states that suspension is reversible (only inferable from the unsuspend sibling), what happens to the running service, whether permissions are required, or what the response contains.

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 tight sentence that front-loads the action and folds the rationale into a parenthetical. No waste, nothing padded.

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?

Adequate minimum: parameters are covered by the schema and the purpose is clear, but for a mutation tool with no annotations and no output schema the description omits effect/reversibility/permission context an agent would want.

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?

Both parameters are fully documented in the schema (100% coverage), so the baseline is 3. The description adds no meaning about the 'reason' field or accepted service_id formats beyond what the schema already says.

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?

Specific verb + resource ('Suspend an active service'), and the qualifier 'active' narrows the target state. It does not explicitly contrast with siblings like paymenter_cancel_service or paymenter_unsuspend_service, but the purpose is unambiguous.

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?

Names concrete triggering scenarios (overdue invoice, abuse), giving an agent clear context for when this tool applies. It stops short of stating when NOT to use it or pointing to cancel_service for permanent termination.

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

paymenter_unsuspend_serviceB

Reactivate a suspended service to active status.

NameRequiredDescriptionDefault
service_idYesService ID

TDQS

B3.2/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 behavioral burden. It discloses only the state transition (suspended β†’ active); it says nothing about required permissions, whether the change is reversible, whether unsuspension triggers re-provisioning/auto-billing, or how failures are reported 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?

One front-loaded sentence with no filler, and the state change is stated immediately. It is efficient but so terse that it omits any qualifying detail, keeping it just below the top score.

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 simple one-parameter mutation with no output schema, the description covers the core action adequately. The gaps are the missing precondition (service must already be suspended), side effects, and error behavior, none of which are covered by annotations or schema.

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?

There is a single parameter with 100% schema description coverage, so the schema already documents service_id. The description adds no format, accepted-value, or lookup guidance beyond that, making the baseline 3 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 states a specific verb ('Reactivate') and resource ('a suspended service') plus the resulting state ('to active status'), so the purpose is unambiguous. It never names the sibling paymenter_suspend_service or distinguishes itself from cancel_service/renew_service explicitly, which keeps it out of 5 territory.

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?

'Suspended service' implies the precondition for use, so an agent can infer this applies to already-suspended services. However, there is no explicit when-to-use guidance, no stated alternative (e.g., renew_service for expired services, cancel_service to terminate instead), and no note on what happens if the service is not currently suspended.

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

paymenter_update_invoiceC

Update invoice status or due date.

NameRequiredDescriptionDefault
due_atNoNew due date
statusNoNew status
user_idNoUpdated user ID
invoice_idYesInvoice ID
currency_codeNoUpdated currency

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 behavioral burden. 'Update' implies a mutation, but the description does not disclose side effects of status changes (for example, whether setting 'paid' triggers payment processing or credit changes), permission requirements, reversibility, or validation behavior. It adds only minimal context beyond the name.

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, front-loaded sentence with no wasted words. It is appropriately concise for a simple mutation tool. It stops short of 5 only because the extreme brevity leaves important scope and behavior unstated, though that is more a completeness issue than a structure issue.

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?

This is a mutation tool with no annotations, no output schema, and five parameters, of which only one is required. The description does not explain side effects, permissions, required invoice_id context, or the enum implications of setting status to 'paid' or 'cancelled'. Although parameter descriptions cover the schema, the behavioral context needed to call this tool safely is largely missing.

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 five parameters, including the status enum. The description merely repeats two of the five fields ('status' and 'due date') without adding format, default, or interaction details. Baseline 3 is appropriate when the schema does the heavy lifting.

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 states a specific verb ('Update') and resource ('invoice'), and narrows scope to status or due date. It is clear enough to distinguish from get_invoice, list_invoices, create_invoice, and delete_invoice. It is not a 5 because the stated scope omits other editable fields present in the schema (user_id, currency_code), which can mislead about what the tool can update.

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 gives no guidance on when to use this tool versus alternatives such as get_invoice or list_invoices, nor does it mention prerequisites like needing an existing invoice. There are no explicit when-to-use or when-not-to-use statements. This matches the calibration level of narrow, unguided mutation descriptions.

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

paymenter_update_serviceB

Update properties or metadata of a service.

NameRequiredDescriptionDefault
priceNoUpdated price
statusNoNew status
quantityNoUpdated quantity
expires_atNoNew expiration timestamp
service_idYesService ID
currency_codeNoUpdated currency code

TDQS

B3/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 implies a mutation but does not disclose permission requirements, whether partial updates are supported, whether status changes are reversible, or how this interacts with dedicated suspend/cancel/renew tools.

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?

A single, front-loaded sentence with no wasted words. It is appropriately concise, though its terseness contributes to missing guidance rather than being a structural flaw.

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?

For a mutation tool with no annotations and no output schema, the description is too thin. It should explain partial-update behavior, status transition implications, and when to prefer dedicated service lifecycle tools over this generic updater.

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 100% and each of the six parameters has a description, including an enum for status. The description itself adds no parameter meaning beyond the schema, but with full schema coverage the baseline is a 3; the explicit mention of 'properties or metadata' gives slight high-level context for what the parameters collectively change.

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?

States a specific verb (Update) and resource (a service), and clarifies it covers properties or metadata. However, it does not differentiate this general update from sibling tools like paymenter_suspend_service, paymenter_cancel_service, or paymenter_renew_service, which also modify service state.

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 gives no guidance on when to use this tool versus the more specific sibling mutation tools. With a 'status' parameter that can set suspended/cancelled, an agent could easily choose this generic updater instead of paymenter_suspend_service or paymenter_cancel_service.

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

paymenter_update_userC

Update profile or credentials of an existing user.

NameRequiredDescriptionDefault
emailNoUpdated email address
role_idNoUpdated role ID
user_idYesThe unique numeric ID of the user
passwordNoUpdated password
last_nameNoUpdated last name
first_nameNoUpdated first name
email_verified_atNoUpdated verification timestamp

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 behavioral burden. It never says whether this is a partial or full-replace update (critical with 6 optional fields), whether omitted fields are cleared or preserved, whether changing email invalidates email_verified_at, or what permissions are required. 'Update' alone leaves these mutation semantics undisclosed.

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?

A single front-loaded sentence with no filler. It is efficient, though the terseness is part of why behavioral and usage context are missing rather than a virtue in itself.

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?

For a 7-parameter mutation tool with no annotations and no output schema, the description should at minimum cover partial-update semantics and the effect of credential changes. None of that is present, so an agent must guess at the most consequential behavior.

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 every parameter is already documented in the schema and the baseline is 3. The description's 'profile or credentials' grouping adds only marginal framing beyond what the per-field descriptions already say.

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?

States a specific verb (update) and resource (user), and the phrase 'existing user' plus 'profile or credentials' maps to the sibling set (create_user, delete_user, get_user) without ambiguity. It doesn't explicitly name a sibling to redirect from, so it falls just short of a 5.

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?

No guidance on when to use this rather than paymenter_create_user or paymenter_get_user, and no prerequisites stated (e.g., does the user have to exist / must you fetch first?). For a mutation tool among 33 siblings, at least one routing or precondition sentence is expected.

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. 35 tool updatesv1.0.0
    • First observedpaymenter_cancel_service
    • First observedpaymenter_create_invoice
    • First observedpaymenter_create_invoice_item
    • First observedpaymenter_create_order
    • First observedpaymenter_create_service
    • First observedpaymenter_create_ticket
    • First observedpaymenter_create_user
    • First observedpaymenter_delete_invoice
    • First observedpaymenter_delete_order
    • First observedpaymenter_delete_user
    • First observedpaymenter_get_dashboard_summary
    • First observedpaymenter_get_invoice
    • First observedpaymenter_get_order
    • First observedpaymenter_get_service
    • First observedpaymenter_get_ticket
    • First observedpaymenter_get_user
    • First observedpaymenter_get_user_overview
    • First observedpaymenter_health_check
    • First observedpaymenter_list_categories
    • First observedpaymenter_list_invoices
    • First observedpaymenter_list_orders
    • First observedpaymenter_list_products
    • First observedpaymenter_list_services
    • First observedpaymenter_list_tickets
    • First observedpaymenter_list_users
    • First observedpaymenter_manage_affiliate
    • First observedpaymenter_manage_credit
    • First observedpaymenter_renew_service
    • First observedpaymenter_reply_ticket
    • First observedpaymenter_search
    • First observedpaymenter_suspend_service
    • First observedpaymenter_unsuspend_service
    • First observedpaymenter_update_invoice
    • First observedpaymenter_update_service
    • First observedpaymenter_update_user

TDQS

B3.1/5.0

Scored across 35 tools

Disambiguation5/5

Each tool targets a distinct resource and action; search vs. list tools are differentiated by query-based vs. filtered listing, and get_user vs. get_user_overview are clearly separate. No major overlaps or ambiguous pairs.

Naming Consistency4/5

All tools use the paymenter_ prefix and snake_case, mostly following a verb_noun pattern. Minor deviations: health_check is noun-based, and manage_credit/manage_affiliate bundle multiple actions unlike the per-action tools.

Tool Count2/5

With 35 tools, this exceeds the 25+ threshold for 'too many' under the rubric. While the billing domain is broad, many operations could be consolidated, especially since multi-action tools like manage_credit already exist elsewhere.

Completeness3/5

Core user, service, invoice, and affiliate/credit lifecycles are well covered. However, notable gaps exist: no ticket close/status update, no order update, and products/categories are read-only, which can block common admin workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Coolify infrastructure including servers, applications, databases, deployments, and 80+ one-click services through 98 comprehensive tools for both cloud and self-hosted instances.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to manage Plesk hosting environments through a set of standardized tools for security, health monitoring, DNS, email, backups, and service management.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Cloudways infrastructure, including servers, applications, monitoring, and security via the Cloudways API.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to administrate WHMCS installations through the External API, providing ~50 tools for clients, billing, orders, services, domains, support, and aggregators with safety features and governance.
    25 npm
    3
    ISC