Skip to main content
Glama

Server Details

Nigeria PAYE, VAT and CBN rates, sourced and dated. Plus invoice totals, QR codes, JSON, Base64.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 44 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a clearly distinct function: text encoding, JSON formatting, password/QR generation, invoice math, currency conversion, and three separate tax/salary operations. The two closest neighbors, ng_paye_calculate (gross-to-net) and ng_gross_for_take_home (net-to-gross), are explicitly framed as inverse directions, and invoice_totals vs ng_vat_calculate are distinguishable (full invoice vs VAT-only).

Naming Consistency4/5

All names are snake_case and a domain-prefix convention (ng_, usd_ngn_) is applied consistently. The only wobble is mixed word order—noun_verb (amount_in_words, invoice_totals, json_format) vs verb_noun (base64_convert, password_generate, qr_generate)—which is readable but not fully uniform.

Tool Count5/5

Ten tools is well within the ideal range and each earns its place as a distinct utility. No redundant or filler tools pad the set.

Completeness4/5

The invoice/tax cluster is well covered (amount in words, totals, VAT, PAYE, reverse salary, FX), and the generic dev utilities form a coherent grab-bag. Gaps are minor—e.g. no invoice PDF generation or additional regional tax jurisdictions—but core workflows are reachable.

Available Tools

10 tools
amount_in_wordsAmount in wordsA
Read-onlyIdempotent
Inspect

Spell a monetary amount in words, the way a cheque or an invoice requires — "Four Thousand and Fifty Naira and Seventy-Five Kobo Only". Supports NGN, USD, EUR and GBP with the correct major and minor unit names. It is the row that goes above the signature line on the invoices at https://zaleso.com/invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesThe amount, e.g. 4050.75
currencyNoDefault NGN

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the operation as read-only; the description adds the output format (words with major/minor unit names and the 'Only' suffix) and the fact that currency determines those unit names. It does not disclose rounding or edge-case behavior, but for a deterministic formatter this is acceptable.

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?

Three sentences, front-loaded with the action verb, then the example, then supported currencies and context. The long example earns its place by demonstrating the exact output style. There is no fluff or repetition of schema content.

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

Completeness4/5

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

With no output schema, the description must convey the return shape, and the example does that effectively. It also covers currency support and the primary use case. Edge cases like rounding, negative amounts, or unsupported currencies are not addressed, but the low complexity of the tool keeps this from being a major gap.

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 schema documents both parameters, so the baseline is 3, but the description adds meaningful semantics: currency is not just an enum but selects the correct unit names (e.g., Naira/Kobo for NGN). The embedded example also reinforces what 'amount' means in practice.

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 opens with a specific verb and resource — 'Spell a monetary amount in words' — and immediately illustrates the output with a full example. It also lists the four supported currencies and ties the tool to cheque or invoice contexts, which distinguishes it from sibling conversion or generation tools like usd_ngn_convert or qr_generate.

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 gives clear usage context — cheques, invoices, specifically the row above the signature line on Zaleso invoices. It does not explicitly name alternatives or exclusions, but the concrete scenarios are enough to guide an agent on when to invoke it.

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

base64_convertBase64 encode or decodeA
Read-onlyIdempotent
Inspect

Encode text to Base64, or decode Base64 back to text. UTF-8 throughout, so accented text, emoji, Arabic, Devanagari and CJK survive the round trip — the naive btoa/atob version does not. Interactive version: https://zaleso.com/base64

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoDefault encode
textYesThe text to encode, or the Base64 to decode.

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses UTF-8 handling and round-trip safety for accented text, emoji, and non-Latin scripts, which goes beyond the readOnly/idempotent annotations. It also warns against the naive btoa/atob version, adding useful behavioral context. No contradiction with annotations.

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 main operation is front-loaded, followed by a valuable UTF-8 caveat and an interactive link. The link is arguably optional for an MCP agent, but the overall description is compact and well-structured with no redundant phrasing.

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 two-parameter, read-only, idempotent transform tool, the description covers the core behavior and input semantics adequately. There is no output schema, but the return value is obvious from the encode/decode framing. It does not spell out invalid-input handling, but that is a minor gap for such a simple operation.

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

Parameters3/5

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

Schema description coverage is 100%, with both mode and text documented in the input schema. The description reinforces that text may be Unicode but does not add significant parameter-level detail beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Encode text to Base64, or decode Base64 back to text.' This clearly distinguishes base64_convert from its siblings like qr_generate, password_generate, and json_format. The title reinforces the same unambiguous purpose.

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 gives clear context for when to use the tool: any time Base64 encoding or decoding is needed. It does not explicitly name alternatives or state when not to use it, but the purpose is specific enough that an agent can select it confidently among the listed siblings.

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

invoice_totalsInvoice totals (any currency)A
Read-onlyIdempotent
Inspect

Compute invoice totals from line items: per-line totals, subtotal, an optional discount, optional tax (the verified Nigeria VAT preset or any rate you name), a deposit already paid, and the balance due. Country-agnostic. The interactive version also produces the PDF: https://zaleso.com/invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
vatNoCharge the verified Nigeria VAT rate. Only when the seller is VAT-registered in Nigeria. Default false.
linesYesLine items, up to 20.
depositNoAmount already paid.
taxRateNoTax rate as a percentage (20 for 20%), for jurisdictions other than Nigeria. Takes precedence over vat.
currencyNoDefault NGN. Affects formatting only.
taxLabelNoLabel for the tax row, e.g. "GST". Default "Tax".
discountAmountNoDiscount as a flat amount.
discountPercentNoDiscount as a percentage, 0-100.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive, so the bar is lower. The description adds meaningful behavioral detail beyond that: it lists the calculation components, the optional deposit, and the balance due, and it clarifies the boundary with the interactive PDF version. No contradiction with annotations.

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 compact and front-loaded with the core action, and every sentence contributes useful information. The first sentence is a long enumeration, but it is dense rather than padded, and the PDF pointer is a useful clarification.

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

Completeness4/5

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

With 8 parameters and no output schema, the description covers the main output concepts and optional inputs, and points to the interactive version for PDF need. It does not give an exact return shape, but the schema handles input semantics well and the annotation set covers safety expectations.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates the roles of discount, tax, and deposit but does not add significant parameter-level detail beyond what the schema already provides, such as defaults, precedence, or formatting behavior.

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

Purpose5/5

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

The description states a specific verb and resource: 'Compute invoice totals from line items' and then enumerates the exact outputs: per-line totals, subtotal, discount, tax, deposit, and balance due. This clearly distinguishes it from the sibling utilities, which are mostly unrelated conversion or generation tools.

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 gives clear context by calling the tool 'Country-agnostic' and noting that the interactive version produces the PDF, which signals that PDF generation is handled elsewhere. It does not explicitly name sibling alternatives, but the context is sufficient for an agent to decide when this tool is appropriate.

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

json_formatFormat or minify JSONA
Read-onlyIdempotent
Inspect

Format (pretty-print) or minify JSON. Invalid input returns the line and column of the error. Interactive version: https://zaleso.com/json

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesThe JSON text
modeNoDefault format
indentNoSpaces; default 2

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral context beyond annotations by stating that invalid input returns the line and column of the error, which helps an agent anticipate failure details. The interactive link is incidental but not contradictory.

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 only two sentences and front-loads the core purpose. The error behavior sentence earns its place. The interactive URL is minor extraneous clutter for an AI agent but does not significantly harm conciseness.

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 pure-transformation tool with no output schema and strong annotations, the description covers the essential behavior and error reporting. It does not spell out the return format, but that is strongly implied by the operation, and the schema fully documents inputs. Minor gap: no explicit mention that mode defaults to format.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters (json, mode, indent) are already documented with descriptions and constraints. The description adds no extra parameter-level semantics, which fits the baseline of 3 when the schema carries the burden.

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 operation: "Format (pretty-print) or minify JSON." This goes beyond the title by specifying the exact behavior and also adds the distinctive error-reporting detail (invalid input returns line and column). Among siblings like base64_convert or qr_generate, this tool is unambiguous.

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

