Skip to main content
Glama

Mansa African Financial Reference Data

Server Details

African bank & SWIFT codes, NUBAN resolution, mobile networks, holidays and ISO 4217 currencies.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
HeyZod/mansa-african-identity-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct data type: currency, holidays, banks (list vs lookup), phone network, and NUBAN account resolution. Even the two bank tools are clearly separated by purpose—listing all institutions vs resolving one from an identifier. No tool overlaps meaningfully with another.

Naming Consistency5/5

All tool names follow a uniform verb_noun snake_case pattern (get_, list_, lookup_, resolve_), making the action and resource immediately clear. The convention is applied consistently across all six tools.

Tool Count5/5

With six tools, the server sits comfortably in the ideal 3-15 range. Each tool covers a distinct reference data need without bloat or redundancy, making the count well-scoped for the stated purpose.

Completeness4/5

The set covers core African financial reference data—currencies, holidays, banks, mobile networks, and NUBAN validation. However, there is no tool to list supported countries or all currencies, which would be a natural complement to the country-based lookups. This is a minor gap that agents can work around.

Available Tools

6 tools
get_currencyGet ISO 4217 details for an African currencyAInspect

Return the ISO 4217 record for a currency: its code, name, symbol, how many decimal places it uses, and every country that uses it.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesISO 4217 currency code, e.g. NGN, KES, XAF, ZAR.
Behavior3/5

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

With no annotations provided, the description must disclose behavior. It does list the return fields, which is helpful, but it fails to mention potential error handling for invalid or non-African currency codes, case sensitivity, or whether the 'African' restriction in the title is enforced. This leaves behavioral gaps for the agent.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the purpose and concisely lists the return fields. Every word contributes meaning, with no redundant or vague 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 simple one-parameter tool with no output schema, the description provides substantial context by listing the return fields. However, the ambiguity around the 'African currency' restriction and lack of error expectations reduce completeness slightly. Overall, it is adequate for most use cases.

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%, and the parameter description already provides clear examples (NGN, KES, XAF, ZAR). The description adds no additional parameter semantics beyond confirming the input is an ISO 4217 code. 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 clearly states the tool returns the ISO 4217 record for a currency, specifying the exact fields (code, name, symbol, decimal places, countries). It distinguishes itself from sibling tools like get_public_holidays and lookup_bank, which focus on other domains.

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?

While there is no explicit 'when to use' or alternative tool mentioned, the description implies usage for anyone needing ISO 4217 details for a currency. The sibling tools are clearly in different domains, so there is no confusion about when to use this tool. However, it lacks explicit exclusions or alternative suggestions.

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

get_public_holidaysGet public holidays for an African country and yearAInspect

Return the public holidays for a country and calendar year, with each holiday's date, name and type. Names are returned in English wherever the country publishes it; pass a language code for others (Kenya also publishes Swahili).

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoOptional language code for holiday names, e.g. 'sw' for Swahili.
yearYesFour-digit calendar year, e.g. 2026.
countryYesISO-2 country code, e.g. NG, KE, GH, ZA.
Behavior3/5

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

With no annotations provided, the description carries the transparency burden. It discloses a key behavioral trait: holiday names default to English when available, and a language code can be passed for alternatives, with a specific note about Kenya/Swahili. However, it does not mention error handling, data source, or edge cases like unsupported countries or years, leaving some gaps.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core action, and wastes no words. It efficiently conveys the return contents and the language nuance. Every sentence earns its place.

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

Completeness4/5

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

For a simple 3-parameter tool with no output schema and no annotations, the description is reasonably complete. It states what is returned (date, name, type) and how language is handled. It could be slightly more explicit about the response format (e.g., array of objects), but the implied list structure is sufficient for an agent to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains each parameter. The description adds minor semantic detail by calling the year a 'calendar year' and clarifying the language behavior, but this does not significantly go beyond the schema. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool returns public holidays for a given country and year, with specific output fields (date, name, type). It distinguishes itself from sibling tools, which all deal with financial or phone-related lookups, so there is no ambiguity about its 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 implies when to use the tool: when you need public holidays for a country and year. It provides context for the optional language parameter and mentions Kenya's Swahili support, but it does not explicitly state when not to use it or name alternatives. Still, the sibling tools are clearly unrelated, so the usage context is clear.

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

