Crear agenteCreate agent

Servidor MCP de Zentix

Conecta tu cuenta de Zentix a Claude, ChatGPT, Cursor, Hermes o tu propio agente y opera CRM, reuniones, enlaces de pago, agentes IA y métricas por lenguaje natural — sin escribir código contra la API. Endpoint: Connect your Zentix account to Claude, ChatGPT, Cursor, Hermes or your own agent and operate CRM, meetings, payment links, AI agents and metrics in natural language — without writing code against the API. Endpoint: https://app.zentixchatbot.cloud/api/mcp

11 tools11 tools Token o API keyToken or API key Solo lectura por defectoRead-only by default MCP 2025-06-18

1 Qué es el servidor MCPWhat the MCP server is

MCP (Model Context Protocol) es el estándar abierto con el que Claude, ChatGPT, Cursor y otros asistentes conectan herramientas externas. El servidor MCP de Zentix expone tu cuenta como herramientas seguras: tu asistente puede consultar contactos, conversaciones y tratos del CRM, revisar escalaciones y seguimientos, leer la agenda y tus agentes IA, consultar métricas, crear enlaces de pago y agendar reuniones — siempre con tu permiso y con recibo verificable. MCP (Model Context Protocol) is the open standard Claude, ChatGPT, Cursor and other assistants use to connect external tools. The Zentix MCP server exposes your account as safe tools: your assistant can query CRM contacts, conversations and deals, review escalations and follow-ups, read your agenda and AI agents, pull metrics, create payment links and book meetings — always with your permission and a verifiable receipt.

  • Multi-cliente: funciona con cualquier cliente MCP (Claude Desktop, ChatGPT connectors, Cursor, Hermes, agentes propios).Multi-client: works with any MCP client (Claude Desktop, ChatGPT connectors, Cursor, Hermes, custom agents).
  • Dos modos: conexión remota (URL + credencial, cero instalación) o local (stdio, el paquete @zentix/mcp-server).Two modes: remote connection (URL + credential, zero install) or local (stdio, the @zentix/mcp-server package).
  • Multi-tenant: cada usuario conecta su propia cuenta; el aislamiento por tenant es idéntico al del dashboard.Multi-tenant: each user connects their own account; tenant isolation is identical to the dashboard.
  • Más que tools: expone prompts (playbooks de ventas y métricas) y recursos (documentación) además de las herramientas.More than tools: also exposes prompts (sales and metrics playbooks) and resources (documentation) beyond the tools.

2 Tools disponiblesAvailable tools

ToolQué haceWhat it doesTipoType
zentix_crm_contacts_searchBusca o lee contactos del CRMSearches or reads CRM contactsLecturaRead
zentix_crm_conversations_listLista conversaciones por contacto, estado o canalLists conversations by contact, status or channelLecturaRead
zentix_crm_deals_listLista tratos del pipeline por etapaLists pipeline deals by stageLecturaRead
zentix_crm_escalations_listLista escalaciones y handoffs a humanoLists escalations and human handoffsLecturaRead
zentix_crm_followups_listLista seguimientos pendientesLists pending follow-upsLecturaRead
zentix_payment_links_readLee enlaces de pago y la configuración (versión incluida)Reads payment links and the config (version included)LecturaRead
zentix_agenda_meetings_listLee las reuniones de un mes (YYYY-MM)Reads the meetings of one month (YYYY-MM)LecturaRead
zentix_agents_listLista los agentes IA (chatbots) de la cuentaLists the account AI agents (chatbots)LecturaRead
zentix_metrics_summaryMétricas de overview, analytics y ventas por rango de fechasOverview, analytics and sales metrics for a date rangeLecturaRead
zentix_agenda_meeting_createAgenda una reunión nueva (requiere escrituras activadas)Books a new meeting (requires writes enabled)EscrituraWrite
zentix_payment_link_createCrea un enlace de pago (requiere escrituras activadas)Creates a payment link (requires writes enabled)EscrituraWrite
Las herramientas destructivas (eliminar contactos, borrar datos, configurar canales) y las rutas de administración no existen en el servidor MCP: una lista blanca en código las bloquea aunque el modelo las pida por nombre. Destructive tools (deleting contacts, purging data, configuring channels) and admin routes do not exist on the MCP server: a code-level allowlist blocks them even if the model asks for them by name.

3 Credenciales: token o API keyCredentials: token or API key

El endpoint acepta dos tipos de credencial en Authorization: Bearer <credencial>: The endpoint accepts two credential types in Authorization: Bearer <credential>:

  • Firebase ID token — el token de tu sesión (currentUser.getIdToken()). Vale ~1 hora; renuévalo con getIdToken(true). Ideal para uso interactivo.Firebase ID token — your session token (currentUser.getIdToken()). Valid ~1 hour; renew with getIdToken(true). Best for interactive use.
  • API key de MCP (zmx_…) — clave de larga vida para agentes desatendidos (Hermes, automatizaciones). El servidor la resuelve a tu tenant y mintea el token por ti. Recomendada.MCP API key (zmx_…) — a long-lived key for unattended agents (Hermes, automations). The server resolves it to your tenant and mints the token for you. Recommended.

Crear una API keyCreating an API key

Autenticado con tu token de sesión (por ejemplo desde la consola del navegador en app.zentixchatbot.cloud): Authenticated with your session token (for example from the browser console on app.zentixchatbot.cloud):

const token = await firebase.auth().currentUser.getIdToken();

// Crear la key (el valor completo se muestra UNA sola vez)
const res = await fetch('/api/mcp-keys', {
  method: 'POST',
  headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: 'Mi agente' })
});
const { key } = await res.json();   // zmx_... → guárdala en tu gestor de secretos

// Listar y revocar
GET    /api/mcp-keys
DELETE /api/mcp-keys?keyId=<id>
Las keys se guardan solo como hash (SHA-256), son revocables, limitadas a 20 activas por cuenta, y se pueden eliminar en cualquier momento. El valor completo nunca vuelve a mostrarse. Keys are stored hashed (SHA-256) only, are revocable, limited to 20 active per account, and can be deleted at any time. The full value is never shown again.

4 Conexión remota (recomendada)Remote connection (recommended)

La conexión remota no requiere instalar nada: el cliente MCP llama a https://app.zentixchatbot.cloud/api/mcp y se autentica con tu credencial. The remote connection requires no install: the MCP client calls https://app.zentixchatbot.cloud/api/mcp and authenticates with your credential.

Claude Desktop / Claude Code

{
  "mcpServers": {
    "zentix": {
      "type": "http",
      "url": "https://app.zentixchatbot.cloud/api/mcp",
      "headers": { "Authorization": "Bearer <TU_CREDENCIAL>" }
    }
  }
}

Claude Code (CLI)

claude mcp add --transport http zentix https://app.zentixchatbot.cloud/api/mcp \
  --header "Authorization: Bearer <TU_CREDENCIAL>"

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "zentix": {
      "url": "https://app.zentixchatbot.cloud/api/mcp",
      "headers": { "Authorization": "Bearer <TU_CREDENCIAL>" }
    }
  }
}

Prueba rápida con curlQuick test with curl

curl -s https://app.zentixchatbot.cloud/api/mcp \
  -H "Authorization: Bearer $ZENTIX_CREDENTIAL" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Sin credencial la respuesta es 401 con un mensaje accionable; nunca hay reintentos silenciosos con un token vencido. Without a credential the response is 401 with an actionable message; there are never silent retries with an expired token.

5 Conexión local (stdio)Local connection (stdio)

Para uso interno o instalación offline, el paquete @zentix/mcp-server corre en tu máquina sobre stdio. Empaqueta el tarball desde el repositorio (la publicación en npm es un paso aparte), instálalo global y registra el comando zentix-mcp. For internal or offline use, the @zentix/mcp-server package runs on your machine over stdio. Pack the tarball from the repository (npm publishing is a separate step), install it globally and register the zentix-mcp command.

git clone https://github.com/jgazcagtz/zentix_1.0 && cd zentix_1.0
npm pack ./mcp                        # → zentix-mcp-server-0.4.0.tgz
npm install -g ./zentix-mcp-server-0.4.0.tgz
{
  "mcpServers": {
    "zentix": {
      "command": "zentix-mcp",
      "env": {
        "ZENTIX_ID_TOKEN": "<TU_FIREBASE_ID_TOKEN>",
        "ZENTIX_MCP_ALLOW_WRITES": "0"
      }
    }
  }
}
VariableVariableDefaultDefaultPropósitoPurpose
ZENTIX_ID_TOKEN—Token de Firebase del usuario (obligatorio para llamar tools)User Firebase token (required to call tools)
ZENTIX_API_BASEhttps://app.zentixchatbot.cloudOrigen de la API (solo orígenes públicos https)API origin (public https origins only)
ZENTIX_MCP_ALLOW_WRITES0Interruptor local de escrituras (1 = habilita las tools de creación)Local write switch (1 = enables the create tools)

6 Escrituras y reciboWrites and receipts

