El Salvador Dte
БесплатноНе проверенProvides tools for El Salvador electronic invoicing (DTE), including IVA calculation, document-type catalog, and DUI/NIT validation.
Описание
Provides tools for El Salvador electronic invoicing (DTE), including IVA calculation, document-type catalog, and DUI/NIT validation.
README
A small, focused Model Context Protocol (MCP) server that exposes El Salvador electronic invoicing (DTE) and fiscal helpers as tools an LLM can call: IVA calculation, the official DTE document-type catalog, and DUI / NIT validation.
Built with the official @modelcontextprotocol/sdk for TypeScript, ESM, Node 18+, and the stdio transport.
- Author: Gerar Arévalo — github.com/Gerar12 · gcoder.dev
- License: MIT
What it is
The Documento Tributario Electrónico (DTE) is El Salvador's mandatory electronic invoicing standard, administered by the Ministerio de Hacienda. This server bundles a few pure, deterministic helpers that come up constantly when building DTE integrations, and makes them available to any MCP-capable client (Claude Desktop, Claude Code, etc.).
Tools
| Tool | Input | Output |
|---|---|---|
calculate_iva |
{ amount: number, includesIva?: boolean } |
{ subtotal, iva, total } |
list_dte_types |
(none) | { types: [{ code, name }] } |
validate_dui |
{ dui: string } |
{ valid, reason? } |
validate_nit |
{ nit: string } |
{ valid, normalized, reason? } |
calculate_iva
El Salvador IVA (VAT) is 13%.
includesIva = false(default):amountis the net subtotal; IVA is added on top.includesIva = true:amountalready includes IVA; it is broken out.
Values are rounded to 2 decimals, and subtotal + iva === total always holds.
// input
{ "amount": 100 }
// output
{ "subtotal": 100, "iva": 13, "total": 113 }
// input
{ "amount": 113, "includesIva": true }
// output
{ "subtotal": 100, "iva": 13, "total": 113 }
list_dte_types
Returns the 11 official DTE document types (code — name):
| Code | Name |
|---|---|
| 01 | Factura (Consumidor Final) |
| 03 | Comprobante de Crédito Fiscal (CCF) |
| 04 | Nota de Remisión |
| 05 | Nota de Crédito |
| 06 | Nota de Débito |
| 07 | Comprobante de Retención |
| 08 | Comprobante de Liquidación |
| 09 | Documento Contable de Liquidación |
| 11 | Factura de Exportación |
| 14 | Factura de Sujeto Excluido |
| 15 | Comprobante de Donación |
// output (abridged)
{ "types": [ { "code": "01", "name": "Factura (Consumidor Final)" }, ... ] }
validate_dui
Validates a Salvadoran DUI (Documento Único de Identidad): 8 digits, a hyphen, then 1 check digit (e.g. 01234567-8).
It checks the format and the modulo-10 check digit. The 8 base digits are weighted 9, 8, 7, 6, 5, 4, 3, 2 (left to right); the expected check digit is (10 - (weightedSum % 10)) % 10.
// input
{ "dui": "01234567-8" }
// output
{ "valid": true }
// input
{ "dui": "01234567-9" }
// output
{ "valid": false, "reason": "Invalid check digit: expected 8, got 9" }
Honesty note on the DUI check digit. The modulo-10 algorithm above is a widely-used community algorithm and was verified in this repo against known-valid DUIs (
00016297-5,01234567-8). It is not reproduced from an official, government-published specification. If your use case is high-stakes (e.g. legally rejecting a real person's ID), treat avalid: falsefrom the check-digit test as "likely a typo, please re-check" rather than an authoritative rejection. The format check (^\d{8}-\d$) is unambiguous; the check-digit step is best-effort.
validate_nit
Validates the format only of an El Salvador NIT (Número de Identificación Tributaria): 14 digits, commonly formatted NNNN-NNNNNN-NNN-N. Input is accepted with or without hyphens/whitespace, and a canonically hyphenated normalized value is returned.
// input
{ "nit": "06141234560012" }
// output
{ "valid": true, "normalized": "0614-123456-001-2" }
Honesty note on NIT. This is format/length validation only — it does not verify a check digit. NIT check-digit rules are not consistently documented in public sources, so shipping a check-digit validator here would imply a correctness guarantee that cannot be honestly backed up. A
valid: truemeans "well-formed", not "issued by Hacienda".
Install
Requires Node.js 18+.
# clone, then:
npm install
npm run build
Run the tests (unit tests for the pure functions + an stdio smoke test that boots the server and performs a full MCP handshake):
npm test
Start the server manually (it speaks JSON-RPC over stdio and waits for a client):
npm start
# or
node build/index.js
Run with npx (after publishing to npm)
npx mcp-el-salvador-dte
Add to Claude Desktop
Edit your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"el-salvador-dte": {
"command": "node",
"args": ["/absolute/path/to/mcp-el-salvador-dte/build/index.js"]
}
}
}
Once published to npm you can instead use:
{
"mcpServers": {
"el-salvador-dte": {
"command": "npx",
"args": ["-y", "mcp-el-salvador-dte"]
}
}
}
Restart Claude Desktop, and the four tools will appear.
Add to Claude Code
# local build
claude mcp add el-salvador-dte -- node /absolute/path/to/mcp-el-salvador-dte/build/index.js
# or, after publishing to npm
claude mcp add el-salvador-dte -- npx -y mcp-el-salvador-dte
Project layout
src/lib.ts Pure, side-effect-free domain logic (unit-tested directly)
src/index.ts MCP server: registers the 4 tools over stdio
test/ node:test unit tests + stdio smoke test
License
MIT © 2026 Gerar Arévalo
Установка El Salvador Dte
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Gerar12/mcp-el-salvador-dteFAQ
El Salvador Dte MCP бесплатный?
Да, El Salvador Dte MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для El Salvador Dte?
Нет, El Salvador Dte работает без API-ключей и переменных окружения.
El Salvador Dte — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить El Salvador Dte в Claude Desktop, Claude Code или Cursor?
Открой El Salvador Dte на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare El Salvador Dte with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
