About mcp-afip
mcp-afip is an MCP server for AFIP, the Argentine tax authority, covering electronic invoicing (Factura Electrónica) with CAE authorization. It targets developers and finance systems that issue invoices or look up taxpayer data within AFIP. The server exposes AFIP web-service operations as MCP tools.
Key features
- 01Electronic invoice creation with CAE authorization
- 02Invoice lookup, batch creation and cancellation
- 03Credit and debit note issuance
- 04Taxpayer lookup and registration certificate retrieval
- 05Reference lookups for invoice types, taxes and currencies
Use cases
- 01Issuing electronic invoices for Argentine businesses
- 02Checking CAE authorization status and last invoice numbers
- 03Verifying a customer's CUIT tax status
MCP support
The server exposes AFIP invoicing and padrón operations to MCP clients as tools. It is currently an alpha release with endpoints not yet fully validated against live services.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @codespar/mcp-afipAFIP_CERT_PATHPath to AFIP certificate (.crt)AFIP_KEY_PATHSecretPath to AFIP private key (.key)AFIP_CUITCUIT numberLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
20Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| items | array | No | Invoice line items |
| concept | number | Yes | Concept (1=Products, 2=Services, 3=Both) |
| currency | string | No | Currency code (PES=ARS, DOL=USD) |
| doc_type | number | Yes | Document type (80=CUIT, 86=CUIL, 96=DNI, 99=Consumer Final) |
| amount_iva | number | No | IVA tax amount |
| amount_net | number | No | Net taxable amount |
| doc_number | number | Yes | Document number of the customer |
| amount_total | number | Yes | Total invoice amount |
| invoice_type | number | Yes | Invoice type code (1=A, 6=B, 11=C, etc.) |
| point_of_sale | number | Yes | Punto de venta number |
Details
From the project README@codespar/mcp-afip
MCP server for AFIP, the Argentine tax authority (Administracion Federal de Ingresos Publicos), for electronic invoicing (Factura Electronica) with CAE authorization
Alpha release — published under the
alphanpm dist-tag. Endpoint paths follow public docs and BACEN/provider conventions but have not been fully live-validated. Pin exact versions during0.x.x-alpha. Install withnpm install @codespar/mcp-afip@alpha.
Quick Start
# Set your credentials
export AFIP_CERT_PATH="/path/to/cert.crt"
export AFIP_KEY_PATH="/path/to/key.key"
export AFIP_CUIT="20123456789"
# Run via stdio
npx -y @codespar/mcp-afip@alpha
# Run via HTTP
MCP_HTTP=true MCP_PORT=3000 npx -y @codespar/mcp-afip@alpha
Environment Variables
| Variable | Required | Description |
|---|---|---|
AFIP_CERT_PATH | Yes | Path to AFIP certificate (.crt) |
AFIP_KEY_PATH | Yes | Path to AFIP private key (.key) |
AFIP_CUIT | Yes | CUIT number of the taxpayer |
AFIP_ENV | No | "production" or "homologation" (default: homologation) |
MCP_HTTP | No | Set to "true" to enable HTTP transport |
MCP_PORT | No | HTTP port (default: 3000) |
Tools (20)
| Tool | Purpose |
|---|---|
create_invoice | Create an electronic invoice (Factura Electrónica) via AFIP |
get_invoice | Get invoice details by type, point of sale, and number |
get_last_invoice_number | Get last authorized invoice number for a point of sale and type |
get_cae_status | Check CAE authorization status for an invoice |
list_invoice_types | List available invoice types (Factura A, B, C, etc.) |
list_tax_types | List available tax types (IVA, percepciones, retenciones, etc.) |
get_server_status | Check AFIP web-service availability (WSFE status) |
get_authorized_points_of_sale | List authorized puntos de venta for the CUIT |
create_invoice_batch | Create a batch of invoices in a single CAE request (FECAESolicitar, up to 250) |
create_credit_note | Issue a credit note (Nota de Crédito A/B/C: types 3, 8, 13) referencing an original invoice |
create_debit_note | Issue a debit note (Nota de Débito A/B/C: types 2, 7, 12) referencing an original invoice |
cancel_invoice | Cancel/void an authorized invoice (FECancel — limited to certain types/conditions) |
get_invoice_total_x_request | Max number of records allowed per FECAESolicitar request (FECompTotXRequest) |
list_concept_types | List available concept types (FEParamGetTiposConcepto: 1=Products, 2=Services, 3=Both) |
list_doc_types | List document/identifier types (FEParamGetTiposDoc: 80=CUIT, 86=CUIL, 96=DNI, 99=Consumer Final) |
list_iva_types | List IVA tax aliquots (FEParamGetTiposIva: 21%, 10.5%, 27%, 0%, etc.) |
list_currency_types | List supported currencies (FEParamGetTiposMonedas) |
get_currency_rate | Get FX rate (cotización) for a currency vs ARS (FEParamGetCotizacion) |
lookup_taxpayer | Padrón lookup by CUIT (WS_SR_PADRON A4/A5/A13 — fiscal status, name, address) |
get_registration_certificate | Get constancia de inscripción (registration certificate) for a CUIT |
Auth
Uses certificate-based WSAA authentication (SOAP). The MCP server wraps AFIP's SOAP services (WSFE) internally using a REST approach. You need a valid certificate issued by AFIP. For testing, use the homologation environment.
API Reference
Enterprise
Need governance, budget limits, and audit trails for agent payments? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.
Authentication
Set these environment variables before launching the server:
AFIP_CERT_PATH(required) — Path to AFIP certificate (.crt)AFIP_KEY_PATH(required, secret) — Path to AFIP private key (.key)AFIP_CUIT(required) — CUIT number
Issue credentials at the provider's developer portal: https://www.afip.gob.ar/ws.
License
MIT
Comments
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.