Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools have distinct resource-action pairs, but a few could be confused, such as verify_transaction vs fetch_transaction (reference vs ID) and charge_authorization vs partial_debit (full vs partial charge). Descriptions help clarify these differences, making the boundaries mostly clear.

    Naming Consistency4/5

    The vast majority of tools follow a consistent verb_noun pattern (e.g., list_products, create_customer, initialize_transaction). However, a few tools like balance_ledger and transaction_totals use noun compounds instead of verb-first names, which is a minor deviation from an otherwise consistent style.

    Tool Count2/5

    With 28 tools, this server is above the typical well-scoped range (3-15) and exceeds the 25-tool threshold for being considered too heavy. While the broad Paystack domain justifies many operations, the count feels excessive for a single MCP server and may overwhelm agents.

    Completeness3/5

    The tool set covers core workflows for products, customers, transactions, balances, and OTP settings. However, notable gaps exist: there is no delete operation for products or customers, no refund tool for transactions, and transfer OTP management tools without corresponding transfer initiation/list tools. These gaps could force agents to work around missing functionality.

  • Average 3.1/5 across 28 of 28 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • 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 disclosing behavior, but it only states the action. It does not say whether this is a read-only external validation, whether it writes or updates a customer record, what data is returned, or whether there are side effects or failure modes.

    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 contains no filler, but it is too sparse for a tool with 9 parameters and no other structured context. It is concise rather than appropriately sized, sacrificing essential explanatory content.

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

    Completeness2/5

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

    Given the absence of annotations and output schema, the description must fully contextualize the operation, but it does not explain return values, validation rules, or how to interact with the bank account details. It is not complete enough for an agent to reliably invoke the tool.

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

    Parameters2/5

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

    Schema description coverage is only 44%, leaving many parameters (code, country, account_number, bvn, bank_code) undocumented. The tool description adds only 'with bank account' as a hint, which does not clarify the meaning of 'code', the relationship between BVN and bank account, or why all these fields are required together.

    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 ('Validate') and identifies the resource ('a customer's identity') and the means ('with bank account'). This makes the core purpose clear and distinguishes it from sibling customer management tools like create_customer or get_customer, though it does not fully explain what 'validate' entails.

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

    Usage Guidelines2/5

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

    The description provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. While the purpose implies use for identity validation, there is no mention of when a customer code is needed or how this relates to the other customer tools listed.

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

  • Behavior1/5

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

    With no annotations, the description carries full responsibility for disclosing behavioral traits. It only states the action but does not mention side effects, reversibility, required permissions, or whether it requires confirmation. For a security-sensitive mutation like disabling OTP, this is a major gap.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no fluff. Every word contributes to the meaning, making it appropriately concise and easy to parse.

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

    Completeness2/5

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

    Given the simplicity of the tool (no params, no output schema), the description is minimal but omits crucial context. It does not explain the relationship with sibling tools like 'finalize_disable_otp' or 'enable_transfers_otp', nor does it cover prerequisites or consequences of disabling OTP. This makes it incomplete for informed use.

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

    Parameters4/5

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

    The tool has zero parameters, so the schema provides no information. The description adds no parameter details, but since none exist, the baseline of 4 applies. No additional semantic explanation is needed.

    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 'Disable OTP requirement for transfers' uses a clear verb and resource, stating exactly what the tool does. However, it does not distinguish itself from the sibling tool 'finalize_disable_otp', which likely relates to completing the disable process. This ambiguity prevents a perfect score.

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

    Usage Guidelines1/5

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

    No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, sequencing (e.g., whether this is the first step before 'finalize_disable_otp'), or scenarios where this tool is appropriate. Users are left without context.

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

  • 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 states the basic purpose and does not mention side effects, permissions, idempotency, or the fact that customers start with a default risk action (which appears only in the schema description). This leaves significant transparency gaps.

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

    Conciseness4/5

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

    The description is a single, concise sentence with no redundant words. It is front-loaded and efficient, though it sacrifices substance for brevity. Still, it is appropriately sized for such a simple 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?

    The tool is simple, but the description is too minimal given no annotations or output schema. It does not explain return values, how to reset to default, or how this action affects transaction processing. It also does not differentiate from sibling tools, leaving the context incomplete.

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

    Parameters2/5

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

    Schema description coverage is 50% (risk_action has a clear enum explanation, customer has none). The description adds no new meaning beyond what the schema already provides for risk_action, and it does not clarify the customer parameter. It fails to compensate for the undocumented customer field.

    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 'Whitelist or blacklist a customer' clearly states the action (whitelist/blacklist) on the resource (customer), which aligns with the tool name and distinguishes it from other customer operations like create or update. It is specific and not a tautology, though it could be more explicit about setting a risk action.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like update_customer or validate_customer. There is no mention of use cases, prerequisites, or exclusions, leaving the agent to infer context from the name and siblings.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavior. It states 'Fetch all' but does not mention pagination (perPage, page parameters) or any limits, implying the agent might expect all records in one call. There is also no mention of authentication, rate limits, or response format.

    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?

    Single sentence, direct action, no redundant words. It gets straight to the point and is highly efficient.

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

    Completeness2/5

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

    The tool has 4 parameters, no output schema, and no annotations. The description is minimal and does not explain response structure, pagination behavior, or use-case context. Given the tool's complexity, the description is under-specified.

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

    Parameters3/5

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

    The input schema provides descriptions for all 4 parameters with 100% coverage, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already states, so it stays at 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 uses the verb 'Fetch' and specifies the resource as 'pay-ins and pay-outs on your Paystack integration', clearly identifying the action and data type. However, it does not explicitly name the 'balance ledger' resource or differentiate from sibling tools like list_transactions or check_balance, so it is not fully distinct.

    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 mention of when to use this tool versus alternatives. No context about use cases, prerequisites, or alternative tool suggestions is provided. The agent is left to infer usage solely from the name and description.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It only restates the creation action, omitting any details about side effects, authentication requirements, idempotency, or response behavior, which is insufficient for a mutation tool.

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

    Conciseness5/5

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

    The description is a single sentence that is immediately clear and without extraneous words. It is appropriately sized for a straightforward creation tool, though it could be longer to cover behavior.

    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?

    Despite the rich schema, the description is too sparse for a tool with 6 parameters and no output schema. It does not mention what the response contains, whether the product is active immediately, or any constraints like uniqueness. This leaves significant gaps for the 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?

    The input schema has 100% coverage, with each parameter having a description (e.g., price is in subunit, quantity required if unlimited is false). The description adds no additional parameter information, 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?

    The description clearly states the action ('Create') and the resource ('a new product on your Paystack integration'), distinguishing it from sibling tools like list_products or update_product. It could be more specific about what a 'product' entails, but it 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 Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, such as create_customer or update_product. The intended usage is implied by the verb, but there is no explicit context, prerequisites, or exclusions.

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

  • Behavior2/5

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

    With no annotations available, the description must carry the full behavioral disclosure burden. It only states the action without explaining what 'export' entails (e.g., file format, response structure, pagination behavior, or read-only nature). Significant behavioral details are missing.

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

    Conciseness4/5

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

    The description is a single, concise sentence that is easy to parse. It is not bloated, but it is perhaps too terse to fully convey the tool's purpose. Still, it earns points for efficiency and clarity.

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

    Completeness2/5

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

    Given the tool's complexity (11 parameters, no output schema, no annotations), the description is severely incomplete. It fails to explain the export format, whether it's synchronous, how to interpret the response, or any constraints. This is inadequate for an agent to use the tool correctly without external information.

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

    Parameters3/5

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

    The input schema provides 100% description coverage for all 11 parameters, so the description doesn't need to add parameter details. Its silence on parameters is acceptable, and the baseline of 3 applies 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 uses a specific verb 'export' with a clear resource ('transactions') and scope ('on your integration'), making the primary purpose evident. However, it doesn't explicitly differentiate from sibling tools like list_transactions or fetch_transaction, so it misses the top score.

    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 is provided about when to use this tool versus alternatives like list_transactions. There is no mention of use cases, prerequisites, or exclusions, leaving the agent to infer the appropriate context.

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

  • 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 disclosure burden. It only states the action and purpose, but does not disclose side effects (e.g., creating a transaction record), authentication requirements, idempotency, or the need to redirect to an authorization URL after initialization.

    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 one concise sentence, front-loaded with the verb, and contains no redundant or filler content. It is appropriately sized for a tool with rich schema documentation.

    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?

    Despite the tool having 12 parameters, nested objects, and no output schema, the description provides only a high-level statement. It does not explain the expected transaction flow, return values, callback/redirect behavior, or prerequisites, leaving significant gaps for an AI agent to invoke 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%, meaning all 12 parameters have descriptions within the schema. The description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.

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

    Purpose4/5

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

    The description uses the specific verb 'Initialize' with the resource 'transaction' and the purpose 'to accept payment on Paystack', clearly stating what the tool does. It does not explicitly distinguish from sibling tools like charge_authorization, but the name and context make the primary action 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 provides no guidance on when to use this tool versus alternatives, no exclusions, and no mention of related tools. It is a single declarative statement without usage context.

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

  • 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 disclosing behavior. The description only states that it retrieves a list, implying a read-only operation. It does not disclose pagination behavior, required parameters, or any nuances about response properties. This is minimal disclosure beyond the schema, and does not help the agent anticipate side effects or constraints.

    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 sentence of 12 words, immediately stating the action and resource. It is front-loaded and contains no filler. Every word earns its place, making it appropriately concise for a straightforward list endpoint.

    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?

    Despite having a detailed schema with 12 parameters and required fields, the description is extremely sparse. It does not mention that the endpoint requires country, use_cursor, and perPage, nor does it explain the concept of pagination via cursors. There is no output schema, so the description should at least hint at what 'properties' are returned, but it does not. This leaves the agent with insufficient context beyond the 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?

    The input schema has 100% coverage, with every parameter having a description. Thus, the schema already provides semantic meaning for all 12 parameters. The description adds no additional parameter information, so the baseline score of 3 is appropriate; it neither subtracts nor adds value.

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

    Purpose4/5

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

    The description clearly identifies the action (Get a list) and the resource (banks supported by Paystack), and mentions the output includes their properties. It distinguishes from sibling list tools like list_products and list_customers by focusing on banks. However, the phrase 'all banks' is slightly misleading because the endpoint requires a country parameter, so it does not literally return all banks across all countries in a single call.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, such as list_countries or list_states. It does not mention prerequisites like the need to specify a country, nor does it state exclusions or when to prefer another tool. The agent must infer usage from the schema, which is not stated in the description.

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

  • 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 for behavioral disclosure. It only states 'List transactions with pagination and filtering options,' which is already evident from the tool name and schema. It doesn't reveal the return format, whether the operation is read-only, or any rate/limit/ordering behavior, which is important for an unannotated tool.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with the verb and resource bold and explicit. There is zero redundancy or filler. It is appropriately concise given that the schema already documents parameters.

    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 tool with 9 parameters and no output schema or annotations, a one-sentence description is insufficient. It omits information about return values, pagination semantics (e.g., page numbering, perPage cap), and default ordering. The agent would need to infer these from external documentation or trial and error.

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

    Parameters3/5

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

    The schema has 100% description coverage for all 9 parameters, including date formats, enums, and defaults. The description adds no parameter-specific meaning beyond the general mention of pagination and filtering, so the schema does the heavy lifting. This matches the baseline for high schema coverage.

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

    Purpose4/5

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

    The description clearly states the action ('List') and resource ('transactions'), and adds 'pagination and filtering options' which aligns with the schema. It doesn't explicitly distinguish from siblings like fetch_transaction or export_transactions, but the name and wording make the purpose 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 guidance on when to use this tool versus alternatives such as fetch_transaction for a single transaction or export_transactions for bulk export. The description doesn't mention any exclusions or prerequisites, leaving the agent to infer usage solely 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.

  • 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 only states that an OTP is generated and sent, lacking details about invalidating previous OTPs, delivery method, rate limits, or required permissions. This is a significant gap for a side-effect-producing tool.

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

    Conciseness4/5

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

    The description is a single, front-loaded sentence that states the core function without unnecessary words. It earns its place, though it could be marginally clearer about the 'resend' aspect.

    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?

    Despite having only two simple parameters, the tool lacks an output schema and annotations, and the description does not explain the flow context (e.g., what reason values mean, whether a new OTP invalidates the old one). This makes it incomplete for an agent to safely invoke in a transactional flow.

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

    Parameters3/5

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

    The schema describes both parameters (transfer_code and reason) with 100% coverage, so the baseline is 3. The description does not add meaning beyond the schema, but it does not need to since the schema already provides sufficient information.

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

    Purpose4/5

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

    The description clearly states the action ('Generates a new OTP') and the context ('for transfer verification'), which distinguishes it from sibling tools like enable/disable_transfers_otp. It does not explicitly use the word 'resend', but the meaning is clear from the tool 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 use this tool versus alternatives, no mention of prerequisites, and no exclusions. The phrase 'for transfer verification' implies a context but does not explain how this tool relates to enable/disable OTP tools or the overall transfer flow.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden for behavioral disclosure. 'Get' implies a read operation, but there is no mention of authentication needs, how 'from'/'to' filters affect the total, whether pagination parameters are used for aggregation, or what 'received' means (e.g., only successful transactions). This minimal disclosure is insufficient.

    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, clear sentence with zero unnecessary words. It is appropriately sized for the tool's core function and front-loads the essential purpose.

    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. The description explains the purpose but fails to address critical gaps: how filters and pagination affect the total, what the return value looks like, and why pagination parameters are required for an aggregate total. This incompleteness is significant for a tool with 4 parameters.

    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?

    Input schema coverage is 100% with all four parameters well-described, so the baseline is 3. The description adds no additional parameter semantics beyond the schema, which is acceptable given high schema coverage.

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

    Purpose4/5

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

    The description uses a specific verb 'Get' and identifies a clear resource: 'total amount received on your account'. This clearly states the tool's purpose. However, it does not explicitly distinguish it from sibling tools like check_balance or list_transactions, earning a 4 rather than 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?

    The description provides no guidance on when to use this tool versus alternatives. It simply states what it does without context, exclusions, or mentions of prerequisites, leaving the agent to infer usage.

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

  • 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 burden of behavioral disclosure. 'Update' implies a mutation but doesn't clarify partial vs full update, required fields, upsert behavior, permissions, or idempotency.

    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 sentence with no filler. Efficiently conveys the core action, though slightly under-specified.

    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 (3 required), a nested metadata object, no annotations, and no output schema, a one-line description is insufficient. It doesn't address required fields, update semantics, or consequences, leaving a significant gap for a mutation tool.

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

    Parameters3/5

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

    Schema description coverage is 80%, so baseline 3 applies. The description adds no additional meaning beyond the schema; code param lacks description in schema, but the description doesn't compensate.

    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?

    Clear verb+resource: 'Update a customer's details' distinguishes this from create/get/list customer tools. However, it lacks specificity about what details can be updated, but it's not a tautology.

    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 vs alternatives, no prerequisites, no exclusions. The description only states what it does, leaving the agent to infer usage from sibling tool names.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action 'verify' but does not disclose whether this is a read-only operation, what the response includes, potential errors, or side effects.

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

    Conciseness5/5

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

    The description is a single clear sentence that conveys the tool's purpose without unnecessary words. It is appropriately succinct and front-loaded.

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

    Completeness2/5

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

    The tool has no output schema, so the description should explain what the agent can expect from the verification result (e.g., status values, structure). It does not, leaving the return behavior ambiguous. The simple parameter set is well-defined, but the overall behavior is under-specified.

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

    Parameters3/5

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

    The input schema already provides a description for the sole parameter 'reference' with 100% coverage. The tool description adds no additional semantic meaning beyond restating the parameter's use.

    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 'verify' and identifies the resource as 'transaction's status', clearly stating the action. However, it does not explicitly distinguish this from sibling tools like 'fetch_transaction', which could also retrieve transaction 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?

    The description provides no guidance on when to use this tool versus alternatives, and it does not mention any exclusions or prerequisites. It only states the purpose without providing contextual usage direction.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It mentions 'finalize' and 'disable OTP' but does not disclose that this is a security-sensitive mutation, whether the action is irreversible, that an OTP is required (though schema shows it), or any effects on transfers. The description is too minimal to provide adequate transparency.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose and aligns with the schema. It earns its place 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?

    Given the tool's simplicity (one parameter, no output schema), the description covers the basic purpose. However, it lacks critical workflow context—namely, that this finalizes an earlier disable request and that the OTP is a verification step. This gap is notable but not fatal for a simple tool, so a middle score is appropriate.

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

    Parameters3/5

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

    The input schema provides 100% coverage of the single parameter 'otp' with a clear description ('OTP sent to business phone to verify disabling OTP requirement'). Per the baseline rule, high schema coverage merits a score of 3; the tool description adds no additional parameter semantics beyond what the schema already provides.

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

    Purpose4/5

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

    The description clearly states the action ('Finalize the request to disable OTP on your transfers') with a specific verb and resource. It implies a multi-step process via the word 'finalize,' but it does not explicitly name the initiating sibling tool (e.g., disable_transfers_otp), so it falls short of full distinction.

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

    Usage Guidelines2/5

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

    The description provides no explicit guidance on when to use this tool versus alternatives. It implies that a prior disable request exists, but does not state that disable_transfers_otp should be called first, nor any conditions or prerequisites. This leaves the agent without clear usage context.

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

  • 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 merely states the action without explaining side effects, prerequisites, idempotency, failure modes, or the non-reversible nature of a charge. The absence of such details is a significant gap for a financial 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.

    Conciseness5/5

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

    The description is a single, direct sentence: 'Charge a previously authorized card'. It is concise, front-loaded with the verb, and contains no redundant or vague wording. Every word contributes to the meaning.

    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 tool with 6 parameters, 3 required, no output schema, and no annotations, the description is notably under-specified. It fails to mention prerequisites (e.g., how to obtain an authorization code), consequences (e.g., the authorization is consumed), or error conditions (e.g., invalid/expired authorization). This incompleteness could lead to incorrect usage.

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

    Parameters3/5

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

    The schema descriptions cover all six parameters, so the tool description adds limited value. It does clarify that authorization_code must come from a prior authorization, which is helpful, but it does not explain relationships between parameters (e.g., email and amount) or any format constraints beyond the schema. Baseline 3 is appropriate given the high schema coverage.

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

    Purpose5/5

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

    The description clearly states the tool's function: 'Charge a previously authorized card'. It uses a specific verb ('Charge') and resource ('previously authorized card'), which distinguishes it from sibling tools like initialize_transaction (which would authorize) and partial_debit (which would partially debit). The scope is well-defined.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It does not mention that it should be used after obtaining an authorization code via initialize_transaction, nor does it exclude cases where partial_debit or deactivate_authorization would be more appropriate. This leaves the selection entirely to the agent's inference.

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

  • 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 disclosing behavior. It states the operation is to 'get' data, implying read-only, but does not confirm safety, auth requirements, rate limits, or any other behavioral traits beyond the obvious. The description adds no context beyond the purpose itself.

    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, clear sentence that is front-loaded with the action verb. Every word contributes to the meaning, with no fluff or redundancy.

    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?

    The tool is extremely simple (no params, no output schema), and the description conveys the core purpose. However, without an output schema or any mention of the response format, the agent lacks full context on what 'available balance' returns. It is minimally viable but has clear gaps in return value expectations.

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

    Parameters4/5

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

    The tool has zero parameters, and the schema coverage is 100% (vacuously). Per the rubric, 0 params yields a baseline of 4, and there is no need for the description to explain parameters it doesn't have.

    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 'Get the available balance on your Paystack integration' has a specific verb ('Get') and resource ('available balance'), clearly stating the tool's function. However, it does not explicitly distinguish itself from the sibling tool 'balance_ledger', which likely provides related but different balance 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?

    No guidance is provided on when to use this tool versus alternatives, such as 'balance_ledger'. The description implies usage (when you need the balance) but offers no explicit context, exclusions, or alternative references.

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

  • 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 only states 'List customers...' without mentioning pagination, date filtering, or the shape of the response, leaving significant behavioral traits undisclosed.

    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, clear sentence that is front-loaded and contains no fluff. Every word contributes to the meaning.

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

    Completeness2/5

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

    Given the four-parameter schema, absence of annotations, and no output schema, the description is too thin. It lacks context about pagination, date ranges, and how this tool fits among siblings like 'get_customer' and 'validate_customer'.

    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 all four parameters (to, from, page, perPage) having descriptions. The description adds no parameter-specific details, so the baseline of 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?

    The description uses the specific verb 'List' and identifies the resource 'customers' with the qualifier 'available on your Paystack integration'. It clearly distinguishes this from siblings like 'list_products' and 'create_customer'.

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

    Usage Guidelines2/5

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

    The description provides no explicit guidance on when to use this tool versus alternatives such as 'get_customer' or 'create_customer'. Usage is only implied by the verb 'List', without exclusions or alternative tool references.

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

  • 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 disclosing behavioral traits. It only says 'Create', which implies mutation, but says nothing about permissions, side effects, idempotency, uniqueness of email, or response format. This is minimal behavioral transparency for a create operation.

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

    Conciseness5/5

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

    The description is a single sentence: 'Create a new customer in Paystack'. It is extremely concise, front-loaded, and contains no fluff or redundant information. Every word contributes to the meaning.

    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?

    While the schema fully documents parameters, the description lacks information about what the tool returns (e.g., the created customer object) and any behavioral context such as whether the operation requires authentication or has side effects. Given the moderate complexity and absence of an output schema, this is adequate but leaves some gaps.

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

    Parameters3/5

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

    The input schema provides 100% coverage with descriptions for all five parameters, including email, phone, metadata, first_name, and last_name. The description adds no additional parameter meaning beyond what the schema already provides, so the baseline score of 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?

    The description uses the specific verb 'Create' with the resource 'customer' and the platform 'Paystack', clearly distinguishing it from sibling tools like list_customers, get_customer, and update_customer. It unambiguously states what the tool does.

    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 about when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or scenarios where another tool would be more appropriate. The only implied usage is 'when you need to create a customer', which is not explicitly stated.

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

  • Behavior2/5

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

    With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states the action without explaining side effects, reversibility, required permissions, or consequences of deactivating an authorization. Deactivation is a state-changing operation, so this lack of transparency is a significant gap.

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

    Conciseness5/5

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

    The description is a single concise sentence, immediately stating the action and purpose with no extraneous wording.

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

    Completeness2/5

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

    The tool is a mutation operation with no annotations and no output schema. The description does not clarify what happens after deactivation, error handling, or return values. For a simple one-parameter tool, the context provided is minimal and insufficient for an agent to fully understand invocation implications.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not add any meaning for the 'authorization_code' parameter. It neither explains what the code represents nor how to obtain it, leaving the agent without guidance beyond the parameter name.

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

    Purpose5/5

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

    The description clearly states the action ('Deactivate') and the resource ('payment authorization'), and provides a specific usage context ('when a card needs to be forgotten'). This distinguishes it from sibling tools like charge_authorization or partial_debit.

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

    Usage Guidelines4/5

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

    Provides a clear trigger scenario ('when a card needs to be forgotten') but does not explicitly mention alternatives or when not to use the tool. It gives context but lacks explicit exclusions or comparisons to other tools.

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

  • Behavior2/5

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

    With no annotations, the description must carry the behavioral burden. It conveys a read-only nature via 'Get', but adds no other traits such as error handling, response format, or authorization requirements, which is minimal for an unannotated tool.

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

    Conciseness5/5

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

    The description is a single, clear sentence with no filler, making it easy to parse and digest.

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

    Completeness3/5

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

    Given the simplicity of one parameter and no output schema, the description is minimal. It hints at returning transaction details but does not clarify error cases or the structure of the response, leaving some ambiguity.

    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 parameter 'id', and the schema already describes it well. The description only repeats 'by ID', adding no additional semantic value, but no gap exists either.

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

    Purpose5/5

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

    The description clearly states the action ('Get details') and the resource ('a transaction'), with the specific method 'by ID'. It distinguishes from sibling tools like list_transactions by focusing on a single transaction fetch.

    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 is provided on when to use this tool versus alternatives. While the name implies fetching by ID, there is no explicit context, prerequisites, or mention of when to prefer it over other transaction-related tools.

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

  • Behavior2/5

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

    There are no annotations provided, so the description must carry the full burden of behavioral disclosure. It does not state whether the operation is read-only, what authentication is required, or any rate limits. Beyond 'List', it provides no additional behavioral context.

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

    Conciseness5/5

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

    Single, front-loaded sentence that states the action and key feature (pagination). Every word earns its place; no filler.

    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?

    The description is adequate for a simple listing operation, but the absence of annotations and output schema means there is no disclosure of response format, authentication requirements, or error handling. It could be improved with a note about expected return values or prerequisites.

    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?

    All four parameters (to, from, page, perPage) have descriptions in the schema, so schema coverage is 100%. The description's mention of 'pagination support' aligns with page/perPage but adds no new meaning beyond what the schema already explains.

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

    Purpose5/5

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

    The description uses a specific verb 'List' with a clear resource 'products' and context 'Paystack integration'. It distinguishes from sibling tools like create_product and get_product by indicating this is the listing operation. The addition of 'pagination support' clarifies the scope.

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

    Usage Guidelines2/5

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

    The description does not provide explicit guidance on when to use this tool versus alternatives like get_product for single product retrieval. It mentions pagination support, implying it's for listing multiple products, but there is no explicit 'when not to use' or comparison to sibling tools.

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

  • Behavior2/5

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

    With no annotations, the description must convey behavioral traits, but it only states the action. It omits potential side effects, prerequisites, confirmation steps, or whether OTP is required for immediate changes.

    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 is concise and immediately comprehensible.

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

    Completeness2/5

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

    Given the lack of annotations or output schema, the description should provide more context. It does not address the OTP enabling workflow, potential multi-step nature, or relationship to disable/resend tools, leaving it incomplete for an agent to know the full implications.

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

    Parameters4/5

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

    The tool has zero parameters, so per the rubric baseline 4 applies. The description adds no parameter detail, but none is needed.

    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 phrase 'Enable OTP requirement for transfers' uses a specific verb and resource, clearly stating the action. It effectively distinguishes from sibling tools like disable_transfers_otp and resend_transfers_otp.

    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 is provided on when to use this tool versus alternatives. It does not mention related tools like disable_transfers_otp or the two-step finalization flow hinted at by finalize_disable_otp.

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

  • Behavior2/5

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

    With no annotations, the description is the only source of behavioral context. It fails to mention important side effects such as whether the authorization is consumed, what happens if the amount exceeds the authorized balance, or any required preconditions. This is a significant gap for a financial 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.

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no filler. It delivers the core purpose efficiently, though it sacrifices detail for brevity.

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

    Completeness2/5

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

    Given the tool's financial nature, 6 parameters, and no output schema, the description is severely under-specified. It does not explain the return value, error conditions, or prerequisite authorization status. This is inadequate for an AI agent to invoke the tool 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?

    The input schema provides full descriptions for all 6 parameters, so the baseline is 3. The description adds no additional meaning about the parameters, such as how the 'at_least' parameter interacts with 'amount'.

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

    Purpose5/5

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

    The description uses a specific verb 'charge' and identifies the resource as 'previously authorized card', clearly indicating a partial amount. This distinguishes it from the sibling 'charge_authorization' which is likely for full charges.

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

    Usage Guidelines3/5

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

    The description implies usage for partial charges from an authorized card, but it does not explicitly state when to use this tool over alternatives like charge_authorization, nor does it mention any exclusions or prerequisites. The context is clear but not prescriptive.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It only states 'update an existing product by ID' without revealing partial update semantics, error behavior for non-existent IDs, required permissions, or side effects. This is insufficient for a mutation tool.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that is efficient and free of unnecessary words. Every word adds value to understanding the tool's core function.

    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 sparse. It does not explain update semantics (full vs. partial), required fields beyond id, behavior when the product is not found, or how the currency/price fields interact. The schema covers parameter types but not runtime 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?

    The schema provides descriptions for 100% of the parameters, so the description does not need to add parameter-level details. The phrase 'by ID' reinforces the id parameter, but adds no new meaning beyond the schema.

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

    Purpose5/5

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

    The description clearly states the action (update), the resource (existing product), and the required identifier (by ID). This distinguishes it from sibling tools like create_product, get_product, and list_products.

    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 verb 'update' implies it is for modifying an existing product, but no explicit guidance is given on when to use this tool versus alternatives (e.g., create_product if the product does not exist). No exclusions or prerequisites are mentioned.

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

  • 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 says 'Get a list' and gives no information about return format, ordering, pagination, or side effects, offering minimal transparency beyond the basic function.

    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 concise sentence of 10 words, front-loaded with the action and resource. Every word earns its place, and there is no redundant or vague language.

    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?

    The tool is simple with one parameter and no output schema. The description covers the core function but omits any indication of the response structure or usage caveats. Given the lack of annotations and output schema, a bit more detail would improve completeness.

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

    Parameters3/5

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

    The schema fully describes the single 'country' parameter, including its source ('It is gotten after the charge request'), so the description does not need to add parameter details. The description itself adds no additional parameter semantics.

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

    Purpose4/5

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

    The description clearly states the action ('Get a list of states') and resource ('for a country'), and adds the context 'for address verification'. This distinguishes it from sibling tools like list_banks or list_countries, though it does not explicitly compare itself to them.

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

    Usage Guidelines4/5

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

    The phrase 'for address verification' provides a clear context for when this tool is appropriate. However, it does not mention exclusions or alternatives, so the guidance is not as explicit as it could be.

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

  • Behavior2/5

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

    With no annotations, the description bears full responsibility for disclosing behavior. It states the output is a list of supported countries, but does not mention response format, ordering, pagination, authentication requirements, or rate limits. The phrase 'currently supports' hints at dynamism, but overall behavioral detail is sparse.

    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 sentence, immediately front-loaded with the primary action and resource. Every word earns its place, with no redundancy or 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?

    Given the tool's low complexity (no parameters, no output schema), the description adequately conveys the purpose and scope. It might be improved by hinting at the return type (e.g., 'returns an array of country names'), but for a simple list operation it is sufficiently complete.

    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?

    This tool has zero parameters, so the baseline is 4. There is no parameter information needed, and no schema descriptions to compensate for. The description need not explain any arguments.

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

    Purpose5/5

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

    The description uses a specific verb ('Get') and clearly identifies the resource ('countries') with a scope ('that Paystack currently supports'). It is unambiguous and distinguishes itself from all sibling tools, none of which relate to countries.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. For a simple list tool, this is a minor gap, but the rubric expects explicit when-to-use guidance for a 4, and none is present.

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

  • 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 only says 'get details,' which implies a read operation, but it does not describe response format, error behavior, permissions, or whether any side effects exist. This lack of context is a significant gap for a tool with no annotation support.

    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 unnecessary words. It immediately states the action and the parameter's role, achieving high efficiency.

    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 get tool with one parameter and no output schema, the description is minimally adequate. It tells the agent what to expect in terms of action and identifier, but it does not describe the return payload or potential error cases. Given the tool's simplicity, this is a moderate gap but not severe.

    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 0%, so the description must compensate. It adds meaning by clarifying that the single parameter 'email_or_code' can be either an email address or a customer code, which is helpful. However, it does not specify formats, examples, or validation rules beyond the schema's basic string type.

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

    Purpose5/5

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

    The description clearly states the tool's function: retrieving details for a specific customer, identified by email or code. The verb 'get' and resource 'customer' are specific, and the identification method distinguishes it from sibling tools like list_customers and get_product.

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

    Usage Guidelines4/5

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

    The description implies appropriate usage: when you need details for one specific customer and have their email or code. It does not explicitly mention alternatives like list_customers, but the context is unambiguous enough for an agent to infer when to use it.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It only says 'Get details' but does not state read-only status, error behavior, or response format. The verb 'Get' implies safety but is not explicit, leaving a significant gap.

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

    Conciseness5/5

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

    The description is a single short sentence, front-loaded with the verb and resource, containing no unnecessary words.

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

    Completeness4/5

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

    For a simple get-by-id operation with one parameter, the description is adequate for an agent to select and invoke the tool. It lacks mention of return structure or error cases, but the schema covers the parameter and the purpose is clear, so it doesn't need much more.

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

    Parameters3/5

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

    The schema fully documents the single 'id' parameter with its own description (100% coverage). The description's 'by ID' adds no extra semantic value beyond what the schema already provides, so the baseline of 3 is appropriate.

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

    Purpose5/5

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

    The description uses a specific verb 'Get' with resource 'product' and scope 'by ID', clearly distinguishing it from sibling tools like list_products (listing all) and create_product/update_product (mutations).

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

    Usage Guidelines4/5

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

    The description implies usage when a specific product's details are needed given an ID. It does not explicitly mention alternatives or when not to use, but the 'by ID' qualifier provides clear context.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

paystack-mcp MCP server

Copy to your README.md:

Score Badge

paystack-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kohasummons/paystack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server