hacienda-cr MCP Server
hacienda-cr — Электронное выставление счетов Коста-Рика
Самый полный инструментарий с открытым исходным кодом для электронного выставления счетов в Коста-Рике.
SDK + CLI + MCP-сервер для выпуска электронных документов через API v4.4 Министерства финансов.
Почему hacienda-cr?
Выставление электронных счетов в Коста-Рике не должно быть головной болью. Между аутентификацией OAuth2, генерацией XML с определёнными пространствами имён, цифровой подписью XAdES-EPES, числовым ключом из 50 цифр и опросом статуса... слишком много случайной сложности.
hacienda-cr решает всё это в одном инструментарии:
SDK — библиотека TypeScript со строгой типизацией: аутентификация, XML, цифровая подпись, расчёт НДС, отправка и запрос.
CLI — инструмент командной строки
haciendaдля выпуска, подписания, проверки и запроса из терминала.MCP Server — сервер Model Context Protocol, чтобы ИИ-ассистенты (Claude и др.) могли выставлять счета за вас.
Работает со всеми 7 типами документов + Сообщение получателя. Совместим с песочницей и продакшеном.
Related MCP server: mcp-sii
Начните за 2 минуты
Вариант 1: SDK (для разработчиков)
npm install @dojocoding/hacienda-sdkimport { HaciendaClient, DocumentType, Situation } from "@dojocoding/hacienda-sdk";
// 1. Crear el cliente
const client = new HaciendaClient({
environment: "sandbox",
credentials: {
idType: "02", // Cédula Jurídica
idNumber: "3101234567",
password: process.env.HACIENDA_PASSWORD!,
},
});
// 2. Autenticarse
await client.authenticate();
// 3. Generar la clave numérica
const clave = client.buildClave({
date: new Date(),
taxpayerId: "3101234567",
documentType: DocumentType.FACTURA_ELECTRONICA,
sequence: 1,
situation: Situation.NORMAL,
});
// 4. Construir XML, firmar y enviar (ver ejemplo completo abajo)Вариант 2: CLI (для выставления счетов из терминала)
npm install -g @dojocoding/hacienda-cli
# Autenticarse
hacienda auth login --cedula-type 02 --cedula 3101234567
# Crear borrador interactivo
hacienda draft --interactive
# Validar antes de enviar
hacienda validate factura.json
# Enviar (vista previa primero)
hacienda submit factura.json --dry-run
# Consultar contribuyente
hacienda lookup 3101234567Вариант 3: MCP Server (для ИИ-ассистентов)
npm install -g @dojocoding/hacienda-mcp
hacienda-mcpВы можете сказать Клоду: "Создай счёт от Mi Empresa S.A. (ID 3101234567) для Cliente S.R.L. (ID 3109876543) за 2 часа консалтинга по ₡50 000 каждый с НДС 13%."
Поддерживаемые типы документов
Код | Тип документа | Builder из SDK |
| Электронный счёт-фактура |
|
| Электронный дебетовый авизо |
|
| Электронный кредитовый авизо |
|
| Электронный чек |
|
| Электронный счёт-фактура на покупку |
|
| Электронный экспортный счёт-фактура |
|
| Электронная квитанция об оплате |
|
— | Сообщение получателя (принятие/отклонение) |
|
Содержание
SDK — Полная документация
HaciendaClient
Основная точка входа. Оркестрирует аутентификацию, генерацию ключей и операции с API.
import { HaciendaClient } from "@dojocoding/hacienda-sdk";
const client = new HaciendaClient({
// Requerido
environment: "sandbox", // "sandbox" | "production"
credentials: {
idType: "02", // "01"=Física, "02"=Jurídica, "03"=DIMEX, "04"=NITE
idNumber: "3101234567", // Cédula de 9-12 dígitos
password: process.env.HACIENDA_PASSWORD!,
},
// Opcional
p12Path: "/ruta/al/certificado.p12", // Para firma digital
p12Pin: process.env.HACIENDA_P12_PIN, // PIN del .p12
fetchFn: customFetch, // Implementación fetch personalizada
});Параметры проверяются при создании экземпляра с помощью Zod. Если что-то не так, выбрасывается ValidationError с понятными деталями.
Аутентификация OAuth2
Hacienda использует OAuth2 ROPC (Resource Owner Password Credentials). SDK автоматически управляет всем жизненным циклом токена.
// Autenticarse (obtiene access + refresh token)
await client.authenticate();
// Verificar estado
console.log(client.isAuthenticated); // true
// Obtener token válido (refresca automáticamente si expiró)
const token = await client.getAccessToken();
// Forzar re-autenticación
client.invalidate();
await client.authenticate();Жизненный цикл токена:
Access token истекает через ~5 минут (кэшируется в памяти, обновляется за 30 секунд до истечения)
Refresh token действует ~10 часов
getAccessToken()прозрачно обрабатывает обновление
Среды Hacienda:
Среда | Базовый URL API | IDP Realm | Client ID |
|
|
|
|
|
|
|
|
Создание документов
Полный пример электронного счёта-фактуры — поток одинаков для остальных типов:
import {
buildFacturaXml,
calculateLineItemTotals,
calculateInvoiceSummary,
buildClave,
DocumentType,
Situation,
} from "@dojocoding/hacienda-sdk";
import type { LineItemInput } from "@dojocoding/hacienda-sdk";
// 1. Definir las líneas de detalle
const lineas: LineItemInput[] = [
{
numeroLinea: 1,
codigoCabys: "8310100000000", // Código CABYS (13 dígitos)
cantidad: 2,
unidadMedida: "Unid",
detalle: "Servicios de desarrollo web",
precioUnitario: 50000,
esServicio: true,
impuesto: [
{
codigo: "01", // IVA
codigoTarifaIVA: "08", // Tarifa general 13%
tarifa: 13,
},
],
},
{
numeroLinea: 2,
codigoCabys: "4321000000000",
cantidad: 1,
unidadMedida: "Unid",
detalle: "Laptop",
precioUnitario: 500000,
esServicio: false,
impuesto: [
{
codigo: "01",
codigoTarifaIVA: "08",
tarifa: 13,
},
],
descuento: [
{
montoDescuento: 25000,
codigoDescuento: "01",
naturalezaDescuento: "Descuento por volumen",
},
],
},
];
// 2. Calcular totales por línea (agrega montoTotal, subTotal, impuestoNeto, etc.)
const lineasCalculadas = lineas.map(calculateLineItemTotals);
// 3. Calcular resumen de factura (ResumenFactura)
const resumen = calculateInvoiceSummary(lineasCalculadas);
// 4. Generar la clave numérica
const clave = buildClave({
date: new Date(),
taxpayerId: "3101234567",
documentType: DocumentType.FACTURA_ELECTRONICA,
sequence: 1,
situation: Situation.NORMAL,
});
// 5. Consecutivo
const numeroConsecutivo = "00100001010000000001";
// 6. Armar la factura y generar XML
const factura = {
clave,
proveedorSistemas: "3101234567", // Cédula del proveedor de sistemas (v4.4)
codigoActividadEmisor: "620100",
numeroConsecutivo,
fechaEmision: new Date().toISOString(),
emisor: {
nombre: "Mi Empresa S.A.",
identificacion: { tipo: "02", numero: "3101234567" },
ubicacion: {
provincia: "1",
canton: "01",
distrito: "01",
otrasSenas: "100m norte del parque central",
},
correoElectronico: "facturacion@miempresa.co.cr",
},
receptor: {
nombre: "Cliente S.R.L.",
identificacion: { tipo: "02", numero: "3109876543" },
correoElectronico: "pagos@cliente.co.cr",
},
condicionVenta: "01", // Contado
detalleServicio: lineasCalculadas,
resumenFactura: {
...resumen,
// v4.4: los medios de pago van dentro del ResumenFactura, con monto
medioPago: [{ tipoMedioPago: "01", totalMedioPago: resumen.totalComprobante }],
},
};
const xml = buildFacturaXml(factura);Проверка XML:
import { validateFacturaInput } from "@dojocoding/hacienda-sdk";
const resultado = validateFacturaInput(datosFactura);
if (!resultado.valid) {
for (const err of resultado.errors) {
console.error(`${err.path}: ${err.message}`);
}
}Расчёт НДС
Утилиты для расчёта налогов, итогов по строкам и сводок в соответствии с нормативными требованиями Hacienda. Все суммы округляются до 5 знаков после запятой.
import { round5, calculateLineItemTotals, calculateInvoiceSummary } from "@dojocoding/hacienda-sdk";
import type { LineItemInput, CalculatedLineItem, InvoiceSummary } from "@dojocoding/hacienda-sdk";
const item: LineItemInput = {
numeroLinea: 1,
codigoCabys: "8310100000000",
cantidad: 3,
unidadMedida: "Sp",
detalle: "Horas de consultoría",
precioUnitario: 75000,
esServicio: true,
impuesto: [{ codigo: "01", codigoTarifaIVA: "08", tarifa: 13 }],
};
const calculado: CalculatedLineItem = calculateLineItemTotals(item);
// calculado.montoTotal = 225000 (3 × ₡75.000)
// calculado.subTotal = 225000 (sin descuentos)
// calculado.impuestoNeto = 29250 (₡225.000 × 13%)
// calculado.montoTotalLinea = 254250 (₡225.000 + ₡29.250)
const resumen: InvoiceSummary = calculateInvoiceSummary([calculado]);
// resumen.totalServGravados = 225000
// resumen.totalImpuesto = 29250
// resumen.totalComprobante = 254250Освобождение от НДС:
const itemExonerado: LineItemInput = {
// ...campos base
impuesto: [
{
codigo: "01",
codigoTarifaIVA: "08",
tarifa: 13,
exoneracion: {
tipoDocumento: "01",
numeroDocumento: "AL-001-2025",
nombreInstitucion: "99", // código de institución (Nota v4.4)
fechaEmision: "2025-01-01T00:00:00",
tarifaExonerada: 13, // puntos de tarifa exonerados
},
},
],
};Поддерживаемые ставки НДС: 0%, 0.5%, 1%, 2%, 4%, 8%, 13% (коды 01-11 из v4.4)
Числовой ключ
Каждый электронный документ требует уникальный числовой ключ из 50 цифр. SDK генерирует и разбирает его автоматически.
Структура: [506][ДДММГГ][ID 12 цифр][филиал 3][терминал 5][тип документа 2][порядковый номер 10][ситуация 1][код безопасности 8]
import { buildClave, parseClave, DocumentType, Situation } from "@dojocoding/hacienda-sdk";
// Generar clave
const clave = buildClave({
date: new Date("2025-07-15"),
taxpayerId: "3101234567",
documentType: DocumentType.FACTURA_ELECTRONICA,
sequence: 42,
situation: Situation.NORMAL,
branch: "001", // Opcional, default "001"
pos: "00001", // Opcional, default "00001"
});
// => "50615072500310123456700100001010000000042112345678"
// Parsear clave existente
const parsed = parseClave(clave);
// parsed.countryCode => "506"
// parsed.date => Date(2025-07-15)
// parsed.taxpayerId => "003101234567"
// parsed.documentType => "01"
// parsed.sequence => 42
// parsed.situation => "1"
// parsed.securityCode => "12345678"Коды ситуации:
1Нормальная (стандартная онлайн-отправка)2Аварийная (сбой системы Hacienda)3Без интернета (офлайн)
Цифровая подпись XAdES-EPES
Каждый XML, отправляемый в Hacienda, должен быть подписан XAdES-EPES с использованием сертификата .p12 налогоплательщика (RSA 2048 + SHA-256). SDK обрабатывает весь процесс подписания.
import { readFileSync } from "node:fs";
import { signXml, signAndEncode, loadP12 } from "@dojocoding/hacienda-sdk";
const p12Buffer = readFileSync("/ruta/al/certificado.p12");
const pin = process.env.HACIENDA_P12_PIN!;
// Firmar XML (retorna XML firmado como string)
const xmlFirmado = await signXml(xml, p12Buffer, pin);
// Firmar y codificar en Base64 (listo para enviar a la API)
const xmlBase64 = await signAndEncode(xml, p12Buffer, pin);
// Cargar .p12 para inspeccionar el certificado
const credenciales = await loadP12(p12Buffer, pin);
// credenciales.privateKey — CryptoKey para firma
// credenciales.certificateDer — Certificado codificado en DERОтправка и проверка статуса
Упрощённый вариант — submitAndWait (рекомендуется):
Отправляет документ и ожидает его обработки Hacienda. Автоматически управляет опросом статуса.
import { submitAndWait, HttpClient } from "@dojocoding/hacienda-sdk";
const httpClient = new HttpClient({
baseUrl: "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1",
getToken: () => client.getAccessToken(),
});
const resultado = await submitAndWait(
httpClient,
{
clave: "50601...",
fecha: new Date().toISOString(),
emisor: {
tipoIdentificacion: "02",
numeroIdentificacion: "3101234567",
},
comprobanteXml: xmlBase64Firmado,
},
{
pollIntervalMs: 3000, // Consultar cada 3 segundos (default)
timeoutMs: 60000, // Timeout a 60 segundos (default)
onPoll: (status, intento) => {
console.log(`Intento ${intento}: ${status.status}`);
},
},
);
if (resultado.accepted) {
console.log("¡Comprobante aceptado por Hacienda!");
} else {
console.log("Rechazado:", resultado.rejectionReason);
}Детальный вариант — полный контроль:
import { submitDocument, getStatus, isTerminalStatus } from "@dojocoding/hacienda-sdk";
// Enviar
const response = await submitDocument(httpClient, solicitud);
// Consultar estado
const status = await getStatus(httpClient, "50601...");
if (isTerminalStatus(status.status)) {
console.log("Estado final:", status.status);
}Список и запрос документов:
import { listComprobantes, getComprobante } from "@dojocoding/hacienda-sdk";
const lista = await listComprobantes(httpClient, {
offset: 0,
limit: 10,
fechaEmisionDesde: "2025-01-01",
fechaEmisionHasta: "2025-12-31",
});
const detalle = await getComprobante(httpClient, "50601...");Повторные попытки с экспоненциальной задержкой:
import { withRetry } from "@dojocoding/hacienda-sdk";
const resultado = await withRetry(() => submitDocument(httpClient, solicitud), {
maxAttempts: 3,
delayMs: 1000,
backoff: "exponential",
});Запрос информации о налогоплательщиках
Ищите информацию о любом налогоплательщике через публичный API экономической деятельности Hacienda (не требует аутентификации):
import { lookupTaxpayer } from "@dojocoding/hacienda-sdk";
const info = await lookupTaxpayer("3101234567");
console.log(info.nombre); // "MI EMPRESA S.A."
console.log(info.tipoIdentificacion); // "02"
for (const actividad of info.actividades) {
console.log(`${actividad.codigo}: ${actividad.descripcion} (${actividad.estado})`);
}Управление конфигурацией
Конфигурация хранится в ~/.hacienda-cr/config.toml с поддержкой нескольких профилей (например: песочница, продакшен, разные компании).
import {
loadConfig,
saveConfig,
listProfiles,
deleteProfile,
getNextSequence,
resetSequence,
} from "@dojocoding/hacienda-sdk";
// Guardar un perfil
await saveConfig(
{
environment: "sandbox",
cedula_type: "02",
cedula: "3101234567",
p12_path: "/ruta/al/certificado.p12",
},
"miempresa",
);
// Cargar un perfil
const config = await loadConfig("miempresa");
// Listar perfiles
const perfiles = await listProfiles();
// Eliminar un perfil
await deleteProfile("perfil-viejo");
// Gestión de consecutivos (numeración automática)
const consecutivo = await getNextSequence("02", "3101234567", "01", "001", "00001");
await resetSequence("02", "3101234567", "01", "001", "00001");Безопасность: Пароли и PIN-коды никогда не хранятся в файлах конфигурации. Они всегда передаются через переменные окружения:
HACIENDA_PASSWORD— пароль IDPHACIENDA_P12_PIN— PIN-код сертификата .p12
Структурированное логирование
Встроенный логгер с настраиваемыми уровнями и поддержкой JSON (идеально для продакшена).
import { Logger, LogLevel, noopLogger } from "@dojocoding/hacienda-sdk";
const logger = new Logger({
level: LogLevel.DEBUG, // DEBUG, INFO, WARN, ERROR, SILENT
format: "text", // "text" | "json"
context: "mi-app",
});
logger.debug("Token refrescado", { expiresIn: 300 });
logger.info("Comprobante enviado", { clave: "50601..." });
logger.warn("Rate limit acercándose");
logger.error("Envío falló", { statusCode: 500 });
// Logger silencioso (suprime toda salida)
const silencioso = noopLogger;Обработка ошибок
Все ошибки SDK наследуются от HaciendaError для единообразной обработки:
import {
HaciendaError,
ValidationError,
ApiError,
AuthenticationError,
SigningError,
} from "@dojocoding/hacienda-sdk";
try {
await client.authenticate();
const xml = buildFacturaXml(factura);
const firmado = await signAndEncode(xml, p12, pin);
const resultado = await submitAndWait(httpClient, solicitud);
} catch (err) {
if (err instanceof ValidationError) {
// Fallo de validación (esquema Zod o reglas de negocio)
console.error("Validación:", err.message, err.details);
} else if (err instanceof AuthenticationError) {
// Fallo de autenticación o ciclo de vida del token
console.error("Auth:", err.message);
} else if (err instanceof SigningError) {
// Fallo de firma XAdES-EPES (certificado malo, PIN incorrecto, etc.)
console.error("Firma:", err.message);
} else if (err instanceof ApiError) {
// Error HTTP/red de la API de Hacienda
console.error("API:", err.message, err.statusCode, err.responseBody);
} else if (err instanceof HaciendaError) {
// Cualquier otro error del SDK
console.error(`[${err.code}]`, err.message);
}
}Коды ошибок (HaciendaErrorCode):
Код | Описание |
| Не пройдена проверка Zod или бизнес-правил |
| REST API Hacienda вернул ошибку или был недоступен |
| Не удалась аутентификация или жизненный цикл токена |
| Не удалась операция подписания XAdES-EPES |
| Непредвиденная внутренняя ошибка |
CLI — Справочник команд
npm install -g @dojocoding/hacienda-cliВсе команды поддерживают --json для машиночитаемого вывода.
hacienda auth login
Аутентификация через IDP Hacienda и сохранение профиля.
hacienda auth login \
--cedula-type 02 \
--cedula 3101234567 \
--environment sandbox \
--profile default
# Contraseña por variable de entorno (recomendado)
export HACIENDA_PASSWORD="tu-contraseña"
hacienda auth login --cedula-type 02 --cedula 3101234567Аргумент | Описание |
|
|
| Идентификационный номер |
| Пароль IDP (или используйте |
|
|
| Имя профиля (по умолчанию: |
hacienda auth status
Показать текущий статус аутентификации.
hacienda auth status
hacienda auth status --profile produccion
hacienda auth status --jsonhacienda auth switch
Переключение между профилями аутентификации.
hacienda auth switch # Listar perfiles disponibles
hacienda auth switch produccion # Cambiar a un perfil específicohacienda submit
Отправить электронный документ в Hacienda.
hacienda submit factura.json --dry-run # Vista previa del XML
hacienda submit factura.json # Enviar de verdad
hacienda submit factura.json --json # Salida JSONhacienda status
Проверить статус обработки документа по его ключу.
hacienda status 50601012400310123456700100001010000000001199999999hacienda list
Список недавних документов из Hacienda.
hacienda list
hacienda list --limit 50 --offset 0
hacienda list --jsonhacienda get
Получить полные сведения о документе по его ключу.
hacienda get 50601012400310123456700100001010000000001199999999hacienda sign
Подписать XML-документ сертификатом .p12 (XAdES-EPES).
hacienda sign factura.xml --p12 cert.p12 --pin 1234 --output firmado.xml
hacienda sign factura.xml --p12 cert.p12 --pin 1234 # stdout
# Con variables de entorno
export HACIENDA_P12_PATH=/ruta/al/cert.p12
export HACIENDA_P12_PIN=1234
hacienda sign factura.xml --output firmado.xmlhacienda validate
Проверить файл счёта (JSON или XML) на соответствие схемам и бизнес-правилам.
hacienda validate factura.json
hacienda validate documento.xml
hacienda validate factura.json --jsonhacienda lookup
Запросить экономическую деятельность налогоплательщика по ID (без аутентификации).
hacienda lookup 3101234567
hacienda lookup 3101234567 --jsonhacienda draft
Интерактивно создать черновик счёта в формате JSON для отправки.
hacienda draft # Modo interactivo
hacienda draft --no-interactive # Plantilla en blanco
hacienda draft --template nota-credito --output nc.jsonШаблоны: factura (по умолчанию), nota-credito, nota-debito, tiquete
Переменные окружения
Переменная | Описание |
| Пароль IDP для аутентификации |
| PIN-код файла сертификата .p12 |
| Путь к файлу сертификата .p12 |
MCP Server — Интеграция с ИИ
Пакет @dojocoding/hacienda-mcp предоставляет SDK как MCP-сервер (Model Context Protocol), позволяя ИИ-ассистентам выставлять электронные счета в разговорном режиме.
Настройка с Claude Desktop
Добавьте это в claude_desktop_config.json:
{
"mcpServers": {
"hacienda-cr": {
"command": "npx",
"args": ["-y", "@dojocoding/hacienda-mcp"]
}
}
}Доступные инструменты
Инструмент | Описание |
| Создать электронный счёт-фактуру из структурированных данных. Рассчитывает налоги, генерирует ключ и строит XML. |
| Проверить статус обработки по числовому ключу из 50 цифр. |
| Список недавних электронных документов с необязательными фильтрами. |
| Получить полные сведения о документе по ключу. |
| Запросить информацию о налогоплательщике по ID. |
| Сгенерировать черновик счёта со значениями по умолчанию. |
Доступные ресурсы
URI | Описание |
| JSON-схема для создания счетов-фактур |
| Типы документов, коды и описания |
| Коды налогов, ставки НДС и единицы измерения |
| Типы идентификации и правила валидации |
Разработка
Предварительные требования
Node.js 22+ (использует нативные
fetchиcrypto.subtle)pnpm 9+
Начало работы
git clone https://github.com/DojoCodingLabs/hacienda-cr.git
cd hacienda-cr
pnpm install
pnpm build
pnpm test
pnpm lint
pnpm typecheckСтруктура проекта
hacienda-cr/
├── packages/
│ ├── sdk/ # @dojocoding/hacienda-sdk — Core: auth, XML, firma, API
│ ├── cli/ # @dojocoding/hacienda-cli — Binario `hacienda` (citty)
│ └── mcp/ # @dojocoding/hacienda-mcp — Servidor MCP
├── shared/ # @dojocoding/hacienda-shared — Tipos, constantes, enums compartidos
├── turbo.json # Configuración de Turborepo
├── vitest.workspace.ts
└── pnpm-workspace.yamlСборка отдельных пакетов
pnpm --filter @dojocoding/hacienda-sdk build
pnpm --filter @dojocoding/hacienda-sdk test
pnpm --filter @dojocoding/hacienda-sdk test clave.spec.tsТехнологический стек
Инструмент | Назначение |
TypeScript (strict) | Язык |
pnpm workspaces + Turborepo | Управление монорепозиторием |
tsup | Сборка (zero-config) |
Vitest | Тестирование (780+ тестов) |
ESLint + Prettier | Линтинг и форматирование |
Zod | Валидация в рантайме + вывод типов |
fast-xml-parser | Генерация и разбор XML |
citty | CLI-фреймворк |
@modelcontextprotocol/sdk | MCP-фреймворк |
xadesjs / xmldsigjs | Цифровая подпись XAdES-EPES |
Вклад в проект
Сделайте форк репозитория
Создайте ветку (
git checkout -b feature/mi-feature)Внесите изменения с тестами
Выполните
pnpm test && pnpm lint && pnpm typecheckОткройте pull request
Соглашения:
Файлы:
kebab-case.tsТипы/Классы:
PascalCaseФункции/Переменные:
camelCaseКонстанты:
UPPER_SNAKE_CASE
Благодарности
Этот проект построен на новаторской работе коста-риканского open-source сообщества:
CRLibre/API_Hacienda — Оригинальный open-source API для электронного выставления счетов в Коста-Рике (PHP). Его документация, блок-схемы и ресурсы сообщества были бесценными справочными материалами для понимания API Hacienda. Спасибо всему сообществу CRLibre за то, что сделали электронное выставление счетов доступным для коста-риканских разработчиков.
CRLibre/fe-hacienda-cr-misc — Общие ресурсы и документация для электронного выставления счетов в Коста-Рике.
Лицензия
This server cannot be deployed
Maintenance
Related MCP Connectors
Costa Rica Hacienda v4.4: AI agents submit and query electronic invoices, stateless BYO.
Official Timbrix MCP server: stamp, cancel, and query Mexican CFDI 4.0 invoices from AI agents.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that integrates with the FacturaScripts ERP system, providing resources and tools to manage clients, products, invoices, accounting entries, and business analytics through natural language.10-
- AlicenseAqualityBmaintenanceOpen-source MCP server for Chile's SII free invoicing system, enabling AI agents to query issued and received tax documents.122MIT
- AlicenseNot gradedqualityDmaintenanceMCP server enabling AI assistants to manage invoices, contacts, products, and other accounting data through the Bukku API.7MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for SRI electronic invoicing in Ecuador, enabling AI agents to emit invoices, credit notes, retention documents, and more via natural language through the Cobra API.MIT