MCP server by dqyaa
🇲🇾 Malaysia Data MCP Server
Give any AI assistant real-time access to Malaysian financial and government data. One server. No API keys. Plug into Claude Desktop, Cursor, VS Code, or any LangGraph agent in minutes.
Disclaimer: This is an unofficial community project. Not affiliated with or endorsed by Bank Negara Malaysia, DOSM, or the Government of Malaysia. Uses their free, public APIs.
What This Does
You can ask Claude (or any MCP-compatible AI):
"What is Malaysia's current Overnight Policy Rate and how does it affect Islamic home financing rates?"
"Calculate my zakat on RM 50,000 savings and 80 grams of gold using today's gold price."
"Is this company on BNM's consumer alert list?"
"Give me a complete Malaysian economic briefing — GDP, inflation, exchange rates, takaful sector."
And get real, current answers — not hallucinated data from training cutoffs.
Data Sources (All Free, No API Key)
| Source | Data | |---|---| | BNM OpenAPI | OPR, exchange rates, base rates, Islamic interbank, Kijang Emas, takaful, consumer alerts | | data.gov.my | Fuel prices, CPI/inflation, GDP, population, household income | | OpenDOSM | Population statistics, economic indicators | | MET Malaysia | 7-day weather forecast by state |
Tools Available (15 total)
BNM Financial Data
| Tool | Description |
|---|---|
| get_exchange_rates | Current MYR rates for USD, SGD, EUR, GBP, AUD, JPY, CNY, etc. |
| get_overnight_policy_rate | Current OPR + Islamic financing impact |
| get_base_lending_rate | BLR and BFR (Islamic) from all banks |
| get_interest_rates | Deposit and lending rates by institution |
| get_islamic_interbank_rate | IIMM rates for all tenures |
| get_kijang_emas_price | Kijang Emas gold prices + zakat nisab calculation |
| get_consumer_alert | BNM unauthorised entities list — scam detection |
Malaysia Open Data
| Tool | Description |
|---|---|
| get_fuel_prices | Weekly RON95, RON97, Diesel prices |
| get_cpi_inflation | Monthly CPI and inflation rate |
| get_population_stats | National and state population |
| get_household_income | Median/mean income by state |
| get_gdp_data | Quarterly GDP growth by sector |
| get_weather_forecast | 7-day forecast for any Malaysian state |
Islamic Finance + Utility
| Tool | Description |
|---|---|
| get_takaful_stats | Takaful industry metrics |
| calculate_zakat_eligibility | Live nisab + zakat on savings, gold, income |
| get_malaysia_economic_snapshot | One-call comprehensive economic overview |
Quick Start
git clone https://github.com/aliyaalias19/mcp-server-malaysia-data
cd mcp-server-malaysia-data
pip install -r requirements.txt
# Test all tools (makes real API calls)
python quickstart.py
# Test with MCP Inspector (visual UI)
pip install "mcp[cli]"
mcp dev server.py
Connect to Claude Desktop
Step 1: Find your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
Step 2: Add this configuration:
{
"mcpServers": {
"malaysia-data": {
"command": "python",
"args": ["/ABSOLUTE/PATH/TO/mcp-server-malaysia-data/server.py"]
}
}
}
Step 3: Restart Claude Desktop. You'll see malaysia-data in the tools panel.
Step 4: Ask Claude anything about Malaysian data:
"What is today's USD to MYR exchange rate?"
"Calculate my zakat: RM 45,000 savings, 60g gold, RM 8,000/month income"
"Is [company name] authorised by BNM?"
"Show me Malaysia's economic briefing with current indicators"
Connect to Cursor / VS Code
// .cursor/mcp.json or .vscode/mcp.json
{
"servers": {
"malaysia-data": {
"command": "python",
"args": ["/path/to/server.py"]
}
}
}
Connect to LangGraph Agent
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_anthropic import ChatAnthropic
async with MultiServerMCPClient({
"malaysia_data": {
"command": "python",
"args": ["/path/to/server.py"],
}
}) as client:
tools = client.get_tools()
agent = create_react_agent(
model=ChatAnthropic(model="claude-sonnet-4-6"),
tools=tools,
)
result = await agent.ainvoke({
"messages": [{
"role": "user",
"content": (
"Calculate zakat for RM 50,000 savings at current gold price. "
"Also tell me today's OPR and its impact on Islamic home financing."
)
}]
})
Example Conversations
Exchange rates:
You: What is the SGD to MYR rate right now?
Claude: [calls get_exchange_rates("SGD")]
The current SGD/MYR middle rate is 3.4721 (as of today, BNM interbank market).
Selling rate: 3.4780 | Buying rate: 3.4661
Zakat calculation:
You: I have RM 35,000 in savings, 45g of gold, and earn RM 7,500/month. Am I eligible for zakat?
Claude: [calls calculate_zakat_eligibility(35000, 45, 7500)]
[calls get_kijang_emas_price for live gold price]
Using today's gold price (RM 298/gram):
• Nisab: RM 25,330 (85g gold equivalent)
• Savings zakat: RM 875 (RM 35,000 × 2.5%) — eligible ✅
• Gold: RM 13,410 value — below nisab, no zakat due ✗
• Income zakat: RM 187.50/month (RM 7,500 × 2.5%) — eligible ✅
Total annual zakat: ~RM 3,125
Scam check:
You: Is "Alpha Investment Group" on BNM's consumer alert list?
Claude: [calls get_consumer_alert("Alpha Investment Group")]
⚠️ FOUND ON ALERT LIST — This entity is NOT authorised by BNM.
Do NOT transfer funds or invest with this company.
Report scams at: bnm.gov.my or +603-2260-8899
Architecture
Claude Desktop / Cursor / LangGraph Agent
│ MCP Protocol (JSON-RPC 2.0)
▼
┌────────────────────────────────────────┐
│ Malaysia Data MCP Server │
│ (FastMCP + Python) │
│ │
│ Tools ────────────────────────────── │
│ ├── BNM API tools (7) │
│ ├── data.gov.my tools (6) │
│ ├── Islamic finance tools (2) │
│ └── Utility tools (1) │
│ │
│ Resources ────────────────────────── │
│ ├── BNM API reference │
│ ├── Popular dataset list │
│ └── Islamic finance glossary │
│ │
│ Prompts ──────────────────────────── │
│ ├── Islamic financing analysis │
│ ├── Economic briefing │
│ └── Scam/investment check │
└────────────────────────────────────────┘
│ HTTPS
▼
┌─────────────────┐ ┌──────────────────┐
│ BNM OpenAPI │ │ data.gov.my API │
│ (apikijang...) │ │ (api.data.gov.my)│
│ No auth needed │ │ No auth needed │
└─────────────────┘ └──────────────────┘
Why This Server Matters
Most AI assistants hallucinate Malaysian financial data. They don't know today's OPR, current RON95 price, or whether a company is on BNM's alert list. This server fixes that by giving any MCP-compatible AI real-time access to authoritative Malaysian government data.
Use cases:
- Islamic finance advisory (live OPR, BFR, zakat calculations)
- Investment research (economic indicators, exchange rates)
- Scam detection (BNM consumer alert lookup)
- Journalists and researchers (live economic data)
- Malaysian fintech applications (embed in chatbots)
- Government AI systems (cite official data sources)
Related Projects
- bnm-mcp — BNM-only MCP server (inspired this project)
- mcp-datagovmy — data.gov.my MCP server
This server unifies both plus adds Islamic finance context and zakat calculations.
Citation
@misc{alias2026mcp,
title = {Malaysia Data MCP Server: Unified Malaysian Government Data for AI Assistants},
author = {Alias, Aliya},
year = {2026},
url = {https://github.com/aliyaalias19/mcp-server-malaysia-data}
}
👤 About
Built by Aliya Alias — AI Engineer, Kuala Lumpur. MSc Artificial Intelligence, University of Malaya.
MIT License. Unofficial — not affiliated with BNM, DOSM, or the Government of Malaysia.