Skip to main content
El servidor expone 27 herramientas curadas, no una por cada endpoint de la API. Los nombres están en inglés, igual que la API.

Tu key decide lo que ve el asistente

  • tools/list sólo devuelve las herramientas que los scopes de la key permiten. Con una key de sólo lectura, el asistente ni siquiera sabe que existe create_call.
  • Cada tools/call vuelve a comprobar el scope. Un cliente que llama a una herramienta que no se le mostró recibe un error insufficient_scope, no el resultado.
Para cambiar lo que puede hacer un asistente, cambia la key: crea otra con otros scopes en Configuración > API keys y cámbiala en la configuración de tu cliente. Los scopes se explican en Autenticación.

Catálogo de herramientas

Las herramientas de lectura llevan la anotación MCP readOnlyHint. Las tres que actúan sobre llamadas reales llevan destructiveHint y openWorldHint, así que los clientes que respetan las anotaciones pueden preguntarte antes de correrlas; update_agent, publish_agent y assign_phone_number también llevan destructiveHint, porque cambian lo que usan las llamadas en vivo. Cómo funciona la confirmación de las tres está en Seguridad y gasto.

Pide resúmenes, no páginas

Las herramientas están hechas para que el asistente obtenga su respuesta en pocas llamadas:
  • Las herramientas de lista devuelven 50 elementos por omisión, hasta 100 por llamada, aceptan los filtros de la tabla y devuelven un next_cursor para la página siguiente.
  • Las listas dejan fuera los campos pesados: list_calls no incluye transcripciones. Pide una llamada con get_call cuando necesites lo que se dijo.
  • get_call_stats contesta preguntas agregadas («¿cuántas llamadas fallaron ayer?», «¿qué agente gastó más esta semana?») en una sola llamada, en vez de paginar cientos de llamadas. Cuenta hasta 1,000 llamadas por rango; si había más, lo dice con truncated: true y el total real en calls_in_range, para que el asistente acote el rango.

Límites de peticiones

El MCP no tiene un límite aparte: usa el bucket de tu cuenta, el mismo que la API.
  • Cada llamada a una herramienta cuenta como una petición contra el límite por minuto de tu plan, una vez, nunca más.
  • initialize, tools/list y el resto del protocolo no cuentan.
  • En las tres herramientas que piden confirmación sólo cuenta la llamada que se ejecuta. El paso de confirmación no.
  • El tope por IP de la API aplica a toda petición, también a initialize y tools/list.
Las cifras por plan y cómo se rellena el bucket están en Límites de peticiones. Un asistente que pagina llamadas una por una se acaba el bucket rápido; uno que pregunta a get_call_stats, no.

Errores

Cuando una herramienta falla, el servidor no rompe la sesión MCP: devuelve un resultado de herramienta normal con isError: true y el mismo sobre que la API, como structuredContent y como texto:
El asistente puede leer error y decidir qué hacer: esperar tras un rate_limit_exceeded, decirte que la key necesita otro scope tras un insufficient_scope, corregir un argumento tras un invalid_body, pedir un token nuevo tras un invalid_confirmation, o detenerse tras un key_budget_exhausted. La lista completa de códigos está en Errores. Si nos reportas un problema, mándanos el request_id. Un resultado exitoso trae su JSON igual: en structuredContent y como texto. Una key que falta, inválida o revocada nunca llega a las herramientas: la petición HTTP misma se rechaza con 401.