Las únicas herramientas de escritura son zentix_agenda_meeting_create y zentix_payment_link_create, deliberadamente acotadas: su action está fijado en código (el modelo nunca puede llegar a actualizar, cancelar o eliminar), exigen un requestId — tu clave de idempotencia — y devuelven el recibo de la API. Reintentar con la misma clave devuelve el mismo resultado, sin duplicados. The only write tools are zentix_agenda_meeting_create and zentix_payment_link_create, deliberately narrow: their action is hardcoded (the model can never reach update, cancel or delete), they require a requestId — your idempotency key — and they return the API receipt. Retrying with the same key returns the same result, no duplicates.

  • Interruptor: las tools de escritura solo responden si el servidor corre con ZENTIX_MCP_ALLOW_WRITES=1; si no, fallan con writes_disabled antes de cualquier llamada de red.Switch: write tools only respond when the server runs with ZENTIX_MCP_ALLOW_WRITES=1; otherwise they fail with writes_disabled before any network call.
  • Recibo: la respuesta incluye el objeto creado tal cual la devolvió la API — revísalo antes de considerar la acción hecha.Receipt: the response includes the created object exactly as the API returned it — review it before treating the action as done.
  • Enlaces de pago: lee primero zentix_payment_links_read para obtener expectedConfigVersion; el importe va en amountCents (150000 = 1500.00).Payment links: read zentix_payment_links_read first to get expectedConfigVersion; amounts go in amountCents (150000 = 1500.00).

7 Prompts y recursosPrompts and resources

Además de tools, el servidor expone prompts (playbooks listos para usar en tu asistente) y recursos (documentación legible por el modelo): Beyond tools, the server exposes prompts (ready-made playbooks for your assistant) and resources (model-readable documentation):

  • zentix_pipeline_review — revisa el pipeline por etapas y propone acciones.reviews the pipeline stage by stage and proposes actions.
  • zentix_prepare_sales_call — briefing pre-llamada de un contacto (historial, seguimientos, puntos de conversación).pre-call briefing for a contact (history, follow-ups, talking points).
  • zentix_metrics_brief — briefing de métricas para un rango de fechas.metrics briefing for a date range.
  • zentix://docs/tools y zentix://docs/security — referencia de tools y modelo de seguridad como recursos MCP.tool reference and security model as MCP resources.

8 Modelo de seguridadSecurity model

CapaLayerQué garantizaWhat it guarantees
Token passthrough / API keyToken passthrough / API keyLa identidad siempre sale de la credencial; el servidor no interpreta tokens ni guarda service accountsIdentity always comes from the credential; the server never interprets tokens or holds service accounts
Aislamiento por tenantTenant isolationEl uid siempre sale de la credencial; uid/userId en el input del modelo se rechazaThe uid always comes from the credential; uid/userId in model input is rejected
Lista blanca de endpointsEndpoint allowlistSolo rutas listadas en código son alcanzables; admin, crons, credenciales de canales y borrados jamásOnly code-listed routes are reachable; admin, crons, channel credentials and erasure never
Schemas cerradosClosed schemasLos inputs rechazan campos no declarados (additionalProperties: false)Inputs reject undeclared fields (additionalProperties: false)
RedacciónRedactionErrores y logs nunca contienen tokens ni secretsErrors and logs never contain tokens or secrets
Origen validadoValidated originEl servidor solo llama a un origen https público; bloquea loopback, redes privadas y direcciones reservadasThe server only calls a public https origin; loopback, private and reserved addresses are blocked
Rate limitRate limitVentana por credencial (60/min por defecto) y el 429 de la API se propaga como error tipadoPer-credential window (60/min default) and the API's 429 surfaces as a typed error

9 Solución de problemasTroubleshooting

SíntomaSymptomCausa y arregloCause and fix
401 UnauthorizedFalta el header Authorization, el token expiró (renueva con getIdToken(true)) o la API key fue revocadaMissing Authorization header, expired token (renew with getIdToken(true)), or a revoked API key
writes_disabledLas tools de escritura están apagadas: arranca el servidor con ZENTIX_MCP_ALLOW_WRITES=1Write tools are off: start the server with ZENTIX_MCP_ALLOW_WRITES=1
rate_limitedEspera el Retry-After indicado; no reintentar en bucleWait for the indicated Retry-After; do not retry in a loop
endpoint_not_allowedEl modelo pidió una ruta fuera de la lista blanca: comportamiento esperadoThe model asked for a non-allowlisted route: expected behavior
invalid_api_keyLa key no existe o fue revocada: crea otra desde /api/mcp-keysThe key does not exist or was revoked: create another via /api/mcp-keys
insecure_api_originZENTIX_API_BASE no es un origen https público válidoZENTIX_API_BASE is not a valid public https origin
Resultado truncadoTruncated resultLos resultados se recortan a 60,000 caracteres: pide menos registros por llamadaResults are clipped at 60,000 characters: request fewer records per call

Documentación relacionadaRelated documentation

Sin resultados para tu búsqueda.No results for your search.