Skip to main content
Glama

Cross-border money-movement rules (D2)

cross_border_rules
Read-only

The cross-border rulebook: what money may move across an African market's border, and under what rule - export-proceeds repatriation windows, licensed-channel and approval requirements, cash-declaration thresholds, travel/discretionary allowances, outward-capital restrictions, remittance-operator scope (some markets are inbound-only), investor transfer rights, and domestic-FX-use rules - normalized across 38 markets. RULES, NOT RATES (Rule 1): never an FX rate. Every rule carries source + as-of + (in full) the verbatim quote. Honest states are distinct, never conflated: published_rule | documented_absence (structural = a sourced finding that no such rule exists, e.g. a repealed exchange-control regime; not_published = a rule exists but its figure is not officially published) | located_unverified (located but not yet verified - a state only, never a value). Filter by jurisdiction, topic (repatriation, capital_control, approval_required, documentation, limits), facet (the SENSE, e.g. xborder:EXPORT_PROCEEDS_REPATRIATION), scope (intra_union/extra_union), direction (inward/outward/both) or activity. Jurisdictions: 42 African country markets — GH (Ghana), KE (Kenya), NG (Nigeria), RW (Rwanda), TZ (Tanzania), UG (Uganda), ZA (South Africa), ZM (Zambia), ET (Ethiopia), ZW (Zimbabwe), BJ (Benin), BF (Burkina Faso), CI (Côte d'Ivoire), GW (Guinea-Bissau), ML (Mali), NE (Niger), SN (Senegal), TG (Togo), CM (Cameroon), CF (Central African Republic), CG (Congo-Brazzaville), GA (Gabon), GQ (Equatorial Guinea), TD (Chad), MA (Morocco), CD (DR Congo), MZ (Mozambique), AO (Angola), MU (Mauritius), NA (Namibia), LS (Lesotho), SZ (Eswatini), BW (Botswana), MW (Malawi), TN (Tunisia), SO (Somalia), BI (Burundi), DJ (Djibouti), GM (The Gambia), SC (Seychelles), CV (Cabo Verde), SL (Sierra Leone) (plus "WAEMU"/XW, "CEMAC"/XC as union scopes that expand to their member states). format:'compare' returns one facet/topic across jurisdictions side-by-side (the comparison view); 'full' adds the verbatim quote + components; default 'summary'. Paginated.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
facetNoThe sense within a topic, e.g. 'xborder:EXPORT_PROCEEDS_REPATRIATION' or 'export_proceeds_repatriation'. Must be a known facet; an unknown facet is an error (never a silent empty).
limitNoMax jurisdiction slices per page (default 30). Truncation is explicit: see pagination.has_more / next_offset.
scopeNoThe union-boundary scope of a rule (ADR-053): intra_union = within a monetary union (e.g. WAEMU/CEMAC internal); extra_union = crossing the union border. Omit for both.
topicNoThe money-movement rule family.
formatNosummary (default): the normalized rule + source + as_of. full: adds verbatim quote + components. compare: one facet/topic across jurisdictions (requires facet or topic; a union rule appears once, labelled by the union).
offsetNoSkip N jurisdiction slices (id-sorted).
activityNoA canonical fintech activity, e.g. 'fintech:REMITTANCE_XBORDER' - returns rules that bind that actor class plus the universal rules.
directionNoFilter to inward / outward flows. A single-direction rule matches its own direction; a rule marked 'both' and a non-directional rule (e.g. the universal licensed channel) match ANY direction filter. direction:'both' therefore returns rules that apply either way, not only rules explicitly marked 'both'.
jurisdictionNoISO-2 code or name (NG, Kenya, ZA...) or 'WAEMU'. Omit for all markets.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / activity / description
      Previous value: -"A canonical activity, e.g. 'fintech:REMITTANCE_XBORDER' - returns rules that bind that actor class plus the universal rules."New value: +"A canonical fintech activity, e.g. 'fintech:REMITTANCE_XBORDER' - returns rules that bind that actor class plus the universal rules."
    • changedInput schema / properties / direction / description
      Previous value: -"Filter to inward / outward flows (rules marked 'both' — and non-directional rules like the universal licensed channel — always match)."New value: +"Filter to inward / outward flows. A single-direction rule matches its own direction; a rule marked 'both' and a non-directional rule (e.g. the universal licensed channel) match ANY direction filter. direction:'both' therefore returns rules that apply either way, not only rules explicitly marked 'both'."
    • changedInput schema / properties / facet / description
      Previous value: -"The sense within a topic, e.g. 'xborder:EXPORT_PROCEEDS_REPATRIATION' or 'export_proceeds_repatriation'."New value: +"The sense within a topic, e.g. 'xborder:EXPORT_PROCEEDS_REPATRIATION' or 'export_proceeds_repatriation'. Must be a known facet; an unknown facet is an error (never a silent empty)."
    • changedInput schema / properties / format / description
      Previous value: -"summary (default): the normalized rule + source + as_of. full: adds verbatim quote + components. compare: one facet/topic across jurisdictions (requires facet or topic)."New value: +"summary (default): the normalized rule + source + as_of. full: adds verbatim quote + components. compare: one facet/topic across jurisdictions (requires facet or topic; a union rule appears once, labelled by the union)."
    • addedInput schema / properties / scope
      Added value: +{
      +  "description": "The union-boundary scope of a rule (ADR-053): intra_union = within a monetary union (e.g. WAEMU/CEMAC internal); extra_union = crossing the union border. Omit for both.",
      +  "enum": [
      +    "intra_union",
      +    "extra_union"
      +  ],
      +  "type": "string"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint), the description discloses error handling (unknown facet errors), state types (published_rule, documented_absence, located_unverified), pagination behavior, and union scope expansion. It also clarifies that no FX rates are returned, adding significant safety 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 front-loaded with the main purpose and structure. It uses headings, lists, and precise language. Despite length, every sentence adds value—no fluff given the tool's complexity.

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 complex tool with 9 parameters, multiple enums, and no output schema, the description covers filters, formats, states, error handling, pagination, and union scopes comprehensively. It leaves no major gaps for safe invocation.

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

Parameters5/5

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

Schema descriptions cover all 9 parameters, but the tool description adds meaning: it explains direction filter logic ('both' matches any direction), facet format, format effects, and union scope interpretation, going well beyond the schema 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 clearly states the tool provides cross-border money-movement rules for African markets, with a specific verb ('rulebook: what money may move') and resource distinction. It explicitly separates itself from siblings via domain (rules vs. licenses/maps) and states 'RULES, NOT RATES' to avoid confusion.

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 extensive filtering options and explains when to use different output formats (summary/full/compare). However, it does not explicitly contrast with sibling tools or state when not to use this tool, leaving some ambiguity about alternative selection.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources