Model Context Protocol

Guía del Servidor MCP

Conecta agentes de IA directamente con la API de Singula usando el protocolo MCP.

¿Qué es MCP?

El Model Context Protocol (MCP) es un estándar abierto que permite a agentes de IA conectarse con herramientas y datos externos. El servidor MCP de Singula expone todas nuestras herramientas de verificación como tools que cualquier agente compatible puede usar.

Agente IA
Claude, GPT, etc.
MCP Server
Singula
Singula API
Verificación

Conexión

El MCP de Singula es un servidor remoto (SSE/HTTP), no un binario que se instale. En Claude Code lo conectas con un solo comando:

Opción A (recomendada) — un comando
terminal
claude mcp add --transport sse singula "https://api.singula.mx/mcp/sse?api_key=sk_live_xxx"

Con scope de proyecto se comparte con tu equipo: se commitea en .mcp.json.

terminal
claude mcp add --transport sse singula --scope project "https://api.singula.mx/mcp/sse?api_key=sk_live_xxx"

Configuración manual

Si prefieres editar el archivo a mano, define el servidor en .mcp.json (proyecto) o ~/.claude.json (usuario):

Opción B — .mcp.json (SSE)
.mcp.json
{
  "mcpServers": {
    "singula": {
      "type": "sse",
      "url": "https://api.singula.mx/mcp/sse?api_key=${SINGULA_API_KEY}"
    }
  }
}
Opción C — transporte HTTP con Bearer
.mcp.json
{
  "mcpServers": {
    "singula": {
      "type": "http",
      "url": "https://api.singula.mx/mcp",
      "headers": { "Authorization": "Bearer sk_live_xxx" }
    }
  }
}

.claude/settings.json NO define servers MCP en Claude Code. Las definiciones van en .mcp.json (proyecto) o ~/.claude.json (usuario, vía claude mcp add). El bloque mcpServers dentro de .claude/settings.json se ignora.

La API key puede ir en la query (?api_key=) o en el header Authorization: Bearer — ambas están soportadas. Reemplaza sk_live_xxx por tu API key real del panel de Singula.

Solución de problemas

Los errores más comunes al conectar el servidor y cómo resolverlos.

Error POSTing to endpoint (HTTP 400)

El servidor queda en estado failed. Era un bug del servidor, ya corregido — no es tu configuración. Si persiste, contacta a soporte.

MCP server "singula" has a "url" but no "type"

Falta "type": "sse" (o "http") en el bloque del servidor en .mcp.json.

El servidor no aparece

Estaba definido en .claude/settings.json en vez de .mcp.json o ~/.claude.json. Verifícalo con claude mcp list.

⏸ Pending approval

Corre claude de forma interactiva dentro del proyecto para aprobar el servidor.

Herramientas Disponibles

El servidor MCP expone las siguientes herramientas que tu agente de IA puede usar:

customer_id O datos directos. Las tools marcadas sin cliente aceptan customer_id o los campos del dato (nombre, teléfono, correo, RFC, el archivo…). En las tools de datos (checkBlacklist, getJudicialRecords, getJudicialRecordsMoral, getIntelligence, checkEmail, checkPhone y sus variantes Premium) son excluyentes: mandar ambos o ninguno devuelve un error claro; en las de archivo (extractDocument, verifyCsf, verifyPoder, extractIne) omite customer_id para ir directo, y checkFiel y sendEmailOtp aceptan al menos uno. No hay tools nuevas para las consultas directas: son las mismas, con una forma más de llamarlas. Una llamada con datos directos no toca ningún cliente y cobra exactamente lo mismo, y el sandbox devuelve los mismos mocks.

createCustomer

Crea persona física con datos personales

createMoralCustomer

Crea persona moral (empresa)

getCustomer

Detalle completo de un cliente

getCurp

Calcula el CURP de un cliente (sin cliente: calculateCurp)

validateCurp