Usage Guidelines3/5

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

The description does not explicitly say when to use this tool versus alternatives or when not to use it. Since there are no sibling JSON tools, the usage context is implied: use it whenever JSON formatting or minification is needed. This is adequate but not explicit.

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

ng_gross_for_take_homeNigeria gross-up (salary for a target take-home)A
Read-onlyIdempotent
Inspect

Work backwards from a target take-home to the gross salary that produces it, under the Nigeria Tax Act 2025 (2026 tax year). This is the question employers and contractors actually ask — "what must I pay for them to clear ₦500,000 a month" — and it cannot be answered by applying a rate, because PAYE is banded. Returns the required gross with the full band-by-band working and the statutory source. Informational only — verify with the tax authority. Interactive version: https://zaleso.com/ng/net-salary

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoWhether takeHome is monthly or annual. Default monthly.
takeHomeYesTarget take-home (net) pay in naira, after PAYE and deductions.
includeNhfNoDeduct the 2.5% National Housing Fund contribution — voluntary for private-sector employees since 2023. Default false.
includePensionNoDeduct the 8% employee pension contribution (PRA 2014). Default true.
rentPaidAnnualNoAnnual rent actually paid, in naira. Unlocks rent relief (20% of rent, capped at ₦500,000).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark the tool read-only and idempotent, so the safety profile is covered. The description adds useful behavioral detail beyond annotations: it returns 'the required gross with the full band-by-band working and the statutory source,' and explicitly disclaims authoritative status. This is meaningful context without contradicting the read-only annotation.

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 front-loaded with the core purpose, then explains why the tool exists, then lists what it returns, then adds a caveat and a link. It is slightly longer than strictly necessary — the interactive link and the rhetorical framing could be trimmed — but every sentence contributes to either purpose, usage, or behavioral transparency.

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

Completeness5/5

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

For a read-only calculator with 100% schema coverage, the description covers the essential context: the calculation direction, the legal basis, the banded-PAYE complication, the return value, and the verification caveat. Since there is no output schema, the brief statement that it returns 'the required gross with the full band-by-band working and the statutory source' is sufficient. Nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter already carries its own explanation, defaults, and units. The description does not add parameter-level detail beyond noting the PAYE is banded and that gross is derived from take-home, which is more about the tool's approach than about individual parameters. Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Work backwards from a target take-home to the gross salary that produces it.' It also identifies the governing law and tax year, and contrasts itself with rate-based PAYE calculation because 'PAYE is banded.' This clearly distinguishes it from sibling tools like ng_paye_calculate.

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 gives clear usage context — this is 'the question employers and contractors actually ask' — and explains why a simple rate approach fails. It does not explicitly name ng_paye_calculate as the alternative, but the banding rationale implicitly tells the agent when this tool is needed. The 'Informational only — verify with the tax authority' caveat adds appropriate usage caution.

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

ng_paye_calculateNigeria PAYE calculator (2026)A
Read-onlyIdempotent
Inspect

Calculate Nigeria PAYE income tax and net (take-home) salary under the Nigeria Tax Act 2025, effective for the 2026 tax year. Returns monthly take-home, monthly PAYE, the effective rate, and the full band-by-band working, with the statutory source and verification date. Handles pension (8%), NHF (2.5%, voluntary), rent relief (20% of rent, capped at ₦500,000), and the minimum-wage exemption. Figures are informational — verify with the tax authority. Interactive version: https://zaleso.com/ng/paye

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoWhether grossIncome is monthly or annual. Default monthly.
includeNhfNoDeduct the 2.5% National Housing Fund contribution — voluntary for private-sector employees since 2023. Default false.
grossIncomeYesGross salary in naira (before tax and deductions).
includePensionNoDeduct the 8% employee pension contribution (PRA 2014). Default true.
rentPaidAnnualNoAnnual rent actually paid, in naira. Unlocks rent relief (20% of rent, capped at ₦500,000). Relief is claim-based: omit if no rent is declared.
otherDeductionsAnnualNoOther eligible annual deductions actually paid (NHIS, life-insurance premium), in naira.

TDQS

A4.3/5.0
Behavior5/5

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

The description goes well beyond the readOnly/idempotent/destructive annotations by disclosing exactly what the tool returns (take-home, PAYE, effective rate, band-by-band working, statutory source, verification date), which deductions it handles, and that figures are informational and should be verified. This gives an agent a realistic picture of behavior and output before calling it.

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 dense but every sentence earns its place: purpose, outputs, handled deductions, statutory basis, and a verification caveat. Key information is front-loaded in the first sentence, with supporting details following logically. The interactive link is a minor extra but relevant for verification.

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

Completeness5/5

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

For a calculator with no output schema, the description sufficiently covers what the agent needs: input semantics are in the schema, outputs are enumerated, deduction rules are summarized, and the legal/verification context is provided. There are no major gaps that would prevent a correct invocation or interpretation of results.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the schema already explains each parameter and default. The description adds useful context about how pension, NHF, and rent relief factor into the calculation, but it largely restates what the parameter descriptions already provide rather than adding new parameter-level meaning.

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 ('Calculate') with a precise resource ('Nigeria PAYE income tax and net take-home salary') and adds the governing law and tax year ('Nigeria Tax Act 2025, effective for the 2026 tax year'). This clearly differentiates it from tax siblings like ng_vat_calculate and the reverse-calculator ng_gross_for_take_home.

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 intended use is implicit: use this when you need PAYE and net salary from gross income. However, the description never explicitly states when to choose this tool over the sibling ng_gross_for_take_home, nor does it give exclusion criteria or alternative routing. The usage context is clear but left to inference.

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

ng_vat_calculateNigeria VAT (add or extract)A
Read-onlyIdempotent
Inspect

Add Nigerian VAT to a net amount, or extract the VAT already contained in a VAT-inclusive amount. Uses the verified statutory rate from the data layer and returns it with its source and effective date — never an assumed rate. Informational only — verify with the tax authority. Interactive version: https://zaleso.com/invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'add' treats amount as VAT-exclusive and adds VAT; 'extract' treats it as VAT-inclusive and backs the VAT out. Default add.
yearNoTax year. Default 2026.
amountYesThe amount in naira.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description discloses that the rate comes from a verified data layer, is never assumed, and is returned with its source and effective date. It also frames the result as informational, which helps the agent use it appropriately.

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

Conciseness5/5

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

Three sentences deliver purpose, data-source behavior, and an important verification caveat without wasted words. The purpose is front-loaded and every sentence earns its place.

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

Completeness5/5

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

For a read-only calculation tool with fully documented parameters and annotations, the description is complete: it explains the modes, the rate provenance, the return contents, and the need to verify with the tax authority. Nothing required for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents mode, year, and amount. The description reinforces the net versus VAT-inclusive distinction but adds no new parameter-level detail.

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 opens with the exact operations: adding Nigerian VAT to a net amount or extracting VAT from an inclusive amount. It names the resource clearly and distinguishes this tool from sibling tax/salary and conversion tools.

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?

It provides clear mode-selection guidance: use 'add' when the amount is VAT-exclusive and 'extract' when it is VAT-inclusive. It does not explicitly discuss when not to use the tool relative to siblings, but the mode guidance covers the key decision.

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

password_generateGenerate a strong passwordA
Read-only
Inspect

