> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cucu.bo/llms.txt
> Use this file to discover all available pages before exploring further.

# Arquitectura

> Como se conectan los clientes MCP con el CUCU MCP Server y la infraestructura subyacente.

## Arquitectura

<div style={{background: '#0f172a', border: '1px solid #1e293b', borderRadius: '8px', padding: '16px 20px', marginBottom: '0', fontFamily: 'monospace'}}>
  <div style={{fontSize: '10px', fontWeight: '600', textTransform: 'uppercase', letterSpacing: '1.5px', color: '#475569', marginBottom: '12px'}}>MCP Clients</div>

  <div style={{display: 'flex', gap: '8px', flexWrap: 'wrap'}}>
    <code style={{fontSize: '12px', color: '#94a3b8', padding: '6px 12px', background: '#1e293b', borderRadius: '6px', border: '1px solid #334155'}}>Claude Desktop</code>
    <code style={{fontSize: '12px', color: '#94a3b8', padding: '6px 12px', background: '#1e293b', borderRadius: '6px', border: '1px solid #334155'}}>Cursor</code>
    <code style={{fontSize: '12px', color: '#94a3b8', padding: '6px 12px', background: '#1e293b', borderRadius: '6px', border: '1px solid #334155'}}>Windsurf</code>
    <code style={{fontSize: '12px', color: '#94a3b8', padding: '6px 12px', background: '#1e293b', borderRadius: '6px', border: '1px solid #334155'}}>VS Code</code>
    <code style={{fontSize: '12px', color: '#94a3b8', padding: '6px 12px', background: '#1e293b', borderRadius: '6px', border: '1px solid #334155'}}>Claude Code</code>
    <code style={{fontSize: '12px', color: '#94a3b8', padding: '6px 12px', background: '#1e293b', borderRadius: '6px', border: '1px solid #334155'}}>Any MCP client</code>
  </div>
</div>

<div style={{textAlign: 'center', padding: '4px 0', fontFamily: 'monospace'}}>
  <code style={{fontSize: '11px', color: '#64748b', background: '#0f172a', padding: '4px 14px', borderRadius: '4px', border: '1px solid #1e293b'}}>POST /mcp — Streamable HTTP — Header: X-API-Key</code>
</div>

<div style={{background: '#0f172a', border: '1px solid #334155', borderRadius: '8px', padding: '20px', marginBottom: '0', fontFamily: 'monospace'}}>
  <div style={{fontSize: '10px', fontWeight: '600', textTransform: 'uppercase', letterSpacing: '1.5px', color: '#475569', marginBottom: '4px'}}>CUCU MCP Server</div>
  <div style={{fontSize: '12px', color: '#64748b', marginBottom: '16px'}}>14 tools — Streamable HTTP + SSE fallback</div>

  <div style={{display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '12px'}}>
    <div style={{background: '#1e293b', border: '1px solid #334155', borderRadius: '6px', padding: '12px'}}>
      <div style={{fontSize: '11px', fontWeight: '600', color: '#64748b', textTransform: 'uppercase', letterSpacing: '1px', marginBottom: '10px'}}>Facturacion (8)</div>

      <div style={{display: 'flex', flexDirection: 'column', gap: '4px'}}>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>crearFactura()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>listarFacturas()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>obtenerFactura()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>obtenerFacturaPorCuf()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>anularFactura()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>verificarEstadoFactura()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>crearNotaCreditoDebito()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>resumenFacturacion()</code>
      </div>
    </div>

    <div style={{background: '#1e293b', border: '1px solid #334155', borderRadius: '6px', padding: '12px'}}>
      <div style={{fontSize: '11px', fontWeight: '600', color: '#64748b', textTransform: 'uppercase', letterSpacing: '1px', marginBottom: '10px'}}>Utilidades SIAT (6)</div>

      <div style={{display: 'flex', flexDirection: 'column', gap: '4px'}}>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>verificarFormatoNit()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>historialCliente()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>buscarNormativa()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>erroresComunesSiat()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>buscarContingencias()</code>
        <code style={{fontSize: '12px', color: '#e2e8f0', padding: '3px 0'}}>calcularMontoLiteral()</code>
      </div>
    </div>
  </div>
</div>

<div style={{textAlign: 'center', padding: '4px 0', fontFamily: 'monospace'}}>
  <code style={{fontSize: '11px', color: '#64748b', background: '#0f172a', padding: '4px 14px', borderRadius: '4px', border: '1px solid #1e293b'}}>SOAP / JDBC / S3 SDK / gRPC</code>
</div>

<div style={{background: '#0f172a', border: '1px solid #1e293b', borderRadius: '8px', padding: '16px 20px', fontFamily: 'monospace'}}>
  <div style={{fontSize: '10px', fontWeight: '600', textTransform: 'uppercase', letterSpacing: '1.5px', color: '#475569', marginBottom: '12px'}}>Infrastructure</div>

  <div style={{display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: '8px'}}>
    <div style={{background: '#1e293b', border: '1px solid #334155', borderRadius: '6px', padding: '12px', textAlign: 'center'}}>
      <div style={{fontSize: '12px', fontWeight: '600', color: '#e2e8f0'}}>SIAT</div>
      <div style={{fontSize: '10px', color: '#475569', marginTop: '2px'}}>SOAP · SIN Bolivia</div>
    </div>

    <div style={{background: '#1e293b', border: '1px solid #334155', borderRadius: '6px', padding: '12px', textAlign: 'center'}}>
      <div style={{fontSize: '12px', fontWeight: '600', color: '#e2e8f0'}}>PostgreSQL</div>
      <div style={{fontSize: '10px', color: '#475569', marginTop: '2px'}}>JDBC · RDS</div>
    </div>

    <div style={{background: '#1e293b', border: '1px solid #334155', borderRadius: '6px', padding: '12px', textAlign: 'center'}}>
      <div style={{fontSize: '12px', fontWeight: '600', color: '#e2e8f0'}}>S3</div>
      <div style={{fontSize: '10px', color: '#475569', marginTop: '2px'}}>SDK · PDF/XML</div>
    </div>

    <div style={{background: '#1e293b', border: '1px solid #334155', borderRadius: '6px', padding: '12px', textAlign: 'center'}}>
      <div style={{fontSize: '12px', fontWeight: '600', color: '#e2e8f0'}}>Qdrant</div>
      <div style={{fontSize: '10px', color: '#475569', marginTop: '2px'}}>gRPC · RAG</div>
    </div>
  </div>
</div>
