Skip to main content
Glama

Nepal Rastra Bank exchange rates

south_asia_forex
Read-onlyIdempotent

Official Nepal Rastra Bank exchange rates (NPR buy/sell per currency) for any day since 2000, AD or BS date, with amount conversion and up to 31-day series. Use for Nepali rupee (NPR) exchange rates or conversions: today's or a past day's official rate, converting an amount to or from NPR, or a rate series. Returns rate {buy, sell, mid, unit}, conversion {nprAtBuy, nprAtSell, nprAtMid}, the full table rates[] when no currency is given, series[] for a range, and rateDate (the table actually used; holidays fall back to the previous day). Price: $0.001 per call from Exepal credit; not charged if the call fails. Includes free daily calls.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "south_asia_forex"
  }
}

Input Schema

NameRequiredDescriptionDefault
dateNoDay to quote, AD (2026-10-31) or BS (2083-07-14); default today in Nepal. Holidays fall back to the last published table
fromNoStart date for a series (max 31 days before date); requires currency
amountNoWith currency: amount to convert to NPR (also returns the reverse)
currencyNoISO 4217 code to return alone, e.g. USD, INR, EUR, AED. Omit for the full table

Output Schema

NameRequiredDescriptionDefault
noteNo
rateNoPresent when currency was sent
ratesNoWhole table, when no currency was sent
cachedNoPresent and true when the answer came from Exepal's cache
seriesNoPresent when from was sent
sourceNoNepal Rastra Bank
fallbackNoTrue when NRB published nothing that day and the previous table was used
rateDateNoDate of the table used
conversionNoPresent when amount was sent
rateDateBsNo
publishedOnNo
requestedDateNoAD, YYYY-MM-DD
requestedDateBsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "cached": {
      +      "description": "Present and true when the answer came from Exepal's cache",
      +      "type": "boolean"
      +    },
      +    "conversion": {
      +      "description": "Present when amount was sent",
      +      "properties": {
      +        "amount": {
      +          "type": "number"
      +        },
      +        "currency": {
      +          "type": "string"
      +        },
      +        "fromNpr": {
      +          "properties": {
      +            "atBuy": {
      +              "type": "number"
      +            },
      +            "atSell": {
      +              "type": "number"
      +            },
      +            "npr": {
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "nprAtBuy": {
      +          "type": "number"
      +        },
      +        "nprAtMid": {
      +          "type": "number"
      +        },
      +        "nprAtSell": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "fallback": {
      +      "description": "True when NRB published nothing that day and the previous table was used",
      +      "type": "boolean"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "publishedOn": {
      +      "type": "string"
      +    },
      +    "rate": {
      +      "description": "Present when currency was sent",
      +      "properties": {
      +        "buy": {
      +          "description": "NPR per unit",
      +          "type": "number"
      +        },
      +        "buyPerUnit": {
      +          "description": "NPR for 1 unit of the currency",
      +          "type": "number"
      +        },
      +        "iso3": {
      +          "type": "string"
      +        },
      +        "mid": {
      +          "type": "number"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "sell": {
      +          "description": "NPR per unit",
      +          "type": "number"
      +        },
      +        "sellPerUnit": {
      +          "type": "number"
      +        },
      +        "unit": {
      +          "description": "NRB quotes some currencies per 10 or 100 units",
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "rateDate": {
      +      "description": "Date of the table used",
      +      "type": "string"
      +    },
      +    "rateDateBs": {
      +      "type": "string"
      +    },
      +    "rates": {
      +      "description": "Whole table, when no currency was sent",
      +      "items": {
      +        "properties": {
      +          "buy": {
      +            "description": "NPR per unit",
      +            "type": "number"
      +          },
      +          "buyPerUnit": {
      +            "description": "NPR for 1 unit of the currency",
      +            "type": "number"
      +          },
      +          "iso3": {
      +            "type": "string"
      +          },
      +          "mid": {
      +            "type": "number"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "sell": {
      +            "description": "NPR per unit",
      +            "type": "number"
      +          },
      +          "sellPerUnit": {
      +            "type": "number"
      +          },
      +          "unit": {
      +            "description": "NRB quotes some currencies per 10 or 100 units",
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "requestedDate": {
      +      "description": "AD, YYYY-MM-DD",
      +      "type": "string"
      +    },
      +    "requestedDateBs": {
      +      "type": "string"
      +    },
      +    "series": {
      +      "description": "Present when from was sent",
      +      "items": {
      +        "properties": {
      +          "buy": {
      +            "type": "number"
      +          },
      +          "date": {
      +            "type": "string"
      +          },
      +          "mid": {
      +            "type": "number"
      +          },
      +          "sell": {
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source": {
      +      "description": "Nepal Rastra Bank",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent/openWorld annotations: it discloses holiday fallback to the previous published table, that rateDate reports the table actually used, the 31-day series cap, and the pricing model ($0.001 per call, not charged on failure, free daily calls). The cost and failure-charging disclosure is exactly the behavioral detail 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?

Front-loaded with the resource and scope, then use cases, then price — a sensible ordering with almost no wasted clauses. The enumeration of return fields (rate, conversion, rates[], series[], rateDate) is somewhat redundant given an output schema exists, which trims it from a 5.

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 four-parameter, all-optional read tool, nothing an agent needs is missing: date format options, fallback semantics, series cap, conversion behavior, and cost are all stated. Coverage is complete even ignoring the return-value detail that the output schema already supplies.

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 date formats (AD/BS), the 'from' requires-currency rule, and the omit-currency-for-full-table behavior are already documented. The description adds little parameter meaning beyond restating those rules and the 31-day series limit, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb+resource: official Nepal Rastra Bank exchange rates with NPR buy/sell per currency, plus conversion and series. It is unmistakably distinct from the south_asia_date/id/number/phone siblings, which handle unrelated domain primitives.

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?

Explicitly enumerates the three usage modes: quoting today's or a past day's official rate, converting an amount to or from NPR, and pulling a rate series. It gives clear context for choosing among its own modes but does not name a when-not scenario or point to an alternative tool.

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