Generate a cryptographically secure random password (crypto.getRandomValues with rejection sampling — no modulo bias). Returns the password and its entropy. Interactive version: https://zaleso.com/password

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNoDefault 20
symbolsNoInclude !@#$ etc. Default true
excludeAmbiguousNoDrop lookalikes (l, I, 1, O, 0) for passwords that get read aloud

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark the operation as read-only and non-destructive. The description adds meaningful behavioral detail by disclosing the cryptographic algorithm (crypto.getRandomValues with rejection sampling) and explicitly ruling out modulo bias, which is significant for a security-sensitive tool. It also states the output contents, going beyond what annotations provide.

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

Conciseness4/5

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

The description is compact and front-loaded: the core action and security property appear first, followed by the return value. The interactive URL is a minor extra that an API agent does not need, but it does not hurt clarity or distract from the essential guidance.

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 stateless generator with a well-documented schema, the description covers the algorithm, the output, and the security guarantee. It could be more precise about the output format or entropy unit, but those details are not required for an agent to invoke the tool correctly.

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

Parameters3/5

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

All three parameters are already fully described in the schema, including defaults for length and symbols and the meaning of excludeAmbiguous. The description adds no additional parameter-level guidance, so the baseline of 3 for high schema coverage 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 names a specific operation ('Generate') and a precise resource ('a cryptographically secure random password'), and it states what is returned ('the password and its entropy'). None of the sibling tools overlap with password generation, so there is no risk of confusion with alternatives.

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 gives a clear context: use this tool whenever a cryptographically secure random password is needed. It does not explicitly name when-not-to-use conditions or alternatives, but the sibling list contains no password-generating alternative, so the context is sufficient.

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

qr_generateGenerate QR codeA
Read-onlyIdempotent
Inspect

Generate a QR code as an SVG image from text or a URL. The code encodes the value directly — no tracking redirect, so it works forever. Interactive version: https://zaleso.com/qr

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText or URL to encode (max 2953 chars)
errorCorrectionNoError correction level; H survives print damage best. Default M.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only and idempotent behavior. The description adds meaningful behavioral context beyond that: 'The code encodes the value directly — no tracking redirect, so it works forever.' This gives the agent useful information about the output's durability and content.

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

Conciseness4/5

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

The core purpose is front-loaded in the first sentence, and the second sentence adds useful behavioral context. The interactive version link is not essential for API agents, which keeps it from a perfect 5, but it is short and does not detract significantly.

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

Completeness4/5

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

For a simple two-parameter tool, the description covers the essential output format ('SVG image') and the key encoding behavior. Since there is no output schema, it would be slightly stronger to explicitly state the return representation (e.g., SVG string vs. file), but the current wording is sufficient for an agent to understand the result.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description's phrase 'from text or a URL' restates the `text` parameter's purpose without adding new meaning, and it says nothing about `errorCorrection` beyond what the schema already provides.

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

Purpose5/5

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

The description states a specific verb and resource: 'Generate a QR code as an SVG image from text or a URL.' It clearly distinguishes the tool from its sibling conversion/calculation utilities, which are all unrelated to QR generation.

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 provides clear input context ('from text or a URL') and implies the tool is for QR generation when needed. There are no relevant sibling alternatives to exclude, so the lack of explicit when-not guidance is acceptable.

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

usd_ngn_convertConvert naira at the official CBN rateA
Read-only
Inspect