Valida el CURP de un cliente contra RENAPO (sin cliente: validateCurpDirect)

getRfc

Calcula el RFC de un cliente (sin cliente: calculateRfc)

validateRfc

Valida el RFC de un cliente ante el SAT (sin cliente: validateRfcDirect)

extractIne

sin cliente

OCR INE/IFE + Lista Nominal Vigente

checkBlacklist

sin cliente

Busca en listas de sanciones (OFAC, UE, ONU, UK). En empresas, legal_name opcional: criba razón social y nombre comercial en una sola consulta

getJudicialRecords

sin cliente

Antecedentes judiciales persona física

getJudicialRecordsMoral

sin cliente

Antecedentes judiciales persona moral. legal_name opcional: razón social y nombre comercial se buscan en una sola consulta

getIntelligence

sin cliente

Investigación OSINT: redes, noticias, registros

createVerification

Crea el link KYC (INE/pasaporte + selfie + prueba de vida). Opcionales: redirect_url, external_id, metadata, document_types, language, expires_in_hours

getVerificationStatus

Estado y veredicto de la sesión: session_status, decision, score, verdict y el resultado completo

getVerificationResult

Lo mismo más las fotos firmadas; los cuadros de la prueba de vida sólo si los pides

getVerificationFiles

URLs firmadas de las fotos de la última verificación de un cliente

searchCustomers

Busca clientes por nombre o ID

listCustomers

Lista todos los clientes paginado

extractDocument

sin cliente

Lee cualquier documento: tipo, datos, checklist y autenticidad

verifyCsf

sin cliente

Constancia fiscal cotejada contra el registro del SAT

verifyPoder

sin cliente

Poder notarial: apoderado, facultades y vigencia

checkFiel

sin cliente

Certificados de e.firma y CSD de un RFC, con su vigencia

sendEmailOtp

sin cliente

Manda un código de 6 dígitos y perfila el dominio

verifyEmailOtp

Verifica el código de 6 dígitos recibido

kybExpediente

Cruza los documentos de una empresa entre sí: 26 controles

getVerificationPolicy

Qué tan estricta es tu verificación: umbrales, reglas, los 26 controles y la retención de consultas directas

updateVerificationPolicy

Mueve los umbrales, apaga un control, cierra el candado del kit o caduca las consultas directas

checkEmail

sin cliente

Verifica dirección de correo electrónico

checkPhone

sin cliente

Verifica número telefónico

Ejemplos de Uso

Una vez configurado, tu agente de IA puede usar las herramientas directamente:

Verificar identidad completa

"Crea un cliente con estos datos y valida su CURP contra RENAPO"

createCustomer()getCurp()validateCurp()

Investigación de antecedentes

"Busca los antecedentes judiciales y blacklist de este cliente"

getJudicialRecords()checkBlacklist()

Due diligence automatizado

"Haz una investigación OSINT completa del cliente cus_abc123"

getCustomer()getIntelligence()checkBlacklist()getJudicialRecords()

Alta de una empresa

Da de alta a Constructora Demo: verifica su constancia, lee el acta y el poder, revisa la e.firma y arma el expediente.

createMoralCustomer()verifyCsf()extractDocument()verifyPoder()checkFiel()kybExpediente()

Una consulta suelta, sin cliente

¿El teléfono +52 55 1234 5678 es real y de quién es? Y revisa si Juan Pérez García está en listas de sanciones. No me lo guardes como cliente todavía.

checkPhonePremium()checkBlacklist()

Clientes Compatibles

El servidor MCP de Singula funciona con cualquier cliente que soporte el protocolo:

🤖

Claude Desktop

Aplicación oficial de Anthropic

💻

Cursor

IDE con IA integrada

⌨️

Claude Code

CLI de Claude para desarrollo

🏄

Windsurf

IDE con agentes de IA

🔌

Cline

Extensión VS Code con MCP

Conecta tu agente de IA hoy

Sin contratos. Sandbox gratuito.