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.
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.
Tool Definition Quality
Average 4.2/5 across 6 of 6 tools scored.
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.
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.
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.
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 toolsget_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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ISO 4217 currency code, e.g. NGN, KES, XAF, ZAR. |
Tool Definition Quality
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Optional language code for holiday names, e.g. 'sw' for Swahili. | |
| year | Yes | Four-digit calendar year, e.g. 2026. | |
| country | Yes | ISO-2 country code, e.g. NG, KE, GH, ZA. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ISO-2 country code, e.g. NG, GH, KE, ZA, EG, MA, ZM, TZ. | |
| mobile_money_only | No | Return only mobile-money providers (default false). |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 50). | |
| query | Yes | Bank name, bank/sort code, SWIFT/BIC code, or USSD shortcode. | |
| country | No | Optional ISO-2 country code to scope the search (e.g. NG, GH, KE, ZA, TZ). |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number, local (08031234567) or international (+2348031234567). |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | The 10-digit Nigerian account number. | |
| bank_code | No | Optional. If given, validate against just this bank code instead of scanning all. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceIBAN validation, BIC/SWIFT lookup, SEPA compliance, issuer classification and risk indicators for AI agents. 39K+ bank entries from GLEIF. Supports 75+ countries.Last updated52113MIT
- -license-quality-maintenanceField operations agent API for task management, geo-tracking, and team coordination. Built for African logistics, delivery, and field service teams.Last updated

Afro.tools MCP Serverofficial
Alicense-qualityCmaintenanceProvides AI agents with structured, verified specs for African APIs like Wave and Paycard, enabling automatic integration code generation without manual documentation parsing.Last updated19Apache 2.0- Alicense-qualityAmaintenanceProvides AI agents with tools to access Nigerian trade statistics, live FX rates, bank account resolution, and electricity meter validation data.Last updatedMIT