mcpField
H
Hacienda Costa Rica

Hacienda Costa Rica

Local
github.com/jmnzcnFinance0Updated 1d ago

About Hacienda Costa Rica

mcp-hacienda-cr connects MCP clients to Costa Rica's Ministry of Finance public data, including exchange rates, taxpayer status, CABYS codes with VAT, and tax exemptions. It targets e-invoicing workflows; its tools are read-only, require no API key, and return text plus structured data.

Key features

  1. 01Query dollar and euro reference rates
  2. 02Check taxpayer registration and tax status
  3. 03Search CABYS codes and VAT by description
  4. 04Retrieve CABYS code details
  5. 05Inspect exemption beneficiaries, rates, and validity

Use cases

  1. 01Find a CABYS code and VAT rate for an invoice item
  2. 02Verify a company's tax status before invoicing
  3. 03Check today's exchange rate or an exemption's validity

MCP support

The MCP server exposes read-only queries to Costa Rica's Ministry of Finance public APIs as tools for MCP clients, using stdio transport.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"jmnzcn-mcp-hacienda-cr": {
"command": "npx",
"args": [
"-y",
"mcp-hacienda-cr"
]
}
}
}
Run commandnpx -y mcp-hacienda-cr

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-hacienda-cr0.1.1

Tools

5

Saved tool list · updated 3d ago

This tool takes no parameters.

Details

From the project README

🇨🇷 mcp-hacienda-cr

Servidor MCP que conecta a Claude, Cursor y otros asistentes de IA con los datos públicos del Ministerio de Hacienda de Costa Rica: tipo de cambio, situación tributaria de contribuyentes, códigos CABYS con su IVA y exoneraciones. Pensado para la facturación electrónica.

ci npm MCP License

English summary · Herramientas · Instalación · Cómo funciona

Demo: MCP Inspector llamando a tipo_de_cambio, buscar_cabys y consultar_contribuyente

Grabado con MCP Inspector contra la API real de Hacienda: tipo de cambio de hoy, códigos CABYS de "café tostado" con su IVA y la situación tributaria de la CNFL.


💬 Qué puedes preguntarle a tu asistente

"¿Qué código CABYS uso para vender café tostado y cuánto IVA lleva?"

Hay 71 códigos para café tostado. Por ejemplo, 2391102010100 (café tostado sin descafeinar, en grano) paga IVA 1%, pero 2391102020000 (café tostado descafeinado) paga IVA 13%.

"Antes de facturarle, ¿la empresa 3-101-000046 está al día con Hacienda?"

COMPAÑIA NACIONAL DE FUERZA Y LUZ S.A. · Cédula jurídica · Inscrita en el régimen general · al día (no morosa ni omisa) · Actividad principal: 3510.0, generación, transmisión y distribución de energía eléctrica.

"¿A cuánto está el dólar hoy?" · "¿La exoneración AL-00020402-24 sigue vigente?"

Son respuestas reales del servidor contra la API de Hacienda.


🧰 Herramientas

HerramientaQué haceEjemplo de entrada
tipo_de_cambioTipo de cambio de referencia de hoy: dólar (compra/venta) y euro—
consultar_contribuyenteNombre, tipo de identificación, régimen, estado, si está moroso u omiso y actividades económicas3-101-000046
buscar_cabysBusca códigos CABYS por descripción, con su tarifa de IVAcafé tostado
obtener_cabysDetalle de un código CABYS: IVA y jerarquía de categorías0161001010000
consultar_exoneracionBeneficiario, porcentaje, vigencia y CABYS cubiertos de una exoneraciónAL-00020402-24

Todas son de solo lectura (readOnlyHint) y usan APIs públicas de Hacienda: no necesitan registro, token ni API key.


📦 Instalación

Requiere Node.js 18 o superior.

Claude Desktop

En claude_desktop_config.json (Configuración → Desarrollador → Editar configuración):

{
  "mcpServers": {
    "hacienda-cr": {
      "command": "npx",
      "args": ["-y", "mcp-hacienda-cr"]
    }
  }
}
Claude Code
claude mcp add hacienda-cr -- npx -y mcp-hacienda-cr
Cursor, VS Code y otros clientes MCP

Usa el comando npx -y mcp-hacienda-cr con transporte stdio.


⚙️ Cómo funciona

flowchart LR
    U["Tú"] --> A["Asistente de IA<br/>(Claude, Cursor…)"]
    A -- "MCP (stdio)" --> S["mcp-hacienda-cr"]
    S -- "HTTPS" --> H["api.hacienda.go.cr"]
  • TypeScript con el SDK oficial de MCP; cada herramienta valida su entrada con Zod.
  • Respuestas dobles: texto legible para la conversación y structuredContent para que el modelo trabaje con datos exactos.
  • Errores pensados para el usuario: una cédula con formato inválido, un código inexistente o la API de Hacienda caída se responden con un mensaje claro, no con una excepción.
  • Caché en memoria: 10 minutos para el tipo de cambio y 1 hora para el resto, para no saturar la API de Hacienda.
  • Validación local antes de llamar a la API: cédula física (9 dígitos), jurídica o NITE (10) y DIMEX (11–12); código CABYS de 13 dígitos.
Calidad
25 tests unitariosCliente de la API y servidor MCP completo (con un cliente MCP real en memoria), usando respuestas reales de Hacienda grabadas
Tests de contrato en vivoContra api.hacienda.go.cr: detectan si Hacienda cambia el formato de sus respuestas
Prueba de humo por stdioLevanta el servidor compilado como lo haría Claude y llama a las 5 herramientas
CINode 18, 20 y 22 en cada push; contrato en vivo también cada lunes, para enterarse antes que los usuarios si la API cambia
npm install
npm test            # unitarios (sin red)
npm run test:live   # contrato con la API real de Hacienda
npm run smoke       # servidor compilado por stdio, de punta a punta

⚠️ Aviso

Los datos provienen de las APIs públicas del Ministerio de Hacienda y son de referencia. Este proyecto no está afiliado al Ministerio de Hacienda. Confirma las decisiones fiscales con un contador o directamente con Hacienda.


🇺🇸 English summary

mcp-hacienda-cr is a Model Context Protocol server that lets AI assistants (Claude, Cursor, …) query Costa Rica's Ministry of Finance public APIs: official exchange rates, taxpayer status (registered, delinquent or non-filer, economic activities), CABYS product/service codes with their VAT rate, and tax exemptions. It targets e-invoicing, where every invoice line needs a CABYS code and the right VAT rate.

No API keys needed. TypeScript + the official MCP SDK, Zod-validated inputs, text plus structured output, friendly errors, in-memory caching, 25 unit tests, live contract tests, a stdio smoke test, and CI on Node 18/20/22 with a weekly live run.

claude mcp add hacienda-cr -- npx -y mcp-hacienda-cr

Ney Fred Jiménez Campos · LinkedIn · GitHub · MIT License

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.