Skip to main content
Glama
README.md
# Chile Invoice MCP 🇨🇱 — How can my AI agent issue a boleta / factura electrónica (DTE) in Chile?

<!-- install-cta -->
## Use it in 60 seconds

Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, or any MCP-capable agent):

```json
{
  "mcpServers": {
    "chile-invoice": {
      "type": "http",
      "url": "https://inv-cl.wishpool.app/mcp"
    }
  }
}
```

Nothing to install. Credentials, when you need them, travel as HTTP headers on each request and are never stored — see the [threat model](https://mcp.wishpool.app/trust).

### Or run it yourself

Would you rather not send production credentials to a server you do not control? Deploy this identical code to your own account and point your agent at your own URL:

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/junter1989k-ai/chile-invoice-mcp)

```bash
git clone https://github.com/junter1989k-ai/chile-invoice-mcp && cd chile-invoice-mcp && npx vercel --prod
```

MIT-licensed. Self-hosting removes us from the picture entirely, at no cost and with no loss of function.

---

Remote MCP server that lets any AI agent issue **Chile electronic tax documents (DTE)** — boleta electrónica (TipoDTE 39) and factura electrónica (TipoDTE 33), stamped at **SII**. **Two interchangeable backends**, auto-selected by which credential header you send (or forced with a `provider` field): [OpenFactura](https://www.openfactura.cl) (Haulmer) and [LibreDTE](https://www.libredte.cl) cloud. Stateless, bring-your-own credentials, never stores anything. Your SII certificate and CAF stay in your own provider account.

**Live endpoint:** `https://inv-cl.wishpool.app/mcp` · Registry: `app.wishpool/chile-invoice-mcp`

## Quick start

```json
{
  "mcpServers": {
    "chile-invoice": {
      "type": "http",
      "url": "https://inv-cl.wishpool.app/mcp",
      "headers": {
        "x-openfactura-key": "your-openfactura-api-key",
        "x-openfactura-mode": "production"
      }
    }
  }
}
```

Get your API key from your OpenFactura / Haulmer account (Configuración → API). Omit `x-openfactura-mode` to stay in the DEV sandbox (simulated CAF, no fiscal effect).

### Or use LibreDTE cloud instead

Send LibreDTE's headers and the server routes there automatically:

```json
{
  "mcpServers": {
    "chile-invoice": {
      "type": "http",
      "url": "https://inv-cl.wishpool.app/mcp",
      "headers": {
        "x-libredte-hash": "your-libredte-api-hash",
        "x-libredte-emisor": "76192083-9"
      }
    }
  }
}
```

`x-libredte-hash` is your API hash from your LibreDTE profile; `x-libredte-emisor` is your emisor RUT (one hash can hold several emisores). LibreDTE has **no server-side sandbox toggle** — the certification-vs-production environment is whatever your emisor is registered as in your LibreDTE account, so register a certification emisor to test safely. You can also force either backend explicitly with the tool `provider` field (`openfactura` | `libredte`). Your SII certificate and CAF stay in your own provider account — this server never sees them.

## Tools

| Tool | What it does |
|---|---|
| `create_invoice` | Emit a boleta (39, default) or factura (33) DTE — items in, `folio` out. Emisor auto-derived from your account. Boleta prices GROSS (IVA included); factura prices NET (IVA added), buyer RUT required. |
| `query_invoice` | Fetch a DTE by `document_type` + `folio`: status `ISSUED` or `ACCEPTED_BY_SII`, plus net/IVA/total (CLP). |
| `cancel_invoice` | Void a DTE by issuing a nota de crédito electrónica (TipoDTE 61, `CodRef=1` anula) referencing the original. |

Owner policy guardrails ride optional headers (`x-agentpay-max-amount`, `x-agentpay-approval-above`, `x-agentpay-allowed-tools`) — set by the human owner in client config; the agent cannot relax them.

## Develop

```bash
node test/serve.js   # local server on :3228
node test/e2e.js     # protocol + validation + fake-credential live probes against dev-api.haulmer.com (OpenFactura) and libredte.cl (LibreDTE)
```

## Safety

Pure stateless translation layer. The SII certification burden sits with your provider (OpenFactura or LibreDTE); credentials travel per-request in headers, nothing is stored. [Privacy policy](https://inv-cl.wishpool.app/privacy).

## Sister servers

Mexico CFDI 4.0 factura electrónica live: [inv-mx.wishpool.app](https://inv-mx.wishpool.app) · Local payments in 81 countries, one family: [mcp.wishpool.app](https://mcp.wishpool.app) · Taiwan e-invoice 電子發票 included. More invoice countries coming: Brazil NF-e · Peru CPE · India GST · Poland KSeF · Romania e-Factura · Italy SdI.

MIT licensed.