list_banksList banks in a countryAInspect

List every bank and financial institution held for a country, with its bank code, SWIFT/BIC, USSD shortcode and mobile-money flag. Use this to build a bank picker or to reconcile a list of institutions.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesISO-2 country code, e.g. NG, GH, KE, ZA, EG, MA, ZM, TZ.
mobile_money_onlyNoReturn only mobile-money providers (default false).
Behavior4/5

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

No annotations are present, so the description carries the transparency burden. It discloses the return fields (bank code, SWIFT/BIC, USSD shortcode, mobile-money flag) and the country scope. It could mention pagination or ordering, but for a simple list tool this is sufficiently transparent.

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

Conciseness5/5

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

Two sentences: the first front-loads the operation and output fields, the second provides a concise use-case note. Every word earns its place; there is no repetition of schema information.

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?

The description explains what the tool returns, why to use it, and the country scoping. Since the schema documents parameters and there is no output schema, the description adequately covers the essentials for a simple list 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 coverage is 100% for both parameters, including an ISO-2 country example and a default for mobile_money_only. The description adds use-case context but no parameter-specific syntax beyond what the schema already provides, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description is specific: it lists every bank and financial institution for a country, with named output attributes. The verb 'list' and scope 'every bank' clearly distinguish it from the sibling 'lookup_bank', which implies a single-bank lookup.

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 explicit use cases: 'build a bank picker' or 'reconcile a list of institutions'. It does not explicitly state when not to use it or name alternatives, but the 'list' vs 'lookup' distinction among siblings provides adequate contextual guidance.

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

lookup_bankLook up an African bank by name or codeAInspect

Identify an African bank from any identifier you hold: its name, domestic sort/bank code, SWIFT/BIC code, or USSD shortcode. Works as a reverse lookup, so pass a bare SWIFT code like 'NLCBTZTX' to find out which institution it belongs to. Returns the bank's name, country, type, bank code, SWIFT/BIC, USSD shortcode and whether it supports mobile money.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10, max 50).
queryYesBank name, bank/sort code, SWIFT/BIC code, or USSD shortcode.
countryNoOptional ISO-2 country code to scope the search (e.g. NG, GH, KE, ZA, TZ).
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses what the tool returns (name, country, type, bank code, SWIFT/BIC, USSD, mobile money support) and highlights the reverse lookup behavior. No side effects or limitations are mentioned, but for a read-only lookup this is adequate.

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

Conciseness5/5

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

Two sentences with no fluff. The first sentence states purpose and scope; the second gives a concrete example and enumerates return fields. Everything earns its place, and the text is front-loaded with the primary verb and resource.

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 moderate complexity, high schema coverage, and absence of an output schema, the description adequately covers what the tool does and what it returns. It doesn't explain how multiple matches are handled, but the 'limit' parameter and general lookup nature make it reasonably complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds a concrete SWIFT example and clarifies the query types, but this is largely redundant with the schema's parameter description. No additional syntax or format details beyond the example.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Identify') and resource ('African bank'), and lists the exact identifier types (name, sort/bank code, SWIFT/BIC, USSD). It distinguishes from siblings by emphasizing reverse lookup capability, making it unique among listed 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 provides clear context on when to use the tool ('from any identifier you hold') and gives a concrete example of a SWIFT code reverse lookup. It doesn't explicitly name alternatives or state when not to use it, but 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.

lookup_phone_networkIdentify the mobile network for an African phone numberAInspect

