Install
$ agentstack add mcp-dannyota-banhmi ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
🥖 banhmi · 🍜 laksa · 🍛 rendang
Evidence-only RAG corpus + MCP server for banking & financial regulation and cross-cutting technology law — one codebase, one corpus per country.
Vietnam → banhmi.danny.vn · Malaysia → laksa.danny.vn · Indonesia → rendang.danny.vn · [Docs](docs/README.md) · [Architecture](docs/ARCHITECTURE.md) · [Plan](PLAN.md)
[](LICENSE) [](go.mod) [](https://modelcontextprotocol.io) [](https://banhmi.danny.vn) [](https://laksa.danny.vn) [](https://rendang.danny.vn)
banhmi crawls official government sources, extracts legal documents into a citable RAG corpus, and serves evidence over MCP — exact citations, validity, amendment relations, provenance, and coverage gaps. Multi-jurisdiction: Vietnam (banhmi), Malaysia (laksa) and Indonesia (rendang) are live; Thailand and Singapore are planned.
> banhmi does not answer questions. Your agent/model connects over MCP, retrieves citations and > validity, and decides the answer. No built-in LLM — repealed/superseded text is badged, never served > as current.
Use it over MCP — live, free, no signup
Remote MCP (Streamable HTTP), public, HTTPS, no key:
| Jurisdiction | MCP endpoint | Ask in | Official sources | |---|---|---|---| | 🥖 Vietnam | https://banhmi.danny.vn/mcp | English or Vietnamese | VBPL · Công Báo · vanban.chinhphu · SBV | | 🍜 Malaysia | https://laksa.danny.vn/mcp | English | AGC Laws of Malaysia · Bank Negara Malaysia · Securities Commission | | 🍛 Indonesia | https://rendang.danny.vn/mcp | Indonesian | JDIH BPK · Bank Indonesia · OJK |
Add as a custom connector (pick an endpoint above):
- Claude (Pro/Max/Team/Enterprise) → Settings → Connectors → Add custom connector → paste URL, no auth.
- ChatGPT (Plus/Pro/Team/Edu) → Developer mode → Settings → Apps & Connectors → Add → paste URL, no auth.
- Grok → Settings → Connectors → Add MCP server → paste URL.
- Gemini CLI → add under
mcpServersin~/.gemini/settings.json(httpUrl= endpoint).
No account or API key needed. Ask e.g. "What are the technology risk management requirements for banks?" — you get ranked provisions with citation, validity badge, and official source link.
Tools: search · document · corpus_status · quality_gaps · guide.
What it does
- Scope-filtered discovery of banking & financial regulation and cross-cutting technology law
(e.g. cybersecurity, data protection, AI, cloud, e-transactions, payments, digital banking).
- Verbatim authoritative sources — reconciled into one document per act, never paraphrased.
- High-fidelity extraction — go-fitz (MuPDF) for DOCX/HTML/born-digital PDF; Google Vision OCR or
EasyOCR (batched, cached) for scanned PDFs.
- Evidence, not answers — exact citations (VN Điều/Khoản, MY Section/Subsection, ID Pasal/ayat),
validity badges, confirmed relations, provenance, and gaps.
- Change tracking — amendments, repeals, subsidiary legislation, validity over time.
- MCP query surface — any agent connects, retrieves evidence, decides the answer.
Official data sources
Public legal data, crawled politely. Sources are pluggable — add your own under pkg/ingest/. See [docs/design/SOURCES.md](docs/design/SOURCES.md) and [docs/design/jurisdictions/](docs/design/jurisdictions/README.md).
🥖 Vietnam (banhmi)
| Source | Operator | Provides | |---|---|---| | vbpl.vn | National legal database — Bộ Tư pháp | Discovery, DOCX/DOC/PDF/HTML, article structure, relation graph, validity | | congbao.chinhphu.vn | Official Gazette — Văn phòng Chính phủ | New-document RSS + born-digital PDF/DOCX | | vanban.chinhphu.vn | Government legal DB | Freshest central-law feed | | sbv.hanoi.gov.vn | State Bank of Vietnam portal | Supplementary SBV sweep (merged by số ký hiệu) |
🍜 Malaysia (laksa)
| Source | Operator | Provides | |---|---|---| | lom.agc.gov.my | Attorney General's Chambers — Laws of Malaysia | Federal Acts (born-digital PDF), validity, P.U. relations | | bnm.gov.my | Bank Negara Malaysia | Policy documents & guidelines (RMiT, cloud, e-KYC, payments, …) | | sc.com.my | Securities Commission Malaysia | Capital-market technology guidelines |
🍛 Indonesia (rendang)
| Source | Operator | Provides | |---|---|---| | peraturan.bpk.go.id | BPK JDIH — national legal database | UU/PP/Perpres/PMK + BSSN, LPS, PPATK, Kominfo/Komdigi with the repeal graph — a full sweep of 12 regulation types | | jdih.bi.go.id | Bank Indonesia JDIH | PBI and PADG (payment systems, monetary policy) | | ojk.go.id | Otoritas Jasa Keuangan | Full POJK + SEOJK catalogue (born-digital PDFs) | | jdih.ojk.go.id | OJK JDIH | POJK/SEOJK metadata + relation/status detail |
Architecture
flowchart TB
subgraph LOCAL["cmd/pipeline (CPU) — per jurisdiction"]
DISC["Discover · scope-filtered"] --> DL["Fetch official files"]
DL --> EXT["Extract · go-fitz / Vision OCR"]
EXT --> NORM["Normalize · structure · validity · relations"]
NORM --> IDX["Index · chunks + Qwen3-Embedding (Kaggle T4)"]
end
subgraph RDS["AWS RDS · PostgreSQL 17 (Singapore) — one instance, one DB per country"]
PGVN[("banhmi DB")]
PGMY[("laksa DB")]
PGID[("rendang DB")]
end
subgraph ECS["AWS ECS on EC2 Graviton (ap-southeast-1) · same VPC as RDS"]
MCPVN["banhmi-mcp"]
MCPMY["laksa-mcp"]
MCPID["rendang-mcp"]
end
IDX -->|write corpus over TLS| RDS
MCPVN -->|hybrid search · current-law filter| PGVN
MCPMY --> PGMY
MCPID --> PGID
CF["CloudFront · banhmi / laksa / rendang .danny.vn"] --> MCPVN & MCPMY & MCPID
USERS["your agents — decide the answerClaude · ChatGPT · Gemini · Grok"] -->|remote MCP| CF
Medallion pipeline (Bronze → Silver → Gold):
- Discover → Fetch (Bronze): scope-filtered crawl; download raw files.
- Extract → Normalize (Silver): go-fitz / MuPDF (scanned PDFs via Vision OCR / EasyOCR, batched
and cached); parse provision tree, validity, relations.
- Index (Gold): chunk by article + Qwen3-Embedding (ONNX FP16, 1024 dims) into pgvector.
Hybrid retrieval — dense vectors + BM25 sparse vectors (sparsevec), RRF-fused with a query router, current-law pre-filter.
- Serve: AWS CloudFront → ECS on EC2 Graviton (in-process Qwen3-Embedding ONNX), same VPC as
RDS (Singapore, PG17). Each domain's GET / serves a guide page; /mcp serves agents.
See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
Status
MVP1 — three jurisdictions live. Validation and hardening ongoing.
| Jurisdiction | Endpoint | Sources | Status | |---|---|---|---| | 🥖 Vietnam | banhmi.danny.vn/mcp | vbpl · congbao · vanban · SBV | Live | | 🍜 Malaysia | laksa.danny.vn/mcp | AGC LOM · BNM · SC | Live | | 🍛 Indonesia | rendang.danny.vn/mcp | BPK · BI · OJK (×2) | Live | | 🇸🇬 Singapore | — | — | Proposed | | 🇹🇭 Thailand | — | — | Proposed |
See [PLAN.md](PLAN.md) for the roadmap.
Self-host
Everything runs in podman — full guide in [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md).
cp config/config.example.yaml config/config.yaml
export BANHMI_DATABASE_PASSWORD=banhmi
make dev-up # Postgres+pgvector
make migrate # apply schema
go run ./cmd/seed # load config vocabularies
Build the corpus and serve MCP per [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md). A fresh clone reaches ingesting + serving with no API keys. Deploy via [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md).
Documentation
- [Architecture](docs/ARCHITECTURE.md) — design, data model, folder layout, interfaces
- [Local development](docs/DEVELOPMENT.md) — dev stack, migrations, build/run/test
- [Deployment](docs/DEPLOYMENT.md) — generic 3-part deploy (worker · database · MCP)
- [Plan](PLAN.md) — roadmap, phases, open decisions
- [Sources](docs/design/SOURCES.md) · [Pipeline](docs/design/PIPELINE.md) · [Schema](docs/design/SCHEMA.md) · [Extraction](docs/design/EXTRACTION.md) · [RAG](docs/design/RAG.md) · [Workflow Eval](docs/design/WORKFLOW-EVAL.md)
- [Jurisdictions](docs/design/jurisdictions/README.md) — country registry ·
[playbook](docs/design/jurisdictions/PLAYBOOK.md) · [Malaysia](docs/design/jurisdictions/MALAYSIA.md) · [Indonesia](docs/design/jurisdictions/INDONESIA.md) / [Thailand](docs/design/jurisdictions/THAILAND.md) / [Singapore](docs/design/jurisdictions/SINGAPORE.md)
- [Documentation index](docs/README.md)
License
[Apache 2.0](LICENSE).
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: dannyota
- Source: dannyota/banhmi
- License: Apache-2.0
- Homepage: https://banhmi.danny.vn
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.