Skip to main content
Glama
ntu254

Vietnam Tax & Legal MCP Server

by ntu254

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 authority

If the system cannot prove a legal conclusion with verified official snapshot evidence:

answerable = false

Related 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 Agent

Tool

Purpose

Key Input

latest_tax_updates

Retrieve recent legal events and status changes (published, effective, amended, repealed)

topic, days, event_types, limit

search_legal_docs

Search legal documents by keywords, document number, issuer, and tax topics

query, document_number, topics

get_legal_document

Retrieve full canonical details (provisions, sources, snapshots, relationships)

document_id (UUID or Canonical ID)

get_effective_tax_rules

Retrieve effective rules & official guidance evaluated at effective_at (Asia/Ho_Chi_Minh)

query, effective_at, topics, include_official_guidance


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.json

5. Getting Started

Prerequisites

  • Node.js 20+

  • pnpm 10+

  • Docker & Docker Compose

Local Development

  1. Install dependencies:

    pnpm install
  2. Run tests:

    pnpm test
  3. Start infrastructure via Docker Compose:

    docker compose up -d postgres minio
  4. Run migrations:

    pnpm db:migrate
  5. Start MCP Server locally (stdio mode):

    pnpm mcp

6. Production Security & Secret Hygiene

Secret Management

  • Zero Default Credentials: Never deploy with local sandbox credentials (minioadmin/minioadmin or postgres: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=require on DATABASE_URL and https:// for OBJECT_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=false is mandatory in production.


7. Quality Metrics & Benchmark Verification

Run the CI quality dashboard directly:

pnpm metrics

Execute full backup and 100% object storage integrity scan:

pnpm backup:test

Run live E2E 4-tools verification:

pnpm exec tsx --env-file=.env scripts/test-mcp-live.ts

8. License

Internal / Proprietary production specification.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI assistants with up-to-date legal documents from official sources, enabling accurate legal information retrieval and analysis.
    18
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to search and retrieve Korean laws, regulations, administrative rules, legal interpretations, and precedents via official APIs for legal review workflows.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    1
    MIT