Resolve an African phone number to its mobile network operator from the number's prefix. Accepts local or international format. Useful for routing a mobile-money payout to the right provider or validating a number before sending an OTP.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesPhone number, local (08031234567) or international (+2348031234567).
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the resolution is based on the number's prefix and that local/international formats are accepted. However, it does not state the output format, error behavior, or whether the operation is read-only (though 'resolve' implies it). The lack of any annotation makes these disclosures more important, but the description still offers some meaningful behavioral context.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and every clause adds value. It is concise without sacrificing clarity.

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

Completeness4/5

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

For a single-parameter lookup with no output schema, the description is largely complete: it explains the input format, the resolution mechanism, and common use cases. The only missing piece is an explicit statement of the return value (e.g., operator name), but 'mobile network operator' strongly implies it. Overall, adequate for an agent to use the tool correctly in most scenarios.

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

Parameters3/5

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

Schema description coverage is 100%, and the phone parameter description already explains local/international format. The description adds the algorithm detail 'from the number's prefix', which is mildly useful but not essential. It does not compensate significantly beyond the schema, so the 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 uses the specific verb 'Resolve' with a clear resource: 'African phone number to its mobile network operator'. It explicitly distinguishes itself from sibling tools like lookup_bank and resolve_nuban, which handle bank-related lookups.

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 use cases: 'routing a mobile-money payout to the right provider' and 'validating a number before sending an OTP'. While it doesn't explicitly mention alternatives or when not to use the tool, the context is strong enough for an agent to decide. A brief mention of when to use lookup_bank instead would have been helpful, but not necessary.

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

resolve_nubanResolve a Nigerian account number to its possible banksAInspect

Work out which Nigerian banks a 10-digit NUBAN account number could belong to. The CBN check digit is computed from the bank code plus the first nine digits, so testing the number against every bank code narrows a shortlist without contacting any bank. Typically reduces ~30 banks to ~3. This confirms checksum validity only: it does NOT confirm the account exists, and it never returns the account holder's name, which requires a licensed NIBSS account-name enquiry.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesThe 10-digit Nigerian account number.
bank_codeNoOptional. If given, validate against just this bank code instead of scanning all.
Behavior5/5

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

With no annotations, the description carries full transparency burden. It discloses the computation method (CBN check digit from bank code plus first nine digits), the scope (tests against every bank code), typical result size (~30 to ~3), and limitations (checksum validity only, no account existence check, no name lookup). This goes beyond the schema and gives a clear behavioral model.

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 front-loaded with the core purpose in the first sentence. Each subsequent sentence adds value: mechanism, typical output, and limitations. No fluff or redundancy. It is compact yet information-dense, ideal for an agent parsing it quickly.

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?

The description conveys the primary output (shortlist of possible banks) and key limitations, but no output schema exists, so the description must cover return behavior. It does not explicitly describe the output shape when an optional bank_code is provided (whether it returns a single bank, boolean, or different format). This is a minor gap given the tool's moderate complexity, but the overall coverage is strong.

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 clear descriptions for 'account' and 'bank_code.' The description does not add significant semantic details beyond restating that the account is 10-digit and that testing happens against bank codes. It adds minor context about the shortlist behavior but doesn't enhance the parameter definitions meaningfully. 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?

Clearly states the tool's function: 'Work out which Nigerian banks a 10-digit NUBAN account number could belong to.' This distinguishes it from siblings like list_banks and lookup_bank, which focus on bank metadata rather than account resolution. The description also clarifies what it does not do (confirm account existence, return account holder name), further sharpening purpose.

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

Usage Guidelines5/5

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

Provides explicit usage context: 'narrows a shortlist without contacting any bank' explains when to use it. It also gives exclusions: 'does NOT confirm the account exists' and 'never returns the account holder's name, which requires a licensed NIBSS account-name enquiry,' steering users to alternatives when needed. The optional bank_code parameter is explained via the schema and reinforced in the description.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • -
    license
    -
    quality
    -
    maintenance
    Field operations agent API for task management, geo-tracking, and team coordination. Built for African logistics, delivery, and field service teams.
    Last updated

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.