Skip to main content
Glama
JoseLuis21

@integradte/mcp

by JoseLuis21

@integradte/mcp

MCP Server para consultar datos de facturación electrónica chilena desde la API IntegraDTE.

Permite a modelos de lenguaje (Claude, etc.) consultar documentos tributarios, folios, estadísticas y más mediante el protocolo MCP (Model Context Protocol).

Tools disponibles

Tool

Descripción

get_user_info

Info del usuario autenticado (nombre, email, estado)

get_certificate_info

Estado del certificado digital (vencimiento, titular)

list_documents

Listar DTEs con filtros (tipo, estado, fechas, paginación)

get_document

Detalle de un documento por ID

get_document_stats

Estadísticas: totales emitidos, montos, por tipo DTE

get_numeration_summary

Resumen de folios disponibles por tipo

get_last_folio

Último folio usado para un tipo de DTE

Related MCP server: mcp-sii

Instalación

npm install
npm run build

Variables de entorno

Variable

Descripción

Default

API_BASE_URL

URL de la API IntegraDTE

http://localhost:5058

API_KEY

API Key de autenticación (requerida)

Uso con Claude Desktop

Agregar a claude_desktop_config.json:

{
  "mcpServers": {
    "integradte": {
      "command": "npx",
      "args": ["-y", "@integradte/mcp"],
      "env": {
        "API_BASE_URL": "https://api.integradte.cl",
        "API_KEY": "tu_api_key"
      }
    }
  }
}

Uso con npx (una vez publicado)

{
  "mcpServers": {
    "integradte": {
      "command": "npx",
      "args": ["-y", "@integradte/mcp"],
      "env": {
        "API_BASE_URL": "https://api.integradte.cl",
        "API_KEY": "tu_api_key"
      }
    }
  }
}

Tipos de DTE soportados

Código

Tipo

33

Factura Electrónica

34

Factura Exenta

39

Boleta Electrónica

41

Boleta Exenta

46

Factura de Compra

52

Guía de Despacho

56

Nota de Débito

61

Nota de Crédito

Desarrollo

npm install
npm run dev    # Watch mode
npm run build  # Build
npm start      # Run

Publicación a npm con versiones automáticas

Este repo usa Changesets + GitHub Actions.

Configuración inicial

  1. Crear el secret NPM_TOKEN en GitHub (Settings > Secrets and variables > Actions).

  2. El token debe tener permisos para publicar en el scope @integradte.

  3. Si la organización exige 2FA para publish, usa un token con bypass 2fa.

Flujo de versiones

  1. Para cada cambio que quieras versionar, crea un changeset:

    pnpm changeset
  2. Haz commit del archivo en .changeset/*.md junto a tu cambio.

  3. Al hacer merge a main, el workflow Release crea/actualiza un PR de release con el nuevo versionado.

  4. Cuando ese PR se mergea, el mismo workflow publica automáticamente a npm.

Available Tools

11 tools
get_business_detailA

Obtiene el detalle de una empresa específica: RUT, razón social, giro comercial, dirección, comuna, estado, resolución SII y si tiene certificado digital cargado. Usar cuando el cliente pregunta por los datos de una empresa en particular.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It implies a read operation by saying 'Obtiene el detalle' and enumerates return fields, but it does not explicitly state this is read-only, mention required permissions, error behavior, or explain how the 'specific company' is selected given that the input schema has no parameters. This leaves significant ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: one sentence listing key return fields, and one sentence giving usage guidance. It is front-loaded with the main purpose and includes no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool is simple, the description is incomplete for an agent because the input schema has no parameters yet the description implies a specific company. It does not clarify that the business must be selected through some external context or state, nor does it specify output structure beyond the field list. This is a meaningful gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100%, so the baseline is 4. The description doesn't need to explain parameter semantics, though it creates slight confusion by referring to 'una empresa específica' without explaining how the company is identified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Obtiene el detalle de una empresa específica') and lists the specific fields returned (RUT, razón social, giro comercial, etc.). It also differentiates from list_businesses by emphasizing it targets one particular company rather than a list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool: 'Usar cuando el cliente pregunta por los datos de una empresa en particular.' It provides a clear use context but does not mention alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_certificate_infoA

Obtiene información del certificado digital de la empresa: titular, RUT, fecha de vencimiento y estado. Usar cuando el cliente pregunta por su certificado o si está por vencer. NO retorna el certificado en sí por seguridad.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are present, the description carries the burden of behavior. It discloses that the tool returns only metadata and explicitly warns that it does not return the certificate itself for security reasons. This is informative, though it could also mention authentication requirements or the read-only nature of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy. The key scope ('información del certificado') is front-loaded, and the security caveat is placed at the end without wasting words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only info tool, this is complete: it states what data is returned, when to use it, and the critical limitation. No output schema exists, but the listed fields provide enough expectation of the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema is fully covered (100%) and the baseline is 4. The description adds no parameter-level detail because none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Obtiene información') and identifies the resource ('certificado digital de la empresa'), enumerating the returned fields: titular, RUT, fecha de vencimiento y estado. This clearly distinguishes it from sibling tools like get_document or get_user_info by the subject matter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: 'Usar cuando el cliente pregunta por su certificado o si está por vencer.' It does not name an alternative tool or an explicit when-not condition, but the use context is clear enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_documentA

Obtiene el detalle completo de un documento tributario electrónico (DTE) por su ID. Retorna tipo, folio, emisor, receptor, montos, estado SII e historial de estados. Usar cuando el cliente pregunta por un documento específico.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses what the tool returns (tipo, folio, emisor, receptor, montos, estado SII, historial), which is useful. However, it does not explicitly state that the operation is read-only, does not mention error conditions, authorization requirements, or any side effects. For a simple get, this is adequate but not thorough; a 3 reflects the missing safety disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence states the purpose and return values; the second gives usage guidance. It is front-loaded with the core functionality and is highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema and no annotations, the description should be self-sufficient. It covers the purpose, usage, and return content, which is good. However, the mismatch with the schema (claiming an ID parameter that does not exist) creates a significant gap in completeness. Additionally, it does not mention any limitations or error scenarios. For a simple get, a 3 is appropriate because the core information is present but the parameter inconsistency undermines completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description claims the tool retrieves a document 'por su ID', implying an ID parameter, but the input schema has zero parameters. This is a direct contradiction between the description and the schema. Since the schema provides no parameter documentation, the description's mention of an ID is misleading and would cause an agent to look for a parameter that does not exist. This is a severe issue, so a score of 1 is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('obtiene'), the resource ('documento tributario electrónico DTE'), and the mechanism ('por su ID'). It also enumerates the returned fields (tipo, folio, emisor, receptor, montos, estado SII, historial), making the tool's purpose unambiguous and distinguishable from list_documents (which lists documents) and get_document_stats (which provides statistics).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context: 'Usar cuando el cliente pregunta por un documento específico.' This tells the agent when to invoke it, but it does not explicitly name alternatives or state when not to use it, so it lacks exclusions or alternative routing. A 4 is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_document_statsA

Estadísticas agregadas de documentos tributarios: total emitidos, monto total facturado, desglose por tipo DTE (facturas, boletas, notas de crédito, etc.), documentos con error. Usar cuando preguntan totales, resúmenes, cuánto han facturado o cuántos documentos emitieron.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are empty, so the description carries the full burden. It discloses what the tool returns (aggregates, breakdowns) but not behavioral traits like whether it is read-only, safe, or any side effects. For a statistics tool, this is a gap—it should state it's a read operation. The description implies no mutation but does not explicitly state it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the purpose and then giving usage guidance. Every word earns its place; no fluff or repetition. The Spanish is concise and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the return content well but omits scope context—does it return stats for the current user, a specific business, or all documents? Given siblings like get_user_info and list_businesses, the scope is ambiguous. Also, no mention of time period or filters. It's adequate for a no-parameter tool but leaves important contextual details unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides complete coverage (100%). Per guidelines, a 0-param tool gets a baseline of 4. The description adds no parameter info because there are none, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: aggregated statistics of tax documents, listing specific metrics (total issued, total invoiced amount, breakdown by DTE type, documents with error). It uses a specific verb ('obtener estadísticas') and resource ('documentos tributarios'), distinguishing it from list-oriented siblings like list_documents and get_document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it: 'Usar cuando preguntan totales, resúmenes, cuánto han facturado o cuántos documentos emitieron.' This is clear trigger-based guidance. It does not mention when not to use it or name alternatives, but the context makes the intended use obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dte_balanceA

Obtiene el saldo de DTEs disponibles del cliente. Retorna packs activos, DTEs restantes y fecha de vencimiento. Usar cuando el cliente pregunta cuántos documentos le quedan o su saldo.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral disclosure burden. It does disclose the output (packs, remaining DTEs, expiration date), which implies a read-only operation, but it does not explicitly state whether it has side effects, requires authentication, or could fail. For a simple balance query, this is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no redundancy. The purpose is front-loaded, and the usage trigger is placed at the end, maintaining readability. Every sentence contributes meaning without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description fully explains what the agent needs: what the tool does, what it returns, and when to use it. Nothing essential is missing for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is vacuously 100%. The description adds no parameter-specific meaning because there are none, but this is not a gap. The baseline of 4 for a no-parameter tool is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('obtiene el saldo de DTEs disponibles') and names the exact resource (DTE balance) plus what it returns (active packs, remaining DTEs, expiration). This clearly distinguishes it from sibling tools like get_document_stats or get_numeration_summary, which focus on document counts or summaries rather than a balance concept.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Usar cuando el cliente pregunta cuántos documentos le quedan o su saldo.' This gives an unambiguous trigger condition. While it does not list alternatives or exclusions, the directive is specific enough for an agent to select this tool appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_last_folioB

Obtiene el último folio usado para un tipo de DTE específico. Útil para saber cuál fue el último número de folio emitido. Requiere el código SII del tipo de documento.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are empty, so the description must carry the full behavioral disclosure. It does not state side effects, permissions, rate limits, or what happens if no folio exists. It also claims a required SII code that is not present in the schema, which is misleading about the tool's actual invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose, and contains no fluff. Every sentence adds value: it states what it does, why it is useful, and a prerequisite. It is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description must fully explain behavior and return values. It fails to describe the output format or any error cases. Moreover, it mentions a required input that is absent from the schema, making the tool's contract incomplete and ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters, so the baseline is 3 per the rubric. However, the description explicitly states a requirement for the SII code, which is not represented in the schema. This introduces a parameter that does not exist in the input schema, causing confusion and conflicting with the schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (obtaining the last folio used) and the resource (a specific DTE type). It explains the purpose (knowing the last issued folio number) and mentions a required input (SII code). However, it does not explicitly differentiate from sibling tools like get_numeration_summary, which could also deal with numeration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context for when to use the tool (to check the last issued folio number), but it does not mention alternatives or conditions where a different tool should be preferred. No exclusions or comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_numeration_summaryA

Resumen de folios (CAF) disponibles por tipo de DTE. Muestra cuántos folios quedan, rangos activos, agotados y vencidos. Usar cuando el cliente pregunta cuántos folios le quedan, si tiene folios disponibles para boletas/facturas, o si necesita solicitar más al SII.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output content (remaining folio counts, active/exhausted/expired ranges) and implies a read-only query, but does not address authentication requirements, rate limits, or side effects. This is adequate but lacks depth on operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences: the first states the core purpose and content, the second provides usage scenarios. It is front-loaded with the essential information and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no params, no output schema, and no annotations, the description adequately explains what the tool returns and when to use it. It could add example output formats or clarify data source, but for a zero-parameter read-only summary it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description adds meaningful context about what the summary contains, which helps an agent understand the tool's output even without parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a summary of available folios (CAF) by DTE type, showing remaining counts and range states. This distinguishes it from siblings like get_last_folio (single last folio) and get_dte_balance (balance), giving the agent a precise idea of what to expect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: when a client asks how many folios remain, availability for boletas/facturas, or need to request more from SII. It does not mention alternatives or when not to use it, but the provided use cases are clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_infoA

Obtiene información del usuario autenticado: nombre, email, estado de la cuenta. Usar cuando el cliente pregunta por sus datos personales o de su cuenta.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It transparently identifies the operation as retrieval of authenticated-user information and lists the meaningful fields returned. It could explicitly state that no data is modified, but the resource and wording make the read-only nature strongly implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The first sentence states the core purpose and result fields; the second provides the practical triggering condition. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only info lookup, this description is complete: it names the resource, the fields returned, and the user-facing scenario in which it should be used. The absence of an output schema is mitigated by listing the expected information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description correctly avoids inventing parameter details and instead clarifies what data the caller will receive, which is appropriate for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Obtiene') with a clear resource ('información del usuario autenticado') and enumerates the returned fields: nombre, email, estado de la cuenta. It is immediately distinguishable from the sibling tools, which all deal with certificates, businesses, documents, or purchases rather than the authenticated user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: when the client asks about their personal data or account. While it does not mention exclusions or alternative tools, the context is clear enough for a zero-parameter, user-specific lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_businessesA

Lista todas las empresas registradas del usuario. Retorna RUT, razón social, giro, estado y si tiene certificado digital cargado. Usar cuando el cliente pregunta cuántas empresas tiene o cuáles son.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. 'Lista' and 'Retorna' imply a read-only operation, and the description discloses exactly what information is returned. It does not discuss auth or pagination, but for a zero-parameter list operation these are minor gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences convey the purpose, the return contents, and the exact user scenario in which the tool should be used. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, zero-parameter list tool without an output schema, the description is complete: it names the resource, the data returned, and the triggering use case. An agent has enough information to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parametersaineisto, and the rubric assigns a baseline of 4 for no-parameter tools. The description adds relevant information about the output fields, so no parameter documentation is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific action and resource: 'Lista todas las empresas registradas del usuario.' It names the returned fields (RUT, razón social, giro, estado, certificado digital), so an agent can clearly distinguish it from siblings like get_business_detail or get_user_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger: 'Usar cuando el cliente pregunta cuántas empresas tiene o cuáles son.' It could also mention when not to use it or point to get_business_detail for a single company, but the stated usage context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentsA

Lista documentos tributarios emitidos con filtros opcionales. Permite filtrar por tipo DTE (33=Factura, 34=Factura Exenta, 39=Boleta, 41=Boleta Exenta, 46=Factura Compra, 52=Guía Despacho, 56=Nota Débito, 61=Nota Crédito), estado y rango de fechas. Retorna lista paginada con folio, tipo, monto, estado y fecha de emisión.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the operation returns a paginated list with specific fields and that filters are optional. This gives a good picture of expected behavior, though it does not explicitly state read-only nature or error conditions. For a listing tool, this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact two-sentence text that front-loads the main purpose, then details filters and return fields. It is efficient and well-structured, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions pagination and return fields, but the schema-description mismatch leaves a major gap: it does not clarify that filters cannot actually be passed. Pagination mechanics (page size, next page) are also omitted. Given no output schema and no annotations, the description should have been more thorough and accurate to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description claims optional filters for type, status, and date range, but the input schema is completely empty. This is a critical mismatch: an agent cannot pass these filters per the schema, making the description misleading. The baseline for 0 params is 4, but the description adds filter details that are not supported, actively harming usability. It fails to align with the actual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists issued tax documents, specifies optional filters with concrete DTE type codes and meanings, and describes the returned fields. This is a specific verb+resource that distinguishes it from siblings like list_purchases (purchases vs issued) and get_document (single vs list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context that it lists issued documents with filters, which implies when to use it. However, it does not explicitly mention alternatives or when-not-to-use scenarios, though the scope is well-defined. No exclusions are stated, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_purchasesA

Lista las facturas de compra recibidas de proveedores (libro de compras). Retorna RUT emisor, razón social, monto, tipo DTE y fecha. Usar cuando el cliente pregunta por sus compras o facturas recibidas.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses that the tool lists purchase invoices and returns specific fields, but it does not explicitly confirm read-only behavior, pagination, ordering, or error conditions. The verb 'Lista' implies a read operation, but richer disclosure would be safer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences: the first states the action and output fields, the second gives the exact trigger condition. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter listing tool with no output schema, the description sufficiently covers what it returns (RUT emisor, razón social, monto, tipo DTE, fecha) and when to use it. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so the description does not need to explain parameters. The baseline of 4 applies because there is nothing for the description to add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Lista') and names the exact resource: purchase invoices received from suppliers (libro de compras). It also lists the returned fields, making it clearly distinguishable from siblings like list_documents, which is broader.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: 'Usar cuando el cliente pregunta por sus compras o facturas recibidas.' This is clear and actionable, though it does not mention exclusions or compare against a specific alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv1.0.2
    • First observedget_business_detail
    • First observedget_certificate_info
    • First observedget_document
    • First observedget_document_stats
    • First observedget_dte_balance
    • First observedget_last_folio
    • First observedget_numeration_summary
    • First observedget_user_info
    • First observedlist_businesses
    • First observedlist_documents
    • First observedlist_purchases

TDQS

A4/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct resource: user, certificate, businesses, emitted documents, document stats, folios, DTE balance, and received purchases. Even similar-looking tools like list_documents and list_purchases are clearly separated by emitted vs. received documents.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern, using get_ for singular resources and list_ for plural collections. Descriptor suffixes like _stats, _summary, and _balance are applied uniformly and do not break the pattern.

Tool Count5/5

With 11 tools, the server is well-scoped for a Chilean DTE/invoicing query assistant. Each tool covers a meaningful query area without redundancies or excessive fragmentation.

Completeness4/5

The server covers the core read-only domain well: user info, businesses, certificates, document listing/detail/stats, folios, balance, and purchases. Minor gaps exist such as no document file/PDF download and no purchase detail view, but agents can answer most common customer queries.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for creating and fiscalizing invoices via solo.com.hr API. Enables AI agents to generate invoices, retrieve invoice details, list invoices, and check next invoice number.
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Open-source MCP server for Chile's SII free invoicing system, enabling AI agents to query issued and received tax documents.
    12
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for querying Brazilian electronic service invoices (NFSe) from the national portal. Allows AI agents to authenticate with digital certificates and search, detail, and download PDFs of issued NFSe.
    3
    42 npm
    16
    ISC
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP 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