Vietnam Tax & Legal MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vietnam Tax & Legal MCP ServerWhat is the current VAT rate on goods and services?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vietnam Tax & Legal MCP Server
Production-Grade Legal and Tax Retrieval Infrastructure for AI Agents
Jurisdiction: Vietnam (Asia/Ho_Chi_Minh)
Target Domains: Thuế (VAT, CIT, PIT, FCT...), Kế toán, Hóa đơn điện tử, Quản lý thuế, Doanh nghiệp & Hải quan.
Specification: v1.1 Practical / Consistent
1. Core Safety Invariants
This system is built around strict legal data invariants:
draft != effective
issued != effective
latest != currently applicable
semantic similarity != legal authority
LLM inference != legal evidence
document-level validity != every provision validity
source authority != legal/instrument authorityIf the system cannot prove a legal conclusion with verified official snapshot evidence:
answerable = falseRelated MCP server: Law7 MCP
2. Architecture & Components
OFFICIAL SOURCES
(Công báo CP, VBPL, Bộ Tài chính...)
│
▼
packages/ingestion (Connectors + Checkpoints)
│
▼
packages/source-storage (MinIO / S3 Immutable Snapshots)
│
▼
packages/parser (Metadata + Điều/Khoản + Evidence)
│
▼
packages/canonicalization (Deduplication + Canonical ID)
│
▼
packages/verification (Rules A, B, C, D + Conflict Checks)
│
┌────────────────┴────────────────┐
▼ ▼
packages/legal-state packages/search
status_at(document/provision, date) Exact + PostgreSQL FTS
│ │
└────────────────┬────────────────┘
▼
packages/legal-query
│
▼
apps/mcp-server
(stdio / streamable HTTP)
│
▼
AI Agent3. The 4 MCP Legal Tools (MVP)
Tool | Purpose | Key Input |
| Retrieve recent legal events and status changes (published, effective, amended, repealed) |
|
| Search legal documents by keywords, document number, issuer, and tax topics |
|
| Retrieve full canonical details (provisions, sources, snapshots, relationships) |
|
| Retrieve effective rules & official guidance evaluated at |
|
4. Repository Structure
mcp-ai-tax/
├── apps/
│ ├── mcp-server/ # MCP Server (stdio / HTTP)
│ └── worker/ # Periodic Ingestion Worker
│
├── packages/
│ ├── common/ # Taxonomies, Types, Result Contracts, Errors
│ ├── observability/ # Structured logger (pino) & Audit trail
│ ├── db/ # Drizzle ORM Schema (13 tables) & PostgreSQL Client
│ ├── source-storage/ # S3/MinIO Client, Hasher (SHA-256), Snapshot Manager
│ ├── canonicalization/ # Canonical ID (VN:ND:...) & Deduplication Engine
│ ├── parser/ # Metadata & Provisions (Điều/Khoản) & Evidence
│ ├── ingestion/ # Source Connectors (Công báo RSS), Checkpoints
│ ├── verification/ # Verification Engine (Rules A, B, C, D)
│ ├── legal-state/ # Temporal Legal State Engine (status_at)
│ ├── search/ # Exact number match & PostgreSQL FTS
│ └── legal-query/ # Core Query Orchestration Service
│
├── migrations/ # Initial SQL Migrations
├── tests/
│ ├── golden/ # Acceptance Golden Scenarios
│ └── unit/ # Unit Tests (Parser, Verification, Canonicalization)
│
├── docker/ # Multi-stage Dockerfile
├── docker-compose.yml # PostgreSQL 17, MinIO, MCP Server & Worker
├── package.json
├── pnpm-workspace.yaml
└── tsconfig.json5. Getting Started
Prerequisites
Node.js 20+
pnpm 10+
Docker & Docker Compose
Local Development
Install dependencies:
pnpm installRun tests:
pnpm testStart infrastructure via Docker Compose:
docker compose up -d postgres minioRun migrations:
pnpm db:migrateStart MCP Server locally (stdio mode):
pnpm mcp
6. Production Security & Secret Hygiene
Secret Management
Zero Default Credentials: Never deploy with local sandbox credentials (
minioadmin/minioadminorpostgres:postgres).Secret Injection: In production, inject credentials at container launch via AWS Secrets Manager, HashiCorp Vault, or Kubernetes Secrets.
TLS/SSL Encryption: Enforce encrypted transport (
sslmode=requireonDATABASE_URLandhttps://forOBJECT_STORAGE_ENDPOINT).Private Subnets: Deploy database and object storage inside private VPC subnets with no public ingress.
SSRF Defense: The ingestion connector strictly enforces official government domain allowlists (
congbao.chinhphu.vn,*.mof.gov.vn, etc.) and re-validates each redirect hop.ALLOW_LOCAL_FETCH=falseis mandatory in production.
7. Quality Metrics & Benchmark Verification
Run the CI quality dashboard directly:
pnpm metricsExecute full backup and 100% object storage integrity scan:
pnpm backup:testRun live E2E 4-tools verification:
pnpm exec tsx --env-file=.env scripts/test-mcp-live.ts8. License
Internal / Proprietary production specification.
This server cannot be deployed
Maintenance
Related MCP Connectors
Vietnam public-tender search and e-invoice XML normalizer for AI agents (pay per use).
Vietnam MISA meInvoice: AI agents create, publish and query e-invoices, stateless BYO.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables real-time search and analysis of Korean laws, legal precedents, and administrative rules through the National Law Information Center Open API, allowing AI agents to access official legal information for contract review, compliance, and legal research.75-
- AlicenseNot gradedqualityBmaintenanceProvides AI assistants with up-to-date legal documents from official sources, enabling accurate legal information retrieval and analysis.18AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search and retrieve Korean laws, regulations, administrative rules, legal interpretations, and precedents via official APIs for legal review workflows.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to retrieve current Korean tax statutes, judicial precedents, and tax authority interpretations via MCP, with daily-updated legislative history and full-text search.1MIT