https://api.zelto.ai/mcp. Cualquier cliente compatible con MCP puede conectarse y obtener acceso de lectura a sus agentes, conversaciones, transcripciones, reseñas y hallazgos, además de un pequeño conjunto de herramientas de escritura para el flujo de trabajo de revisión basado en bucket.
La mayoría de las herramientas de lectura y escritura reflejan un público API REST
Sin embargo, algunas herramientas van más allá de la superficie REST: colas de revisión, cambios, población de cubos, conexión/importación de proveedores de voz y configuración de la organización son exclusivas de MCP. El Espejos En cada columna de la tabla siguiente se indica cuál es cuál (— (MCP-only) significa que no hay equivalente de RESTO).
¿Nuevo aquí? A bordo con un agente impulsa toda la configuración: conecta un proveedor, recibe llamadas, crea un monitor y enruta hallazgos herramientas de onboarding abajo.
Obtener una clave de API
Acuña uno enhttps://dashboard.zelto.ai/org/<your-slug>/settings/integrations →
Carga de llamadas API. La clave se muestra una vez copiarlo inmediatamente. La misma clave funciona para el API REST Acuñar y revocar claves es una acción de propietario/administrador; si tiene la member
de un rol, pregunte a un propietario o administrador por uno (y vea
Tu papel decide lo que puedes hacer).
Exportarlo para los fragmentos a continuación:
Iniciar sesión con OAuth
Clientes que apoyan MCP remoto OAuth Claude, Cursor, VS Code y otros pueden conectarse sin acuñar una clave. Apunte al cliente a la URL del servidor e inicie sesión a través de su navegador:Clientes
Código Claude
Añadir el servidor a~/.claude.json (Crear el archivo si no existe):
/mcp (Elemento). zelto: herramientas aparecen en el selector; zelto:health devuelve su id de la organización como prueba de humo.
La página de Integraciones también muestra este fragmento pre-llenado con el host actual ir a Configuración → Integraciones → AI agente access y abrir el Claude tarjeta.
OpenAI Codex CLI
Codex CLI soporta servidores MCP a través de~/.codex/config.toml. Añadir una entrada de servidor bajo [mcp_servers.zelto]:
codex y le pregunta algo que necesite sus datos, p. ej.
“Enumera mis últimas 20 conversaciones y fracasos de grupo por agente”. El Codex descubre el zelto: herramientas automáticamente.
Cursor
~/.cursor/mcp.json acepta la misma forma que Claude Code:
zelto Las herramientas aparecen en la barra lateral del chat.
Continuar, Zed y otros clientes Streamable-HTTP
El servidor habla HTTP Streamable, por lo que cualquier cliente que acepte una URL +Authorization header funciona. Continuar usos config.yaml:
~/.config/zed/settings.json bajo context_servers.zelto
con el mismo url + headers forma.
Prueba rápida de humo (curl)
Si un cliente se comporta mal, verifique su clave y conectividad con la API REST: la misma clave autentica ambos:
200 con un { "data": [...] } página significa que el servidor y su clave son buenos el problema está en la configuración del cliente. Desde dentro de un cliente conectado, el health herramienta devuelve { "status": "ok", "orgId": "…" } como el mismo cheque.
A 401 significa que la credencial es el problema: la clave se eliminó o la persona a la que pertenece perdió el acceso a la organización (se eliminó o se prohibió su cuenta). Acuñar una clave nueva solo ayuda si su propia cuenta aún tiene acceso a esa organización.
Autenticación
Cada petición lleva unAuthorization: Bearer <token> donde se encuentra el token o bien un Clave API o un token de acceso OAuth obtenido por firmando. Solicitudes sin token o con devolución de token caducada/no válida 401 De cualquier manera, el token se resuelve en un solo servidor de la organización: una clave de API de su organización integrada, un token OAuth de la organización que eligió al dar su consentimiento, y una herramienta solo ve los datos de esa organización.
Tu papel decide lo que puedes hacer
La autenticación prueba que organización sobre la que se puede actuar, no ¿Qué Las herramientas que administran la propia organización requieren el uso de laowner o
admin función la misma puerta se aplica al salpicadero:
update_org_settings · invite_member · remove_member ·
save_usage_report_config · set_voice_tool_access · delete_agent ·
set_findings_delivery · merge_findings · delete_finding ·
approve_finding_candidate · reject_finding_candidate · update_finding
(Sólo cuando pases title los campos de clasificación permanecen abiertos a cualquier miembro)
update_member_role es más estricto aún: Propietario solamente, y se niega a cambiar su propio papel. remove_member También se niega a eliminar su propia membresía, sea cual sea su función, pregunte a otro propietario o administrador.
Un token perteneciente a member alcanza cada herramienta de lectura y cada escritura no administrativa, pero las herramientas anteriores regresan
Only an organization owner or admin can perform this action. En lugar de actuar (update_member_role devoluciones Only an organization owner can perform this action.). Esto es cierto para ambos tipos de credenciales: una clave o token actúa como la persona detrás de ella, y esta puerta lee el papel de esa persona en el momento de la llamada en lugar de en el momento de la publicación. Para sacar una credencial del servicio por completo, revoquela: vea
Claves de API. Quitar a esa persona de la organización (o prohibir su cuenta) hace lo mismo implícitamente: cada solicitud vuelve a verificar al propietario, por lo que sus claves y tokens OAuth dejan de funcionar en la próxima llamada.
Alcance de lectura y escritura
Un cliente OAuth pide un alcance de acceso al dar el consentimiento, y el servidor lo aplica antes de que se ejecute la herramienta:write— todas las herramientas, incluidas las que modifican datos. Implicaread.read— solo las herramientas de lectura. Un token con alcancereadque llama a una herramienta de escritura recibe un error de herramienta en lugar de un resultado:This credential is read-only and cannot call "<tool>". Reconnect with the "write" scope to allow changes.La llamada nunca llega a la herramienta, y el intento queda registrado en la actividad MCP de la organización.- Sin alcance de acceso — los tokens emitidos antes de que existieran los alcances conservan acceso completo.
POST /mcp. Un lote (array) JSON-RPC que
contenga una invocación de herramienta se rechaza con 400; los cuerpos de
solicitud de más de 4 MiB se rechazan con 413.
Herramientas
Leer herramientas
read_docs es solo MCP llámelo sin argumentos para listar cada página de documentación (slug + título + descripción), luego pase un path (p. ej.
findings o integrations/slack) para leer la página completa de Markdown.
status enums: opiniones aceptar pending / reviewed / flagged; hallazgos aceptar open / acknowledged / resolved / ignored. hallazgo priority
acepta none / low / medium / high / urgent.
Escribir herramientas
annotate_finding_conversation (añadir una anotación de audio de autoría del sistema, opcionalmente a una llamada dentro de un hallazgo) requiere un API key y el X-Organization-Id cabecera no se puede llamar con una clave org estándar. Las claves org regulares pueden escribir la misma anotación sobre REST en
POST /v1/findings/[id]/conversations/[conversationId]/comments (atribuido al usuario que llama), o leerlos a través de list_finding_conversation_comments y editar/eliminar con update_finding_conversation_comment /
delete_finding_conversation_comment.add_conversation_to_bucket add_conversation_to_finding
Devuelve la fila existente con alreadyExisted: true La conversación debe pertenecer al mismo agente que el cubo. create_bucket
acepta sólo type: "static" La creación de agente de IA ejecuta el indicador del sistema a través del flujo de auditoría antes de insertarlo.
create_finding presenta cada hallazgo como un Candidato revisión de la plataforma pendiente: no aparece en la lista de hallazgos de la organización y no se vincula automáticamente a las llamadas hasta que un administrador de la plataforma lo apruebe (o lo rechace) desde el Candidatos en la página de Hallazgos.
update_agent cambios solo los campos que pases enviar description: null Para limpiarlo, omita un campo para dejarlo intacto. systemPrompt es aceptado solo para agentes de IA (los agentes humanos no tienen ninguno) y está escrito tal cual: a diferencia de la creación, es
no El tipo y el proveedor de un agente son inmutables y no se pueden cambiar.
Revisar colas
A cola es un conjunto guardado de filtros que definen una colección dinámica de conversaciones a revisar. Estas herramientas son solo MCP.
Los
filters objeto acepta: agentIds, agentType (ai / human),
durationMinSeconds, durationMaxSeconds, endedReasons, dateFrom
(YYYY-MM-DD), dateTo (YYYY-MM-DD), alreadyReviewed, hasAudio,
isInteresting, findingTypes. Un vacío/omitido filters coincide con cada conversación en la org. On update_queue, pasando filters Reemplaza todo el objeto no se fusione con la existente.
Cambios
A cambio es una sugerencia atómica, agente-alcance que se dirige a un conjunto de hallazgos. Cada nuevo cambio comienza como un proyecto (no hay estado de flujo de trabajo, oculto de la lista principal) hasta que un humano lo publique. Estas herramientas son solo MCP.Para la estabilidad de la API, los nombres de las herramientas MCP conservan el original
solution término (create_solution, list_solutions, …) aunque el producto ahora los llama cambios. Las herramientas y la interfaz de usuario operan en los mismos registros.create_solution insertos exactamente uno borrador por llamada nunca agrupe múltiples ideas en un solo cuerpo; llámelo de nuevo para cada sugerencia distinta. status es uno de backlog / todo /
in_progress / done / cancelledNo puedes establecer status sobre un borrador: salir primero del borrador con publish_solution (→ backlog) o
discard_solution (→ cancelled). Eliminar un cambio elimina sus enlaces de hallazgo por cascada, pero nunca elimina los hallazgos subyacentes.
Reportes
A informe es un analista de forma libre escrito en el mismo editor de texto enriquecido que Hallazgos y Cambios.prompt Sostiene la pregunta o breve; description mantiene el cuerpo como un documento JSON TipTap/ProseMirror.
status seguimiento del ciclo de vida de generación (pending / generating /
completed / failed) un reporte que creas se sienta en pending a menos que pases un cuerpo terminado y establecido completed. Estas herramientas son MCP-solamente.
En marcha
update_report, pasando description Reemplaza todo el cuerpo no se fusione con el documento existente. Pase prompt: null para aclarar la petición.
Población de cubo
Estas herramientas capturan las conversaciones en depósitos desde colas o filtros sin procesar.
Debido a que las colas pueden abarcar múltiples agentes, pero los depósitos están agente-scopeados,
create_bucket_from_queue crea un cubo por agente emparejado y devuelve una matriz. populate_* Las herramientas son idempotentes la re-ejecución agrega cero filas nuevas y las coincidencias que pertenecen a un agente diferente al depósito se omiten y se cuentan en skippedOtherAgentCount.
Mutaciones de cubo y Hallazgo
Las mutaciones restantes de solo MCP, más la desvinculación de conversación de Hallazgo que refleja un punto final de REST.type acepta sólo "static". Cada eliminación en cascada sus propias filas de enlaces (tareas de cubo, enlaces de conversación de Hallazgo, comentarios) pero nunca elimina las conversaciones subyacentes.
Importación de proveedores
Conecte un proveedor de voz y tire de sus agentes y llamadas directamente a Zelto lo mismo conecte el flujo de relleno de importación → → como Configuración → IntegracionesEstas herramientas son solo MCP y cubren a todos los proveedores con capacidad de extracción: Vapi, Retell, Speechify, Telnyx AI, ElevenLabs y Kapso (WhatsApp). Cada uno toma unprovider argumento (vapi / retell / speechify / telnyx /
elevenlabs / kapso).
connect_provider utiliza un Handoff del navegador para que la clave de la API nunca pase por el agente: devuelve una sola vez url (válido 15 minutos). Usted entrega esa URL al usuario; la abren mientras inician sesión en Zelto y pegan su clave allí, por lo que la clave va directamente al servidor, nunca a su contexto o registros. No le pidas al usuario su clave de API. Cuando terminen, poll
check_provider_connection con el retorno token hasta status es
completed (Regresa agentsFound) o expired (comienzo). label
por defecto a Default y debe ser único por proveedor; el usuario puede cambiarlo en la página de conexión.
list_provider_agents devuelve cada agente/asistente en la(s) cuenta(s) conectada(s), cada una con anotaciones alreadyImported (y importedAgentId importados). agentId es el id externo del proveedor; para Vapi y Telnyx AI es el id del asistente; para Kapso es el phone_number_id de WhatsApp (cada número es un agente; consulta Kapso).
get_retell_agent lee un agente de Retell directamente sin importarlo. Devuelve el valor actual general_prompt para los agentes de LLM Retell y global_prompt
para agentes de flujo de conversación.
import_provider_agent importa un agente y falla si ya se ha importado: llama a list_provider_agents primero. Rellena las llamadas recientes del agente (sinceDays, por defecto 14, máx. 30) y lo inscribe en la importación automática continua, para que las nuevas llamadas sigan llegando sin otra extracción. import_provider_conversations
importa las llamadas de ese agente de since (una marca de tiempo ISO 8601, p. ej.
2026-03-01T00:00:00Z) hasta ahora, en segundo plano: el agente ya debe importarse y volver a ejecutarse con una ventana superpuesta es seguro (las llamadas ya importadas se omiten).
Incorporación
Pon una nueva organización de punta a punta desde tu editor: conecta un proveedor de llamadas, crea un monitor y enruta pasillos. Estas herramientas son solo MCP. El A bordo con un agente guía camina un agente a través de todo el flujo de usarlos.
Una carrera sin cabeza en orden:
get_onboarding_statusleernextIncompleteReanudar desde el paso correcto.connect_integration—provideres uno devapi,retell,speechify,telnyx,elevenlabs,kapso;apiKeyes la clave de ese proveedor. Para Vapi / Retell / Speechify la respuesta eswebhook.webhookUrldebe pegarse en el panel del proveedor (un paso humano) antes de que fluyan las llamadas; ElevenLabs y Telnyx AI se sincronizan automáticamente, y Kapso registra su propio webhook en cada número de WhatsApp que importes conimport_provider_agent. Confirma conlist_conversations.create_monitorpasar astarterKeyDesdelist_starter_monitors, o aname+ un booleano de lenguaje naturalinstruction. Omitir tantoagentIdscomocompanyIdslo aplica a todos los agentes actuales. Confirmar conlist_monitors. Comprobaciones de ejecución de herramientas (tool_checklo hizosubmit_orderEn realidad, el fuego es el autor Monitores editor;create_monitortodavía crea una rúbrica AI sí/no.set_findings_delivery—channels¿Es cualquiera deemail/slack(Slack también necesita la aplicación de Slack conectada a través de OAuth en la interfaz web).
list_* / get_* leer) y devolver un objeto JSON que pueda llevar un error key inspeccione, y porque las escrituras se establecen de forma asíncrona, confirme cada paso con la herramienta de lectura emparejada antes de avanzar.
monitores y cuadros de mando
Gestionar los jueces de IA que superficie hallazgos (create_monitor /
list_monitors / list_starter_monitors están bajo Incorporación).
Usa
list_monitors para encontrar un ID y pásalo a get_monitor como
monitorId. Devuelve { monitor: { ...configuration, alert } }. El pipeline
también se resuelve para monitores antiguos; las fechas (analysisStartAt,
updatedAt) son cadenas ISO y sourceFindingId identifica el hallazgo de origen
cuando existe. alert incluye el estado habilitado, comparador, umbral, ventana,
días sostenidos, ID del canal de Slack y destinatarios de correo; es null si
no hay una alerta configurada. Nunca se devuelven claves de API; hasApiKey
indica si hay una configurada. Las lecturas no usan caché y se limitan a tu
organización. Los IDs inexistentes o de otra organización devuelven un error de
monitor no encontrado. Usa get_monitor_results por separado para consultar
los resultados de las evaluaciones.
Pasa companyIds a create_monitor, create_pipeline_monitor o
update_monitor para evaluar llamadas atribuidas a las empresas seleccionadas,
incluidas las de futuros agentes. La función Empresas debe estar habilitada para
crear un alcance por empresas; los IDs deben pertenecer a tu organización y
se requiere al menos una empresa. No pases agentIds junto con companyIds.
Omitir ambos al actualizar conserva el alcance guardado; list_monitors expone
su scopeType y las companies seleccionadas. Cambiar las empresas modifica el
historial visible sin eliminar resultados guardados; las evaluaciones históricas
faltantes siguen requiriendo que actives expresamente el análisis.
Cada etapa ai_analyze de create_pipeline_monitor acepta useAgentPrompt
y useCallContext (datos CRM disponibles); ambos valen false en etapas nuevas.
Para editar el contexto, consulta los IDs con get_monitor y llama a update_monitor
con stageContext: [{ stageId: "step-id", useAgentPrompt: false, useCallContext: true }].
Cada entrada requiere un ID único de etapa de IA existente y al menos una opción
booleana; las opciones omitidas se conservan. Todos los cambios se aplican de forma
atómica. Cambiar el contexto aumenta la versión para evaluaciones futuras y reinicia
el estado de incumplimiento de alertas; conserva los resultados históricos. La respuesta
incluye version y, si se envía contexto, el pipeline actualizado.
Flujo de trabajo de Hallazgos
Más allácreate_finding / update_finding, estos impulsan el ciclo de vida abierto y el dedup de → candidato.
Todo en esta tabla, excepto
set_finding_version_scope requiere el owner
o admin El rol, como delete_finding y renombrando a través update_finding
Véase Tu papel decide lo que puedes hacer.
Revisión de llamadas
flag_call_for_review solo pone en cola una llamada; estos registran la revisión real.
agentes (ciclo de vida)
create_ai_agent / create_human_agent / update_agent más:
merge_agents / unmerge_agents También existen pero requieren una clave de administrador (cross-org), que coincida con las herramientas de fusión solo de personal en la interfaz de usuario web.
Receptores (números de teléfono)
Integración & conectores
El proveedor conecta/importa bajo Importación de proveedores. Estos configuran una integración ya conectada.
Slack (post-connect; la instalación de OAuth permanece en la interfaz web):
add_slack_channel,
remove_slack_channel, set_default_slack_channel,
set_slack_channel_chat_enabled, send_slack_channel_test,
set_agent_slack_channel cada uno toma un identificador de canal de Slack (C…), y
set_agent_slack_channel También un agentId.
Linear (post-connect; la instalación de OAuth permanece en la interfaz web):
list_linear_teams, set_default_linear_team (teamId, nullable),
create_linear_issue_for_finding (findingId),
create_linear_issue_for_solution (solutionId), unlink_linear_issue
(findingId? / solutionId?).
Organización & Miembros
Todas las herramientas de esta tabla excepto
upload_conversation requiere el owner o
admin papel, y update_member_role requiere owner Véase Tu papel decide lo que puedes hacer.
Las entradas anteriores son los campos primarios; el servidor MCP anuncia el esquema completo y autorizado para cada herramienta a través de tools/list.
Las entradas de correo electrónico utilizan patrones de esquema JSON en lenguaje regular, por lo que los esquemas de herramientas anunciados siguen siendo compatibles con proveedores de salida estructurada estrictos, incluido OpenAI.
Formas de salida y paginación
Las respuestas de la herramienta coinciden exactamente con la API REST. Referencia API para las formas JSON deAgent,
Conversation, Transcript, Review, Bucket, y Finding, más el { data, nextCursor } sobre de paginación.
limit 200 (por defecto 50). cursor es opaco devolver el
nextCursor valor de una respuesta anterior para buscar la página siguiente.
Solución de problemas
401de cada herramienta el token portador está equivocado o revocado. Pruebe la clave directamente:curl -H "Authorization: Bearer $ZELTO_API_KEY" https://api.zelto.ai/v1/agents. Si eso también regresa401, menta una nueva llave.This credential is read-only and cannot call "<tool>".— al token OAuth solo se le concedió el alcanceread. Vuelva a conectar y concedawrite, o use una clave API. Vea Alcance de lectura y escritura.400conBatched tool calls are not supported— el cliente envió un array JSON-RPC. Envíe un mensaje porPOST.Only an organization owner or admin can perform this action.la herramienta funcionó, tu rol no. Tu credencial se resuelve en lamemberPídale a un propietario o administrador que lo ejecute o que eleve su rol; vea la sección de la sección de administración de la página. Tu papel decide lo que puedes hacer.- La lista de herramientas está vacía en el cliente la mayoría de los clientes almacenan en caché la lista de herramientas. Reiniciar el cliente (Claude Code:
/mcp; Cursor: activar/desactivar el servidor; Codex: reiniciar la CLI). 429tasa limitada retroceder y volver a intentarlo. Utilice elcursorpaginación en lugar de buscar páginas grandes.- Acceso a Cross-org denegado las claves están incluidas en la organización en la que fueron acuñadas. Cambiar de organización en la aplicación web y acuñar una nueva clave de esa organización Configuración → Integraciones.