Convert between Nigerian naira and US dollars, pounds, euros and other currencies at the Central Bank of Nigeria's official rate — the latest, or the rate that applied on a past date. The dollar uses the NFEM rate (the volume-weighted average CBN publishes); other currencies use CBN's selling rate. Never a parallel-market figure. Returns the converted amount with the rate, the trading date it applies to, and the CBN source. Interactive version: https://zaleso.com/ng/fx

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoOnly when from is NGN: the currency to convert to. Default USD.
dateNoUse the rate that applied on this date, as YYYY-MM-DD, from 2024-12-02 onwards — e.g. an invoice date. On a weekend or public holiday the last trading day's rate applies. Default: the latest rate.
fromNoThe currency the amount is in. Default USD.
amountYesThe amount to convert.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description discloses the rate mechanism in detail: NFEM volume-weighted average for USD versus CBN selling rate for other currencies, the guarantee that it is never a parallel-market figure, and the three return fields (amount, rate, trading date, source). This is exactly the kind of behavioral context annotations cannot carry.

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 front-loaded with the core purpose and rate-source caveat, and the closing link to the interactive version is useful rather than filler. It is dense but every sentence carries information; the em-dash clause is slightly heavy but not wasteful.

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 no-output-schema tool it compensates well by describing the return payload and the rate provenance. Minor gaps remain — no mention of rounding/precision or how unsupported amounts are handled — but nothing critical to correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100% so the schema already documents defaults, enums and date format. The description adds real value by explaining why the to/from pair matters: USD resolves via NFEM while other currencies use the selling rate, which is semantic information absent from the enum alone.

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

Purpose5/5

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

The description states a specific verb+resource (convert amounts between NGN and USD/GBP/EUR and others) and scopes it precisely to the CBN official rate, distinguishing it from any parallel-market conversion. The title and first sentence together make the tool's function unmistakable against siblings like ng_vat_calculate or invoice_totals.

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?

It gives clear context for when to reach for this tool (official CBN rates, latest or a past invoice date) and explicitly excludes parallel-market figures, which is a useful negative constraint. However, it never names an alternative tool or states when NOT to use it beyond the parallel-market caveat, so it stops short of full routing guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedusd_ngn_convert3 fields changed
      • addedInput schema / properties / date
        Added value: +{
        +  "description": "Use the rate that applied on this date, as YYYY-MM-DD, from 2024-12-02 onwards — e.g. an invoice date. On a weekend or public holiday the last trading day's rate applies. Default: the latest rate.",
        +  "type": "string"
        +}
      • changedInput schema / properties / from / enum
        Previous value: -[
        -  "USD",
        -  "NGN"
        -]New value: +[
        +  "USD",
        +  "GBP",
        +  "EUR",
        +  "CNY",
        +  "JPY",
        +  "CHF",
        +  "ZAR",
        +  "SAR",
        +  "AED",
        +  "DKK",
        +  "XOF",
        +  "NGN"
        +]
      • addedInput schema / properties / to
        Added value: +{
        +  "description": "Only when from is NGN: the currency to convert to. Default USD.",
        +  "enum": [
        +    "USD",
        +    "GBP",
        +    "EUR",
        +    "CNY",
        +    "JPY",
        +    "CHF",
        +    "ZAR",
        +    "SAR",
        +    "AED",
        +    "DKK",
        +    "XOF"
        +  ],
        +  "type": "string"
        +}
  2. 10 tool updates
    • First observedamount_in_words
    • First observedbase64_convert
    • First observedinvoice_totals
    • First observedjson_format
    • First observedng_gross_for_take_home
    • First observedng_paye_calculate
    • First observedng_vat_calculate
    • First observedpassword_generate
    • First observedqr_generate
    • First observedusd_ngn_convert

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI agents with tools to access Nigerian trade statistics, live FX rates, bank account resolution, and electricity meter validation data.
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Latin American business compliance suite — 28 tools for tax ID validation (CPF, CNPJ, RFC, RUT, CUIT, NIT), banking (PIX, CLABE, CBU), VAT rules, e-invoicing (NF-e, CFDI, DTE), holidays, and labor calendar across Brazil, Mexico, Chile, Argentina, and Colombia.
    28
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides Japanese tax and invoice utilities such as consumption tax calculation, withholding tax, invoice number validation, and tax rate summarization, enabling AI assistants to perform these operations locally without external APIs.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources