Vietnam Tax & Legal MCP Server
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 = false2. 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. License
Internal / Proprietary production specification.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ntu254/mcp-ai-tax-vietnam'
If you have feedback or need assistance with the MCP directory API, please join our Discord server