# Burs-IA Utils (remote · utils.burs-ia.com)

502 utilidades deterministas gratis y sin llave para agentes: NIT, festivos, IVA, CUFE, aeropuertos

- Trust score: 69/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `utils.burs-ia.com`: 69/100 (this document), [markdown](https://verifymcp.io/servers/soyeladice-svg-bursia-utils/mcp-esencial.md), [page](https://verifymcp.io/servers/soyeladice-svg-bursia-utils/mcp-esencial)
- remote · `utils.burs-ia.com`: 4/100, [markdown](https://verifymcp.io/servers/soyeladice-svg-bursia-utils/mcp-puerta.md), [page](https://verifymcp.io/servers/soyeladice-svg-bursia-utils/mcp-puerta)
- remote · `utils.burs-ia.com`: 4/100, [markdown](https://verifymcp.io/servers/soyeladice-svg-bursia-utils/utils.md), [page](https://verifymcp.io/servers/soyeladice-svg-bursia-utils/utils)

## Channel facts

- Endpoint: `https://utils.burs-ia.com/mcp/esencial`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.8.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 11/100
  - TLS not yet verified: we couldn't open a connection to check the certificate.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS not yet verified: we couldn't read the response headers to check for it.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but we couldn't connect to verify it.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Burs-IA Utils MCP server?

Burs-IA Utils is a hosted endpoint at https://utils.burs-ia.com/mcp/esencial, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http soyeladice-svg-bursia-utils 'https://utils.burs-ia.com/mcp/esencial'
```

### Cursor

```json
{
  "mcpServers": {
    "soyeladice-svg-bursia-utils": {
      "url": "https://utils.burs-ia.com/mcp/esencial"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "soyeladice-svg-bursia-utils": {
      "type": "http",
      "url": "https://utils.burs-ia.com/mcp/esencial"
    }
  }
}
```

### Codex

```toml
[mcp_servers.soyeladice-svg-bursia-utils]
url = "https://utils.burs-ia.com/mcp/esencial"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "soyeladice-svg-bursia-utils": {
      "type": "remote",
      "url": "https://utils.burs-ia.com/mcp/esencial",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add soyeladice-svg-bursia-utils --url 'https://utils.burs-ia.com/mcp/esencial' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  soyeladice-svg-bursia-utils:
    url: "https://utils.burs-ia.com/mcp/esencial"
```

### Netclaw

```json
{
  "McpServers": {
    "soyeladice-svg-bursia-utils": {
      "Transport": "http",
      "Url": "https://utils.burs-ia.com/mcp/esencial"
    }
  }
}
```

### Vellum

```bash
assistant mcp add soyeladice-svg-bursia-utils -t streamable-http -u 'https://utils.burs-ia.com/mcp/esencial'
```

### Other

```json
{
  "mcpServers": {
    "soyeladice-svg-bursia-utils": {
      "type": "http",
      "url": "https://utils.burs-ia.com/mcp/esencial"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 69, +65)

The score moved with no change recorded against any check. We would rather say so than guess.

### 2026-11-04 (score 4, −65)

- [security regression] Endpoint reachability: reachable → unreachable
- [security regression] TLS certificate: pass → unverified
- [security regression] HSTS header: pass → unverified
- [security regression] Stability: fail → unverified
- [security regression] Authorization: partial → unverified
- [security regression] Tool safety: pass → unverified
- [security regression] Transport: pass → fail
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “co-holidays” rewrote its description, which is the text the model reads
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified
- [functional] Server version: 1.7.3 → 1.8.1

### 2026-11-03 (score 69, +2)

- [security improvement] HSTS header: fail → pass
- [functional] Server version: 1.7.1 → 1.7.3

### 2026-11-02 (score 67, 0)

- [security regression] Stability: unverified → fail
- [security regression] Tool “es-slug” was removed
- [security regression] Tool “json-pretty” was removed
- [security regression] Tool “convert-length” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Server version: 1.6.4 → 1.7.1
- [functional] Server version: 1.6.0 → 1.6.4
- [functional] New tool “qr-encode”
- [functional] New tool “time-now”
- [functional] New tool “markdown-to-chat”

### 2026-11-01 (score 67)

First indexed and scored.

## MCP tools (25)

### `co-nit` (~314 tokens)

Dígito de verificación del NIT

Calcula el dígito de verificación (DV) de un NIT con el método mod 11 publicado por la DIAN, valida el DV dado y formatea (900.373.913-4); práctica estándar en facturación. Cuándo: hay que comprobar o formatear un NIT con su dígito de verificación DIAN, p. ej. antes de emitir una factura. No para: verificar la SINTAXIS de una cédula colombiana (co-cedula-format). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Computes the DIAN verification digit (DV) of a Colombian NIT business tax ID with DIAN's published mod-11 method, validates a given DV and formats it (900.373.913-4). DV computation is standard practice in invoicing. When: a Colombian NIT has to be checked or formatted with its DIAN verification digit, e.g. before issuing an invoice. [EN completo / full EN: inputSchema.description]

Input parameters:

- `dv` (string): Verification digit, if separate (string; optional; pattern ^\d$).
- `nit` (string, required): NIT with or without DV (dots, dashes ok) (string; required; up to 30 chars).

Output parameters:

- `dv` (null|number)
- `formatted` (null|string)
- `nit` (null|string)
- `valid` (boolean|null)

### `co-cedula-format` (~311 tokens)

Formato de cédula colombiana

Verifica la SINTAXIS de una cédula colombiana (3 a 10 dígitos) y la formatea con puntos. La cédula no tiene dígito de control. Cuándo: hay que aplicar con exactitud una regla colombiana (DIAN, festivos de la Ley Emiliani, montos en COP, IVA, GMF, UVT), p. ej. al facturar o cobrar. No para: calcular el dígito de verificación (co-nit). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Checks the SYNTAX of a Colombian cédula de ciudadanía number (digits only, 3-10 digits, no leading zero) and formats it with dot separators. Cédulas have no check digit, so validity cannot be confirmed offline. When: a Colombian rule (DIAN, Ley Emiliani holidays, COP amounts, IVA, GMF, UVT) has to be applied exactly, e.g. in invoicing or payment flows. Not for: computing the DIAN verification digit (co-nit). [EN completo / full EN: inputSchema.description]

Input parameters:

- `cedula` (string, required): Cédula number (string; required; up to 20 chars).

Output parameters:

- `cedula` (null|string)
- `digits` (null|number)
- `formatted` (null|string)
- `note` (null|string)
- `valid_syntax` (boolean|null)

### `mx-rfc-validate` (~269 tokens)

Validar RFC (México)

Valida un RFC mexicano (SAT): 13 caracteres persona física o 12 moral, fecha y dígito verificador mod 11. Cuándo: hay que comprobar sin conexión un documento o número de cuenta de LatAm o España dado por un usuario antes de guardarlo o usarlo; la herramienta solo valida. No para: validar una CURP mexicana (mx-curp-validate). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Validates a Mexican RFC (SAT taxpayer ID): 13 characters for individuals or 12 for companies, embedded date, and the SAT mod-11 check digit (homoclave last character). Returns valid/invalid only. When: a user-supplied Latin American or Spanish ID or account number has to be checked offline before it is stored or used; the tool only validates. Not for: validating a Mexican CURP (mx-curp-validate). [EN completo / full EN: inputSchema.description]

Input parameters:

- `rfc` (string, required): RFC (string; required; up to 20 chars).

Output parameters:

- `generic` (boolean|null)
- `reason` (null|string)
- `type` (null|string)
- `valid` (boolean|null)

### `mx-curp-validate` (~264 tokens)

Validar CURP (México)

Valida una CURP mexicana (18 caracteres): estructura, fecha de nacimiento, sexo, entidad y dígito verificador RENAPO. Cuándo: hay que comprobar sin conexión un documento o número de cuenta de LatAm o España dado por un usuario antes de guardarlo o usarlo; la herramienta solo valida. No para: validar un RFC mexicano (mx-rfc-validate). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Validates a Mexican CURP (18 characters): structure, birth date, sex (H/M/X), state code, and the RENAPO check digit; returns valid/invalid and the decoded fields. When: a user-supplied Latin American or Spanish ID or account number has to be checked offline before it is stored or used; the tool only validates. Not for: validating a Mexican RFC (mx-rfc-validate). [EN completo / full EN: inputSchema.description]

Input parameters:

- `curp` (string, required): CURP (string; required; up to 20 chars).

Output parameters:

- `birth_date` (null|string)
- `reason` (null|string)
- `sex` (null|string)
- `state` (null|string)
- `valid` (boolean|null)

### `br-cpf-validate` (~277 tokens)

Validar CPF (Brasil)

Valida un CPF brasileño (11 dígitos, dos dígitos verificadores) y lo formatea (529.982.247-25). Cuándo: hay que comprobar sin conexión un documento o número de cuenta de LatAm o España dado por un usuario antes de guardarlo o usarlo; la herramienta solo valida. No para: validar un CNPJ brasileño (br-cnpj-validate). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Validates a Brazilian CPF (11 digits, two mod-11 check digits), rejecting repeated-digit numbers, and formats it as 529.982.247-25. When: a user-supplied Latin American or Spanish ID or account number has to be checked offline before it is stored or used; the tool only validates. Not for: validating a Brazilian CNPJ (br-cnpj-validate). Side effects: none (read-only, no network access, no stored state). [EN completo / full EN: inputSchema.description]

Input parameters:

- `cpf` (string, required): CPF (string; required; up to 20 chars).

Output parameters:

- `formatted` (null|string)
- `reason` (null|string)
- `valid` (boolean|null)

### `br-cnpj-validate` (~276 tokens)

Validar CNPJ (Brasil)

Valida un CNPJ brasileño, incluido el formato alfanumérico vigente desde julio de 2026, con sus dos dígitos verificadores. Cuándo: hay que comprobar sin conexión un documento o número de cuenta de LatAm o España dado por un usuario antes de guardarlo o usarlo; la herramienta solo valida. No para: validar un CPF brasileño (br-cpf-validate). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Validates a Brazilian CNPJ, including the alphanumeric format introduced from July 2026 (letters valued as ASCII − 48), with both mod-11 check digits; formats as 11.222.333/0001-81. When: a user-supplied Latin American or Spanish ID or account number has to be checked offline before it is stored or used; the tool only validates. Not for: validating a Brazilian CPF (br-cpf-validate). [EN completo / full EN: inputSchema.description]

Input parameters:

- `cnpj` (string, required): CNPJ (string; required; up to 24 chars).

Output parameters:

- `alphanumeric` (boolean|null)
- `formatted` (null|string)
- `reason` (null|string)
- `valid` (boolean|null)

### `ar-cuit-validate` (~282 tokens)

Validar CUIT/CUIL (Argentina)

Valida un CUIT/CUIL argentino (11 dígitos, dígito verificador mod 11) e identifica el tipo de prefijo. Cuándo: hay que comprobar sin conexión un documento o número de cuenta de LatAm o España dado por un usuario antes de guardarlo o usarlo; la herramienta solo valida. No para: validar una CBU/CVU argentina de 22 dígitos (ar-cbu-validate). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Validates an Argentine CUIT/CUIL (11 digits: type prefix, DNI, mod-11 check digit with weights 5432765432) and identifies the prefix type (person or company). When: a user-supplied Latin American or Spanish ID or account number has to be checked offline before it is stored or used; the tool only validates. Not for: validating a 22-digit Argentine CBU/CVU (ar-cbu-validate). [EN completo / full EN: inputSchema.description]

Input parameters:

- `cuit` (string, required): CUIT/CUIL (string; required; up to 20 chars).

Output parameters:

- `formatted` (null|string)
- `prefix_type` (null|string)
- `reason` (null|string)
- `valid` (boolean|null)

### `cl-rut` (~300 tokens)

Validar RUT/RUN (Chile)

Valida un RUT/RUN chileno con su dígito verificador mod 11 (0-9 o K) y lo formatea. Solo valida: el dígito debe venir incluido. Cuándo: hay que comprobar sin conexión un documento o número de cuenta de LatAm o España dado por un usuario antes de guardarlo o usarlo; la herramienta solo valida. No para: validar un CPF brasileño (br-cpf-validate). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Validates a Chilean RUT/RUN including its mod-11 check digit (0-9 or K) and returns it formatted as 12.345.678-5. Validation only: the check digit must be supplied and is never computed. When: a user-supplied Latin American or Spanish ID or account number has to be checked offline before it is stored or used; the tool only validates. Not for: validating a Brazilian CPF (br-cpf-validate). [EN completo / full EN: inputSchema.description]

Input parameters:

- `rut` (string, required): RUT including check digit, e.g. 12.345.678-5 (string; required; up to 20 chars).

Output parameters:

- `formatted` (null|string)
- `reason` (null|string)
- `valid` (boolean|null)

### `co-holidays` (~340 tokens)

Festivos de Colombia

Lista los 18 (hasta 2025) o 19 (desde 2026, Ley 2578 de 2026) festivos nacionales de Colombia de un año según la Ley Emiliani (traslado a lunes) y la Pascua. Cuándo: hay que aplicar con exactitud una regla colombiana (DIAN, festivos de la Ley Emiliani, montos en COP, IVA, GMF, UVT), p. ej. al facturar o cobrar. No para: indicar si una fecha es festivo nacional en Colombia (co-is-holiday). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Lists the 18 (until 2025) or 19 (from 2026, Ley 2578 de 2026) Colombian national holidays for a year, applying Ley 51 de 1983 (Ley Emiliani) Monday moves and Easter dates (Holy Week, Ascension, Corpus Christi, Sacred Heart). When: a Colombian rule (DIAN, Ley Emiliani holidays, COP amounts, IVA, GMF, UVT) has to be applied exactly, e.g. in invoicing or payment flows. [EN completo / full EN: inputSchema.description]

Input parameters:

- `year` (integer, required): Year (1984 onward, when Ley 51 de 1983 took effect) (integer; required; min 1984; max 2200).

Output parameters:

- `count` (null|number)
- `holidays` (array|null)
- `year` (null|number)

### `co-business-days-add` (~347 tokens)

Sumar días hábiles en Colombia

Suma o resta N días hábiles a una fecha usando los festivos de Colombia (plazos legales, facturas, SLA). Cuándo: hay que aplicar con exactitud una regla colombiana (DIAN, festivos de la Ley Emiliani, montos en COP, IVA, GMF, UVT), p. ej. al facturar o cobrar. No para: sumar o restar días hábiles, saltando fines de semana y festivos dados (business-days-add). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Adds or subtracts N business days (días hábiles) to a date using Colombian national holidays, e.g. for legal deadlines, invoices or SLA due dates. When: a Colombian rule (DIAN, Ley Emiliani holidays, COP amounts, IVA, GMF, UVT) has to be applied exactly, e.g. in invoicing or payment flows. Not for: adding or subtracting business days, skipping weekends and given holidays (business-days-add). [EN completo / full EN: inputSchema.description]

Input parameters:

- `date` (string, required): YYYY-MM-DD (string; required; up to 10 chars; format date).
- `days` (integer, required): Business days (negative subtracts) (integer; required; min -5000; max 5000).
- `saturday_is_business` (boolean): Saturday counts as business day (boolean; optional; default false).

Output parameters:

- `result`: any JSON value
- `weekday` (null|string)

### `co-business-days-between` (~341 tokens)

Días hábiles en Colombia entre fechas

Cuenta días hábiles entre dos fechas en Colombia, excluyendo domingos, sábados (opcional) y festivos nacionales. Cuándo: hay que aplicar con exactitud una regla colombiana (DIAN, festivos de la Ley Emiliani, montos en COP, IVA, GMF, UVT), p. ej. al facturar o cobrar. No para: contar días hábiles entre dos fechas, excluyendo fines de semana configurables y festivos (business-days-between). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Counts business days (días hábiles) between two dates in Colombia, excluding Sundays, Saturdays (unless saturday_is_business) and national holidays; lists holidays skipped. When: a Colombian rule (DIAN, Ley Emiliani holidays, COP amounts, IVA, GMF, UVT) has to be applied exactly, e.g. in invoicing or payment flows. [EN completo / full EN: inputSchema.description]

Input parameters:

- `end` (string, required): End YYYY-MM-DD (string; required; up to 10 chars; format date).
- `inclusive` (boolean): Count the start date too (boolean; optional; default false).
- `saturday_is_business` (boolean): Saturday counts as business day (boolean; optional; default false).
- `start` (string, required): Start YYYY-MM-DD (string; required; up to 10 chars; format date).

Output parameters:

- `business_days` (null|number)
- `holidays_skipped` (array|null)

### `co-iva` (~378 tokens)

Calcular IVA de Colombia

Calcula el IVA colombiano (19 % general, 5 % reducido o 0 %): suma a una base o extrae de un total con IVA, redondeando a pesos. Cuándo: hay que aplicar con exactitud una regla colombiana (DIAN, festivos de la Ley Emiliani, montos en COP, IVA, GMF, UVT), p. ej. al facturar o cobrar. No para: sumar o extraer un impuesto (vat-calculate). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Adds or extracts Colombian IVA at the general 19%, reduced 5% or 0% (exento) rate: from a base before tax or from a total that includes IVA, rounding to whole pesos by default. When: a Colombian rule (DIAN, Ley Emiliani holidays, COP amounts, IVA, GMF, UVT) has to be applied exactly, e.g. in invoicing or payment flows. Not for: adding tax to a net amount or extracting it from a gross (vat-calculate). [EN completo / full EN: inputSchema.description]

Input parameters:

- `amount` (number, required): Amount (number; required; min 0; max 1000000000000000).
- `amount_includes_iva` (boolean): Amount already includes IVA (boolean; optional; default false).
- `rate` (string): IVA rate % (optional; one of: 19, 5, 0; default "19").
- `round_to_peso` (boolean): Round to whole pesos (boolean; optional; default true).

Output parameters:

- `base` (null|number)
- `iva` (null|number)
- `rate_percent` (null|number)
- `total` (null|number)

### `remove-accents` (~305 tokens)

Quitar tildes y diacríticos

Quita tildes y diacríticos (á→a, ü→u); opcionalmente conserva la ñ. Cuándo: hay que transformar, comparar o medir un texto con exactitud y no por aproximación. No para: aplicar normalización Unicode NFC, NFD, NFKC o NFKD (unicode-normalize). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Strips combining diacritical marks (á→a, ü→u, ç→c, ñ→n) after NFD decomposition; optionally keeps ñ/Ñ for Spanish. When: text has to be transformed, compared or measured exactly instead of approximated. Not for: applying Unicode normalization form NFC, NFD, NFKC or NFKD and reporting whether the text changed (unicode-normalize). Side effects: none (read-only, no network access, no stored state). Deterministic: the same input gives the same output. Limits: JSON input up to 64 KB, 1 s per call, result up to 1 MB.

Input parameters:

- `keep_enye` (boolean): Keep ñ and Ñ (boolean; optional; default false).
- `text` (string, required): Input text (string; required).

Output parameters:

- `text` (null|string)

### `qr-encode` (~694 tokens)

Generar código QR

Codifica un texto como código QR (ISO/IEC 18004, versiones 1 a 40, corrección L/M/Q/H, modo numérico, alfanumérico o bytes UTF-8) y devuelve la matriz de módulos y un SVG. Cuándo: hay que convertir bytes o texto a esta codificación, o desde ella, con exactitud y sin adivinar. No para: construir una URI data (data-uri-build). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Encodes text as a QR Code (ISO/IEC 18004, versions 1-40, error correction L/M/Q/H, numeric, alphanumeric or UTF-8 byte mode, automatic mask) and returns the module matrix and an SVG. Port of the Nayuki reference encoder; no image decoding. When: bytes or text have to be converted to or from this encoding exactly, without guessing. [EN completo / full EN: inputSchema.description]

Input parameters:

- `boost_ecc` (boolean): Raise the ECC level while the version does not grow (boolean; optional; default false).
- `border` (integer): Quiet-zone width in modules for the SVG (the standard asks for 4) (integer; optional; default 4; min 0; max 16).
- `dark` (string): Dark module color (string; optional; default "#000000"; up to 7 chars; pattern ^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$).
- `ecc` (string): Error correction level: L ~7 %, M ~15 %, Q ~25 %, H ~30 % of codewords recoverable (optional; one of: L, M, Q, H; default "M").
- `include_matrix` (boolean): Include the module matrix (rows of "1" dark / "0" light) (boolean; optional; default true).
- `include_svg` (boolean): Include the SVG string (boolean; optional; default true).
- `light` (string): Light module color (string; optional; default "#ffffff"; up to 7 chars; pattern ^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$).
- `mask` (integer): Mask pattern 0-7, or -1 to choose by the ISO penalty rules (integer; optional; default -1; min -1; max 7).
- `max_version` (integer): Largest version allowed (integer; optional; default 40; min 1; max 40).
- `min_version` (integer): Smallest version allowed (integer; optional; default 1; min 1; max 40).
- `mode` (string): Encoding mode; auto picks numeric, alphanumeric or byte for the whole text (optional; one of: auto, numeric, alphanumeric, byte; default "auto").
- `text` (string, required): Text to encode (UTF-8 in byte mode; at most 2953 bytes at version 40-L) (string; required; up to 7089 chars).

Output parameters:

- `data_bytes` (null|number)
- `ecc` (null|string)
- `mask` (null|number)
- `mode` (null|string)
- `modules` (array|null)
- `size` (null|number)
- `svg` (null|string)
- `version` (null|number)

### `es-number-to-words` (~360 tokens)

Número en letras (español)

Escribe un entero hasta 10^18 en palabras en español (escala larga), con género y apócope opcional (veintiún, un). Cuándo: hay que tratar texto, números o fechas en español según las reglas escritas del idioma y no por aproximación. No para: escribir un valor en pesos colombianos en letras para cheques y facturas (co-amount-in-words). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Spells an integer up to 10^18 in Spanish words (long scale: millón, mil millones, billón), with masculine/feminine agreement and optional apocope (veintiún, un) for use before a noun. When: Spanish text, numbers or dates have to be handled by the written rules of Spanish instead of by approximation. Not for: writing a Colombian peso amount in words for cheques and invoices (co-amount-in-words). [EN completo / full EN: inputSchema.description]

Input parameters:

- `apocope` (boolean): Use un/veintiún forms (before a noun) (boolean; optional; default false).
- `gender` (string): Grammatical gender (optional; one of: masculine, feminine; default "masculine").
- `n` (integer|string, required): Integer (integer or string; required; up to 19 chars; pattern ^-?\d{1,18}$).
- `uppercase` (boolean): Uppercase (boolean; optional; default false).

Output parameters:

- `words` (null|string)

### `currency-format` (~425 tokens)

Formatear moneda por país

Formatea un monto en cualquier moneda ISO 4217 según el idioma/país (símbolo, código o nombre), con sus decimales estándar. Cuándo: un cálculo de dinero, impuestos o matemática financiera tiene que ser exacto y reproducible (redondeo, centavos, tasas). No para: formatear un valor en pesos colombianos (co-cop-format). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Formats an amount in any ISO 4217 currency for a locale via Intl (symbol, narrow symbol, code or name), using the currency's standard minor units unless overridden, and accounting style for negatives. When: a money, tax or financial-math result has to be exact and reproducible (rounding, cents, rates). Not for: formatting an amount as Colombian pesos the way it is written in Colombia (co-cop-format). [EN completo / full EN: inputSchema.description]

Input parameters:

- `accounting` (boolean): Parentheses for negatives (boolean; optional; default false).
- `amount` (number, required): Amount (number; required; min -1000000000000000; max 1000000000000000).
- `currency` (string): ISO 4217 currency code (string; optional; default "USD"; pattern ^[A-Za-z]{3}$).
- `decimals` (integer): Override decimals (integer; optional; min 0; max 6).
- `display` (string): Currency display (optional; one of: symbol, narrowSymbol, code, name; default "symbol").
- `locale` (string): BCP 47 locale (string; optional; default "en-US"; up to 35 chars; pattern ^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$).

Output parameters:

- `formatted` (null|string)
- `minor_units` (null|number)

### `iban-validate` (~288 tokens)

Validar IBAN

Valida un IBAN: país, longitud por país, caracteres y checksum mod 97 (ISO 7064); devuelve formatos y BBAN. Cuándo: hay que verificar sin conexión el formato y el dígito de control de un identificador antes de usarlo. No para: verificar la sintaxis de un código SWIFT/BIC (swift-bic-validate). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Validates an IBAN: country code, country-specific length (about 80 countries), allowed characters and ISO 7064 mod-97 checksum; returns electronic and print formats and the BBAN. When: an identifier's format and check digit have to be verified offline before it is used. Not for: checking SWIFT/BIC code syntax (swift-bic-validate). Side effects: none (read-only, no network access, no stored state). Deterministic: the same input gives the same output. Limits: JSON input up to 64 KB, 1 s per call, result up to 1 MB.

Input parameters:

- `iban` (string, required): IBAN (string; required; up to 64 chars).

Output parameters:

- `bban` (null|string)
- `check_digits` (null|string)
- `country` (null|string)
- `electronic` (null|string)
- `print` (null|string)
- `reasons` (array|null)
- `valid` (boolean|null)

### `luhn-validate` (~275 tokens)

Validar Luhn (módulo 10)

Valida un número con el algoritmo de Luhn (mod 10): tarjetas, IMEI y varios documentos. Cuándo: hay que verificar sin conexión el formato y el dígito de control de un identificador antes de usarlo. No para: detectar la franquicia de una tarjeta por su prefijo, valida longitud y Luhn y devolver el número enmascarado (card-brand-detect). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Validates a number with the Luhn mod-10 checksum (credit cards, IMEI, many national IDs); spaces and dashes are ignored. When: an identifier's format and check digit have to be verified offline before it is used. Not for: detecting a payment card brand from its IIN prefix (card-brand-detect). Side effects: none (read-only, no network access, no stored state). Deterministic: the same input gives the same output. [EN completo / full EN: inputSchema.description]

Input parameters:

- `number` (string, required): Digits (string; required; up to 64 chars).

Output parameters:

- `reason` (null|string)
- `valid` (boolean|null)

### `json-parse-check` (~272 tokens)

Validar sintaxis JSON

Verifica si un texto es JSON válido; si no, devuelve el error con línea y columna. Cuándo: hay que transformar, comparar o revisar con exactitud datos estructurados (JSON, CSV, YAML, XML, arreglos). No para: reparar JSON casi válido típico de salidas de LLM (json-repair). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Checks whether text is valid JSON (RFC 8259); on error returns the parser message with line and column. Also reports the top-level type and nesting depth. When: structured data (JSON, CSV, YAML, XML, arrays) has to be transformed, compared or checked exactly. Not for: repairing almost-JSON typical of LLM output (json-repair). Side effects: none (read-only, no network access, no stored state). Deterministic: the same input gives the same output. Limits: JSON input up to 64 KB, 1 s per call, result up to 1 MB.

Input parameters:

- `json` (string, required): JSON text (string; required).

Output parameters:

- `depth` (null|number)
- `error` (null|object|string)
- `location` (null|object)
- `type` (null|string)
- `valid` (boolean|null)

### `markdown-to-chat` (~266 tokens)

Markdown a WhatsApp, Slack o Telegram

Convierte Markdown al formato de una app de chat: WhatsApp, Slack mrkdwn o Telegram MarkdownV2 (con el escape obligatorio); los títulos pasan a negrita y las tablas a bloques de código. Cuándo: hay que leer, construir o revisar con exactitud una URL, una cabecera HTTP, un token, una versión, un rango de IP, un documento HTML o Markdown o un archivo para agentes. No para: eliminar la sintaxis Markdown (markdown-to-text). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Converts Markdown to the formatting of a chat app: WhatsApp (*bold* _italic_ ~strike~), Slack mrkdwn (<url|text>, &amp; escaping) or Telegram MarkdownV2 (with its required backslash escaping); headings become bold lines and tables code blocks. [EN completo / full EN: inputSchema.description]

Input parameters:

- `markdown` (string, required): Markdown (string; required).
- `target` (string, required): Chat app (required; one of: whatsapp, slack, telegram).

Output parameters:

- `length` (null|number)
- `target` (null|string)
- `text` (null|string)

### `json-repair` (~260 tokens)

Reparar JSON roto

Repara JSON casi válido típico de salidas de LLM (comillas simples, comas, claves sin comillas, True/None, llaves sin cerrar) y devuelve el valor y los arreglos. Cuándo: un modelo devolvió JSON casi válido que hay que leer sin volver a pedírselo al modelo. No para: verificar si un texto es JSON válido (json-parse-check). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Repairs almost-JSON typical of LLM output (code fences, comments, single quotes, unquoted keys, trailing or missing commas, Python True/False/None, NaN, unclosed strings and brackets) and returns the parsed value and the fixes applied. When: a model returned almost-valid JSON that has to be parsed without asking the model again. Not for: checking whether text is valid JSON (json-parse-check). [EN completo / full EN: inputSchema.description]

Input parameters:

- `text` (string, required): Broken JSON text (string; required).

Output parameters:

- `changed` (boolean|null)
- `fixes` (array|null)
- `json`: any JSON value
- `repaired` (boolean|null)
- `value`: any JSON value

### `hash-sha256` (~337 tokens)

Hash SHA-256

Calcula el resumen SHA-256 (FIPS 180-4) en hex, base64 o base64url. Cuándo: se necesita el resumen exacto de un texto o de unos bytes dados, p. ej. para comparar contenido o cotejar un checksum publicado. No para: calcular el HMAC (hmac-sha256). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Computes the SHA-256 digest (FIPS 180-4) of text, hex or base64 input, returned as hex, base64 or base64url. When: an exact digest of given text or bytes is needed, e.g. to compare content or match a published checksum. Not for: computing the HMAC (hmac-sha256). Side effects: none (read-only, no network access, no stored state). Deterministic: the same input gives the same output. Limits: JSON input up to 64 KB, 1 s per call, result up to 1 MB.

Input parameters:

- `data` (string, required): Input data (string; required).
- `input_encoding` (string): How `data` is encoded (optional; one of: utf8, hex, base64; default "utf8").
- `output_encoding` (string): Output encoding of the digest (optional; one of: hex, base64, base64url; default "hex").

Output parameters:

- `algorithm` (null|string)
- `digest` (null|string)
- `encoding` (null|string)

### `uuid-v4` (~299 tokens)

Generar UUID v4

Genera UUID versión 4 (RFC 9562) aleatorios. Con semilla, la salida es reproducible. Cuándo: hay que generar un identificador en este formato o leer los campos que lleva dentro. No para: generar UUID versión 7 ordenados por tiempo (uuid-v7). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). No determinista: aleatorio salvo que se dé seed. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Generates random RFC 9562 version-4 UUIDs (122 random bits). A seed gives reproducible output for tests. When: an identifier has to be generated in this format or its embedded fields decoded. Not for: generating time-ordered version-7 UUIDs (uuid-v7). Side effects: none (read-only, no network access, no stored state). Not deterministic: random unless seed is given. Limits: JSON input up to 64 KB, 1 s per call, result up to 1 MB.

Input parameters:

- `count` (integer): How many to generate (integer; optional; default 1; min 1; max 100).
- `seed` (string): Optional seed. With a seed the output is reproducible; without one, cryptographically random bytes are used (string; optional; up to 256 chars).

Output parameters:

- `aviso` (null|string)
- `uuids` (array|null)

### `timezone-shift` (~337 tokens)

Convertir hora entre zonas

Convierte una fecha/hora de una zona horaria IANA a otra, considerando horario de verano. Cuándo: un resultado de fechas, zonas horarias o calendario tiene que ser exacto (desfases, horario de verano, fines de mes, bisiestos). No para: listar las zonas horarias IANA soportadas (timezone-list). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). Determinista: la misma entrada da la misma salida. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Converts a wall-clock date-time from one IANA time zone to another (DST-aware via Intl), or an absolute instant (with Z/offset) to a target zone. When: a date, time-zone or calendar result has to be exact (offsets, daylight saving, month ends, leap years). Not for: listing the supported IANA time zones (timezone-list). Side effects: none (read-only, no network access, no stored state). Deterministic: the same input gives the same output. Limits: JSON input up to 64 KB, 1 s per call, result up to 1 MB.

Input parameters:

- `datetime` (string, required): Date-time; naive values are read in from_timezone (string; required; up to 40 chars).
- `from_timezone` (string): Source zone (string; optional; default "UTC"; up to 64 chars).
- `to_timezone` (string, required): Target IANA zone (string; required; up to 64 chars).

Output parameters:

- `offset_difference_hours` (null|number)
- `source` (null|string)
- `target` (null|string)
- `utc` (null|string)

### `time-now` (~330 tokens)

Fecha y hora actual en una zona horaria

Devuelve el instante actual (o uno dado, para pruebas) en una zona horaria IANA: ISO 8601 con desfase, UTC, Unix, desfase, horario de verano, fecha y hora local, día de la semana y textos en español e inglés. Cuándo: un resultado de fechas, zonas horarias o calendario tiene que ser exacto (desfases, horario de verano, fines de mes, bisiestos). No para: convertir una fecha/hora de una zona horaria IANA a otra, considerando horario de verano (timezone-shift). Efectos secundarios: ninguno (solo lectura, sin red, sin estado guardado). No determinista: según el reloj salvo que se dé at. Límites: entrada JSON de hasta 64 KB, 1 s por llamada, resultado de hasta 1 MB.

EN: Returns the current instant (or a given one, for tests) in an IANA time zone: ISO 8601 with offset, UTC, Unix seconds and milliseconds, offset, daylight saving, local date and time, ISO weekday and texts in Spanish and English. [EN completo / full EN: inputSchema.description]

Input parameters:

- `at` (string): Instant to use instead of the clock: ISO 8601 with Z/offset, or naive local time in `timezone` (for tests and reproducible output) (string; optional; up to 40 chars).
- `timezone` (string): IANA time zone, e.g. America/Bogota (string; optional; default "UTC"; up to 64 chars).

Output parameters:

- `date` (null|string)
- `dst_in_effect` (boolean|null)
- `iso` (null|string)
- `offset` (null|string)
- `offset_minutes` (null|number)
- `source` (null|string)
- `text_en` (null|string)
- `text_es` (null|string)
- `time` (null|string)
- `timezone` (null|string)
- `unix` (null|number)
- `unix_ms` (null|number)
- `utc` (null|string)
- `weekday_en` (null|string)
- `weekday_es` (null|string)
- `weekday_iso` (null|number)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/soyeladice-svg-bursia-utils/mcp-esencial#diagnostics

## Score history

- 2026-11-05: 69
- 2026-11-04: 4
- 2026-11-03: 69
- 2026-11-02: 67
- 2026-11-01: 67

## Common questions

### What is the Burs-IA Utils MCP server?

Burs-IA Utils is an MCP server listed in the public MCP registry as io.github.soyeladice-svg/bursia-utils. 502 utilidades deterministas gratis y sin llave para agentes: NIT, festivos, IVA, CUFE, aeropuertos. This page covers its hosted endpoint (https://utils.burs-ia.com/mcp/esencial).

### Is the Burs-IA Utils MCP server safe to use?

Burs-IA Utils scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Burs-IA Utils MCP server expose?

Burs-IA Utils exposes 25 tools: co-nit, co-cedula-format, mx-rfc-validate, mx-curp-validate, br-cpf-validate, and 20 more. Their descriptions and schemas cost roughly 8,147 tokens of context every time the server is loaded.

### Does the Burs-IA Utils MCP server require authentication?

Its publisher declares no required credentials for Burs-IA Utils. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Burs-IA Utils MCP server still maintained?

Burs-IA Utils is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://utils.burs-ia.com/mcp/esencial
- Website: https://utils.burs-ia.com/puerta
- Changelog RSS feed: https://verifymcp.io/servers/soyeladice-svg-bursia-utils/mcp-esencial.xml
- Changelog JSON feed: https://verifymcp.io/servers/soyeladice-svg-bursia-utils/mcp-esencial.json
- HTML version of this page: https://verifymcp.io/servers/soyeladice-svg-bursia-utils/mcp-esencial
