A Model Context Protocol (MCP) Server for connecting to the Bank Negara Malaysia (BNM) Open API. This project provides tools to fetch various financial data from BNM, such as exchange rates, base rates, gold prices, and more.
This MCP server is neither affiliated with BNM nor endorsed by BNM; the server leverages on BNM's OpenAPI endpoints and contains just a subset of BNM's API.
get_exchange_rate
- Get currency exchange rates from the Interbank Foreign Exchange Market in Kuala Lumpur. Prices of selected countries' currencies are quoted in relation to Ringgit.
get_usd_myr_intraday_rate
- Get latest USD/MYR (US Dollar - Malaysian Ringgit) interbank intraday highest and lowest exchange rate. Rates are obtained from the best U.S. dollar against Malaysian ringgit interbank highest and lowest dealt rates by commercial banks.
get_usd_myr_reference_rate
- Get latest reference rate that is computed based on weighted average volume of the interbank USD/MYR FX spot rate transacted by the domestic financial institutions and published daily at 3:30 p.m.
get_daily_FX_turnover
- Get daily foreign exchange turnover for all currencies including interbank and customer deals.
get_base_rate
- Get current Base Rates or Base Lending Rates for retail loans or financing facilities and Indicative Effective Lending Rates for a standard housing loan/home financing offered by financial institutions in Malaysia.
get_overnight_policy_rate
- Get Overnight Policy Rate (OPR) decided by the Monetary Policy Committee.
get_malaysia_overnight_rate_i
- Get Malaysia overnight rate from Bank Negara Malaysia.
get_islamic_interbank_rate
- Get daily weighted average of Islamic interbank deposit rates for various tenures.
get_interest_rates_banking_institution
- Get interest rates by banking institution.
get_reserve_money
- Get latest reserve money data by Bank Negara Malaysia.
get_currency_circulation_by_denomination
- Get Currency in Circulation by Denomination of:
- Coins: one cent, five cent, ten cent, twenty cent, fifty cent, one ringgit
- Notes: one ringgit, five ringgit, ten ringgit, twenty ringgit, fifty ringgit, one hundred ringgit
get_monetary_aggregates_M1_M2_M3
- Get monetary aggregates M1, M2, and M3 data by Bank Negara Malaysia.
get_broad_money_M3
- Get Broad Money M3 data by Bank Negara Malaysia.
get_bnm_statement_assets
- Get statement of assets of Bank Negara Malaysia.
get_banking_system_statement_assets
- Get statement of assets for banking systems. Available banking institution types: commercial, islamic, investment, total.
get_interbank_swap
- Get daily interbank swap volume by tenure.
get_kijang_emas
- Get daily trading prices of Malaysia gold bullion coin.
get_malaysian_government_securities_market_indicative_yield
- Get Malaysian Government securities Market Indicative Yield from Bank Negara Malaysia.
get_volume_transaction_interbank_money_market
- Get Volume of Transaction in Interbank Money Market from Bank Negara Malaysia.
get_volume_transaction_kl_foreign_exchange_market
- Get Volume of Interbank Transactions in the Kuala Lumpur Foreign Exchange Market from Bank Negara Malaysia.
get_bond_market_highlights
- Get market highlights for the bond market.
get_federal_government_finance
- Get Federal Government Finance data.
get_external_reserves
- Get information of External Reserves from Bank Negara Malaysia.
get_labour_market_indicators_financial_services_sector
- Get Labour Market Indicators for the Financial Services Sector from Bank Negara Malaysia.
get_financial_consumer_alert
- Get list of companies and websites which are neither authorised nor approved under the relevant laws and regulations administered by BNM.
** get_takaful_key_indicators
** - Get Takaful Key Indicators from Bank Negara Malaysia.
- Python >=3.11
- MCP SDK 1.2.0 or higher
uv
package manager
Method 1: Using pip (Recommended for most users)
pip install uv
Method 2: For Unix systems (Linux, macOS):
curl -LsSf https://astral.sh/uv/install.sh | sh
- Clone this repository.
git clone https://github.com/meisin/bnm-mcp.git
- Install dependencies.
uv sync
- Run the MCP server:
uv run main.py
The server will start and expose the tools via the MCP interface.
- Install Claude Desktop from the official website
- Configure Claude Desktop to use your MCP server:
{
"mcpServers": {
"mcp-server": {
"command": "uv", # It's better to use the absolute path to the uv command
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/YOUR/bnm-mcp",
"run",
"main.py"
]
}
}
}
This project is for research and educational purposes. Please refer to Bank Negara Malaysia's API terms of use for data usage policies.