Skip to main content
Glama

☎️ five9-mcp

Tu centro de contacto Five9, en manos de tu IA.

Un servidor MCP de código abierto que conecta Claude, ChatGPT o cualquier cliente MCP con el centro de contacto en la nube Five9, que se ejecuta en Cloudflare Workers con cero dependencias.

License: MIT Runtime Dependencies MCP Tools

Inicio rápido · Conectar Claude · Conectar ChatGPT · Herramientas · Arquitectura


Pídele a tu IA cosas como:

"¿Quién está en una llamada ahora mismo y cuánta cola hay en ventas?" 📊 "Crea una campaña de previsualización para la lista de reactivación, adjunta la habilidad de ventas e iníciala." 🛠️ "Detén la campaña OUTBOUND_AGED y añade estos 3 clientes potenciales a la lista de devolución de llamadas." 📞 "Incorpora al nuevo agente: crea el usuario, asigna la habilidad de facturación en nivel 2." 🧑💼 "¿Está 555-867-5309 en nuestra lista DNC? Compruébalo antes de que alguien marque ese número." 🚫 "Extrae el informe de registro de llamadas de ayer y resume las tasas de abandono." 📈 "Constrúyeme un IVR completo: opción 1, programación; opción 2, facturación; fuera de horario, al buzón de voz." 🧩

En el fondo, este servidor habla con los SOAP Web Services de Configuration (administración) y Statistics (supervisión) de Five9 — las API que aún sustentan la superficie administrativa de Five9 — y los expone como herramientas JSON limpias a través de MCP streamable HTTP. Sobres SOAP hechos a mano, un analizador XML de ~60 líneas, sin paquetes npm. Cada herramienta se ha probado contra un dominio Five9 real.

✨ Interfaz web integrada

Despliégalo y tu Worker servirá algo más que una API:

Página

Qué obtienes

/

Una página de inicio pulida: estado del servidor en vivo, esta guía de configuración, tutoriales de conexión de IA paso a paso y el catálogo completo de herramientas

/setup

El asistente de configuración: introduce las credenciales de Five9 en tu navegador, verifícalas en vivo y recibe tu clave de acceso. Sin terminal, sin comandos de secretos

/console

Una consola interactiva: pega tu clave de acceso, elige cualquiera de las 77 herramientas agrupadas, rellena un formulario generado a partir de su esquema y ejecútalo contra tu dominio Five9 real desde el navegador

/mcp

El propio endpoint MCP (HTTP streamable, sin estado)

/health

Comprobación de estado JSON

La consola es la forma más rápida de verificar las credenciales, explorar lo que devuelve cada herramienta o depurar una campaña, sin necesidad de IA.

🚀 Inicio rápido — sin necesidad de terminal

Necesitas una cuenta gratuita de Cloudflare y un usuario de Five9 con acceso a la API: crea un usuario de API de Five9 dedicado con permisos limitados a lo que quieras que haga la IA; no reutilices un inicio de sesión de administrador personal.

1 — Despliega en Cloudflare (un clic, en tu navegador)

Deploy to Cloudflare

Inicia sesión en Cloudflare y ve haciendo clic: se creará tu propia copia de este Worker (junto con el espacio de nombres KV que necesita) y te dará una URL como https://five9-mcp.you.workers.dev.

2 — Ejecuta el asistente de configuración (en tu navegador)

Abre /setup en tu nuevo servidor. Introduce tu nombre de usuario, contraseña y región de Five9: el asistente las verifica en vivo contra Five9 antes de guardarlas y te entrega tu clave de acceso (se muestra una sola vez; guárdala en un gestor de contraseñas).

3 — Conecta tu IA (tutoriales a continuación) y pídele que "compruebe la conexión y liste mis campañas". 🎉

git clone https://github.com/ryanshatz/five9-mcp
cd five9-mcp
npx wrangler deploy   # provisions the CONFIG KV namespace on first deploy

Luego puedes usar el asistente /setup u omitirlo y gestionar las credenciales como secretos de Wrangler (los secretos tienen prioridad sobre el asistente):

npx wrangler secret put FIVE9_USERNAME   # e.g. apiuser@yourdomain
npx wrangler secret put FIVE9_PASSWORD
npx wrangler secret put MCP_AUTH_TOKEN   # a long random string — this is the key to your server

Los valores predeterminados están en wrangler.toml y funcionan para dominios de EE. UU.:

Variable

Valor por defecto

Notas

FIVE9_API_HOST

api.five9.com

UE: api.eu.five9.com · Canadá: api.ca.five9.com

FIVE9_ADMIN_VERSION

v13

Versión de WSDL de Config Web Services

FIVE9_SUPERVISOR_VERSION

v13

Versión de WSDL de Statistics Web Services

🔌 Conecta tu IA

Conecta Claude (web y escritorio)

Los conectores personalizados están disponibles en los planes Free (un conector), Pro, Max, Team y Enterprise.

  1. En claude.ai o en la aplicación de escritorio de Claude, abre Configuración → Conectores.

  2. Haz clic en Añadir conector personalizado.

  3. Ponle el nombre Five9 y pega la URL de tu servidor incluyendo la ruta /mcp: https://<your-worker>.workers.dev/mcp

  4. Haz clic en Añadir y luego en Conectar. Claude detecta automáticamente el OAuth integrado de este servidor y abre su página de autorización.

  5. En la pantalla 🔐 five9-mcp, pega tu MCP_AUTH_TOKEN como clave de acceso y haz clic en Autorizar.

  6. En cualquier chat, abre el menú Buscar y herramientas (+) y asegúrate de que el conector de Five9 está activado.

Team/Enterprise: un propietario añade primero el conector en Configuración de la organización → Conectores; después, los miembros hacen clic en Conectar en su propia configuración para autorizarlo.

Conecta ChatGPT

Los conectores MCP personalizados requieren el modo de desarrollador (Plus/Pro; en Business/Enterprise un administrador debe permitir conectores personalizados).

  1. En ChatGPT en la web, abre Configuración → Apps y conectores (a veces etiquetado solo como Conectores).

  2. En Configuración avanzada, activa el modo de desarrollador.

  3. De vuelta en la página de Conectores, haz clic en Crear.

  4. Ponle el nombre Five9, establece la URL del servidor MCP en https://<your-worker>.workers.dev/mcp y elige autenticación OAuth.

  5. Acepta el aviso de confianza y guarda. ChatGPT abre la página de autorización de este servidor: pega tu MCP_AUTH_TOKEN y haz clic en Autorizar.

  6. En un chat nuevo, abre el menú + / herramientas y activa el conector Five9 (los conectores del modo de desarrollador se activan por conversación). ChatGPT te pedirá que confirmes cada llamada a herramienta, algo sensato para cualquier cosa que pueda iniciar un marcador. 😄

Conecta Claude Code

claude mcp add --transport http five9 https://<your-worker>.workers.dev/mcp \
  --header "Authorization: Bearer <your MCP_AUTH_TOKEN>"

La clave de acceso en bruto funciona directamente como bearer token, sin el baile de OAuth. Ejecuta /mcp dentro de Claude Code para verificarlo.

Cualquier otro cliente MCP

Cualquier cliente que hable MCP streamable HTTP funciona: completa el flujo OAuth o envía la clave de acceso como bearer token:

curl -X POST https://<your-worker>.workers.dev/mcp \
  -H "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_connection","arguments":{}}}'

src/oauth.js implementa un servidor de autorización OAuth 2.1 mínimo (descubrimiento de metadatos, registro dinámico de clientes, PKCE S256, tokens de refresco) diseñado para un despliegue de un solo operador:

  • El «login» en la pantalla de consentimiento es la clave de acceso del servidor (MCP_AUTH_TOKEN).

  • Todo es sin estado: los ID de cliente, los códigos de autorización y los tokens son blobs firmados con HMAC-SHA256 usando MCP_AUTH_TOKEN como clave. Sin KV, sin Durable Objects.

  • Ambas vías de autenticación funcionan a la vez: tokens emitidos por OAuth y la clave en bruto como credencial bearer.

  • Revoca todo de una vez rotando el secreto: npx wrangler secret put MCP_AUTH_TOKEN.

🧰 La caja de herramientas

77 herramientas. 🟢 = lectura (siempre segura) · ✏️ = escritura (cambia tu dominio: el servidor indica a las IA que primero confirmen contigo)

69 herramientas SOAP (usuario/contraseña) + 8 herramientas REST de OAuth New Platform (Consumer Key/Secret — consulta OAuth New Platform APIs).

El truco estrella: describe un flujo de llamada en un párrafo y la IA lo diseña, te muestra un diagrama Mermaid en el chat e implementa un script IVR funcional. El modelo nunca improvisa el XML de IVR de Five9: rellena una especificación de flujo JSON restringida (play / menu / business-hours / skill transfer / voicemail / hangup), un validador de grafo comprueba cada rama y referencia, y un código determinista genera XML con la forma del diseñador (el cableado de módulos, la codificación de prompts y el orden de campos se derivan de scripts exportados reales).

Herramienta

Qué hace

🟢

validate_ivr_flow

Comprueba el grafo de una especificación de flujo y verifica que las habilidades/prompts referenciados existan en el dominio

🟢

render_ivr_flow

Renderiza una especificación de flujo o un script IVR existente como diagrama de flujo Mermaid

✏️

build_ivr_script

Compone el XML completo del script y lo crea en el dominio (dry_run para inspeccionarlo primero)

✏️

generate_prompt_audio

Da voz a un prompt con una voz de IA moderna y lo sube como WAV G.711 u-law listo para Five9. No se necesita clave de API: funciona con Workers AI (Deepgram Aura, ~40 voces) integrado en tu Worker

Flujo recomendado: valida → renderiza (¡muéstraselo al humano!) → genera prompts → construye → adjúntalo a una campaña entrante. generate_prompt_audio se ejecuta en Cloudflare Workers AI de serie: sin cuenta TTS externa, sin clave de API, fracciones de céntimo por prompt facturadas a la cuenta de Cloudflare en la que ya lo has desplegado. ElevenLabs/OpenAI también funcionan si configuras sus secretos de clave, y los prompts {tts} (la voz de robot integrada de Five9) no necesitan nada en absoluto.

Herramienta

Qué hace

🟢

about

Contexto del operador para la IA: quién ejecuta este servidor y las reglas básicas

🟢

check_connection

Verifica que las credenciales de Five9 funcionan; devuelve el número de habilidades visibles

🟢

get_api_usage

Contadores de uso actuales de la API de Five9 frente a los límites de tasa

Herramienta

Qué hace

🟢

list_campaigns

Listar campañas (nombre, tipo, estado, modo)

🟢

inspect_campaign

Estado + listas adjuntas + DNIS en una sola llamada

🟢

get_campaign_details

Configuración COMPLETA de la campaña (modo de marcación, ratios, grabación, wrap-up…)

✏️

create_campaign

Crear campañas salientes o entrantes, BASIC o ADVANCED

✏️

modify_campaign

Editar cualquier ajuste de la campaña — read-modify-write, pasar solo los cambios

✏️

rename_campaign

Renombrar una campaña

✏️

delete_campaign

Eliminar una campaña

✏️

control_campaign

start / stop / force_stop / reset / reset_list_positions

✏️

manage_campaign_lists

Adjuntar/desvincular listas de marcación con prioridad

✏️

manage_campaign_skills

Añadir/quitar habilidades de enrutamiento en una campaña

✏️

manage_campaign_dnis

Adjuntar/desvincular números entrantes

✏️

manage_campaign_dispositions

Añadir/quitar disposiciones de agente en una campaña

🟢

list_campaign_profiles

Listar perfiles de campaña (ANI, intentos, tiempos de espera)

✏️

manage_campaign_profile

Crear / modificar / eliminar perfiles de campaña

✏️

manage_campaign_profile_filter

Leer / editar los criterios de selección de registros CRM y el orden de marcación de un perfil

Herramienta

Qué hace

🟢

list_dialing_lists

Listar listas de marcación + recuentos de registros

✏️

create_list / delete_list

Crear o eliminar una lista de marcación

✏️

add_record_to_list

Introducir un lead en una lista (importación asíncrona)

✏️

add_records_to_list

Añadir muchos leads en lote en una sola importación asíncrona (modos CRM/lista configurables)

✏️

delete_record_from_list

Eliminar registros coincidentes de una lista

🟢

get_import_result

Resultado de una importación asíncrona de lista/CRM

Herramienta

Qué hace

🟢

search_contacts

Buscar contactos por valores exactos de campo

✏️

update_contact

Actualizar un contacto (seguridad de coincidencia única por defecto)

✏️

bulk_update_contacts

Actualizar muchos contactos CRM en una importación asíncrona (sondeo con type "crm")

✏️

delete_contact

Eliminar un contacto (solo cuando coincide exactamente uno)

🟢

list_contact_fields

El esquema de campos de contacto del dominio

✏️

manage_contact_field

Crear / modificar / eliminar campos CRM personalizados

Herramienta

Qué hace

✏️

manage_dnc

Comprobar / añadir / eliminar números en la lista DNC del dominio

🟢

get_dialing_rules

Reglas de marcación del dominio (restricciones de hora/estado)

Herramienta

Qué hace

🟢

list_users

Listar usuarios con información general

🟢

get_user_details

Registro completo de un usuario: roles, habilidades, grupos

✏️

create_user

Crear un usuario con roles, habilidades y grupos

✏️

modify_user

Editar la información de un usuario — pasar solo los cambios

✏️

delete_user

Eliminar un usuario

🟢

list_user_profiles

Plantillas de roles/permisos

🟢

list_skills / get_skill_details

Habilidades, con o sin usuarios asignados

✏️

manage_skill

Crear / modificar / eliminar habilidades

✏️

manage_user_skills

Asignar habilidades a usuarios, establecer niveles

✏️

set_user_roles

Otorgar / revocar roles (agent, admin, supervisor, reporting, crmManager) con pestañas de permisos

🟢

list_agent_groups

Grupos de agentes + miembros

✏️

manage_agent_group

Crear / eliminar grupos, añadir/quitar agentes

✏️

manage_reason_code

Códigos de motivo de Not Ready / Logout

Herramienta

Qué hace

🟢

list_dispositions

Disposiciones de llamadas y sus ajustes

✏️

manage_disposition

Crear / modificar / renombrar / eliminar disposiciones (incl. temporizadores de remarcación)

🟢

list_ivr_scripts / get_ivr_script

Scripts IVR — metadatos, o el XML completo de un script

✏️

manage_ivr_script

Crear / modificar / eliminar scripts IVR (enviar un xmlDefinition completo)

🟢

list_prompts

Prompts de voz en el dominio

✏️

manage_tts_prompt

Crear / modificar / eliminar prompts de texto a voz

✏️

manage_wav_prompt

Crear / modificar / eliminar prompts WAV pregrabados (base64; G.711 µ-law 8kHz mono)

🟢

list_dnis

Números entrantes aprovisionados (opcionalmente solo no asignados)

🟢

list_call_variables

Variables de llamada y grupos de variables

✏️

manage_call_variable

Crear / eliminar variables de llamada personalizadas

🟢

list_web_connectors

Integraciones de conectores web

✏️

manage_web_connector

Crear / eliminar conectores web (URL pops que los agentes activan)

✏️

manage_speed_dial

Listar / crear / eliminar códigos de marcación rápida

🟢

get_vcc_configuration

Ajustes de VCC a nivel de dominio

Herramienta

Qué hace

🟢

run_report

Lanzar cualquier informe por carpeta + nombre, rango de tiempo opcional

🟢

get_report_result

Sondear la salida CSV del informe

🟢

get_realtime_stats

AgentState, ACDStatus, CampaignState, estadísticas de campaña (incl. vistas de dialer-manager y autodial)

Estas herramientas usan las APIs REST OAuth 2.0 de la "New Platform" de Five9, no las APIs SOAP que usan las herramientas anteriores. Requieren una credencial de API Access Control (Consumer Key/Secret), no el usuario/contraseña SOAP — ver OAuth New Platform APIs.

Herramienta

Qué hace

🟢

rest_check_connection

Verifica la credencial OAuth — obtiene un bearer token (sin datos del dominio)

🟢✏️

rest_call

Llamada autenticada genérica a cualquier endpoint de New Platform (método + ruta + cuerpo), con límite de tasa/backoff y soporte ETag

🟢✏️

manage_circle

Circles — listar / obtener / crear / eliminar (sin equivalente SOAP)

🟢

list_np_prompts

Prompts de voz mediante la API de prompts de New Platform (paginado)

🟢

list_interaction_dispositions

Disposiciones mediante la API de interacciones (más completa que la lista SOAP; solo lectura)

🟢

get_domain_info

Metadatos del dominio (id, nombre, tenant, endpoints de servicio)

🟢

list_data_tables

Data Tables (tablas de consulta estructuradas; sin equivalente SOAP) — usa una credencial data-tables separada

🟢

get_data_table_rows

Filas de una Data Table por id (paginado)

🔐 OAuth New Platform APIs

Además de las herramientas SOAP, el servidor puede llamar a las APIs REST OAuth 2.0 de la New Platform de Five9 (p. ej. Circles, interacciones, prompts, metadatos del dominio). Estas usan una credencial diferente del usuario/contraseña SOAP:

  • Un Consumer Key y un Consumer Secret de API Access Control, generados en la Admin Console → API Access Control de Five9 (una función de disponibilidad controlada). Generarlos requiere el permiso security → applications → Create applications, y la cuenta debe estar migrada a Five9 Identity Service (los usuarios con roles heredados de API/Agente/Supervisor quedan excluidos de la migración hasta que se eliminen esos roles).

  • Configúralos como variables de entorno/secreto (todas separadas de las credenciales SOAP):

FIVE9_CONSUMER_KEY=...           # "All APIs access" family credential (default)
FIVE9_CONSUMER_SECRET=...
FIVE9_DOMAIN_ID=131109           # your Admin Console domain id
FIVE9_REST_REGION=US             # US | US-ALPHA | CA | EU | IN | UK
# or pin the base URL directly: FIVE9_REST_BASE_URL=https://api.prod.us.five9.net

# Optional second credential for the "Data Tables access" family (its own key):
FIVE9_DT_CONSUMER_KEY=...
FIVE9_DT_CONSUMER_SECRET=...

Luego ejecuta rest_check_connection para confirmar el flujo del token. Lo que cada credencial puede alcanzar está determinado por su familia de API + scopesall-apis-access no otorga literalmente todos los servicios, y el acceso de escritura es por servicio.

Múltiples credenciales / familias. Cada credencial de API Access Control pertenece a una familia (mapeada a un Apigee API Product), y esa familia decide qué servicios puede llamar la clave. El servidor admite credenciales con nombre: default (de FIVE9_CONSUMER_KEY/SECRET) y data-tables (de FIVE9_DT_CONSUMER_KEY/SECRET). Las herramientas de Data Tables usan la credencial data-tables automáticamente; rest_call y rest_check_connection aceptan un argumento credential para elegir una.

Nota: El documento de inicio rápido de Five9 indica el endpoint del token como /v1/auth/token, pero el endpoint real es /oauth2/v1/token (el que usa este cliente).

🎨 Personalizar el contexto del operador

src/about.js contiene el texto que se sirve a las IA conectadas a través del campo instructions de MCP y de la herramienta about: quién opera el servidor, por qué existe y cómo debe comportarse la IA (p. ej., "confirmar antes de las acciones de escritura"). Edítalo para describir tu propio despliegue — se incluye con el contexto del operador original como ejemplo.

🏗️ Arquitectura

Sin paso de compilación ni dependencias — módulos JS simples en src/:

src/
├── index.js   # router, CORS, MCP JSON-RPC handler, /setup endpoint
├── five9.js   # SOAP client: envelope builder, ~60-line XML parser, one method per Five9 op
├── tools.js   # MCP tool definitions (JSON Schema) + dispatch
├── oauth.js   # stateless OAuth 2.1 server (single-operator model)
├── config.js  # config resolution: Wrangler secrets > KV (setup wizard)
├── ui.js      # landing page, setup wizard, interactive console
└── about.js   # operator context — edit this for your deployment

Las peticiones no tienen estado: cada llamada MCP abre un intercambio SOAP nuevo con Five9 mediante autenticación HTTP Basic. La API de Statistics requiere además una llamada a setSessionParameters, que get_realtime_stats realiza en cada invocación.

  • Los endpoints de Five9 están generados por JAXB y validan el orden de los elementos hijo contra el WSDL (https://api.five9.com/wsadmin/v13/AdminWebService?wsdl, autenticación HTTP Basic) y se ajustan exactamente al orden de <xs:sequence> — incluidos los tipos base como basicImportSettings, cuyos elementos van antes que los de la extensión.

  • addToListCsv requiere cleanListBeforeUpdate, crmAddMode, crmUpdateMode y listAddMode aunque el WSDL marca la mayoría de ellos como minOccurs="0".

  • Las importaciones List/CRM son asíncronas: la llamada devuelve un identificador de importación inmediatamente; consulta get_import_result para conocer el resultado.

  • Los valores de los registros de contacto se devuelven envueltos (<values><data>…</data></values>); varias respuestas devuelven un objeto único donde cabría esperar un array de un elemento. toArray() en five9.js normaliza esto.

  • El orden de los criterios de tiempo de los informes es <end> antes de <start> (orden alfabético de JAXB).

  • El xmlDefinition de IVR es el formato persistido del diseñador visual: los módulos se conectan por GUID (ascendants / singleDescendant / branches), el texto TTS en línea se almacena como documentos speakElement en gzip+base64, y las comprobaciones de horario comercial comparan las variables de sistema __DAY__ (SUN=1..SAT=7) y __TIME__ (minutos desde la medianoche). ivr.js encapsula todo esto.

  • getPrompts no devuelve ningún id de prompt (solo nombre + tipo). Las referencias a prompts de archivo dentro del XML de IVR se aceptan con id 0 + el nombre del prompt y se normalizan en el servidor; el script enviado regresa con el domainId añadido por el servidor.

🛡️ Seguridad

  • Las credenciales de Five9 residen únicamente en tu cuenta de Cloudflare — como secretos de Worker o (ruta del asistente) en un namespace de Workers KV, cifrados en reposo. Ninguna herramienta las devuelve jamás, y los secretos de Wrangler siempre tienen prioridad sobre KV.

  • El asistente de configuración solo está abierto en un servidor nuevo y sin configurar — ejecútalo justo después de desplegar. Una vez configurado, cualquier cambio requiere la clave de acceso actual, y los servidores gestionados por variables de entorno rechazan por completo los cambios del asistente.

  • Completa siempre la configuración (o establece MCP_AUTH_TOKEN). Un servidor sin configurar y sin clave de acceso queda abierto — cualquiera que encuentre la URL puede operar tu centro de contacto.

  • Las herramientas de escritura (✏️ arriba) modifican tu dominio. Ajusta el rol del usuario de la API de Five9 a lo que realmente quieras que haga una IA — los permisos de Five9 son la verdadera frontera de seguridad.

  • manage_dnc remove y delete_list merecen una precaución extra; las instrucciones de about indican a las IA que confirmen antes de usarlas.

  • La consola almacena tu clave de acceso solo en el localStorage de tu navegador, y las llamadas van al mismo origen hacia tu propio Worker.

💻 Desarrollo

npm run dev      # wrangler dev on http://localhost:8787
npm run deploy   # wrangler deploy

Pon los secretos locales en .dev.vars (ignorado por git):

FIVE9_USERNAME=apiuser@yourdomain
FIVE9_PASSWORD=...
MCP_AUTH_TOKEN=dev-local-token

# Optional — external AI voice providers for generate_prompt_audio.
# The default (Workers AI / Deepgram Aura) needs no key at all.
ELEVENLABS_API_KEY=...
OPENAI_API_KEY=...

# Optional — OAuth New Platform REST tools (separate credential; see below)
FIVE9_CONSUMER_KEY=...
FIVE9_CONSUMER_SECRET=...
FIVE9_DOMAIN_ID=131109
FIVE9_REST_REGION=US
FIVE9_DT_CONSUMER_KEY=...        # optional: "Data Tables access" family
FIVE9_DT_CONSUMER_SECRET=...

Luego abre http://localhost:8787/console, pega dev-local-token y ejecuta las herramientas contra tu dominio — o haz una prueba rápida desde la CLI con el fragmento de curl de arriba.

🤝 Contribuciones

¡Se aceptan PRs! La API Config de Five9 tiene ~180 operaciones y este servidor envuelve 69 de las más útiles — el patrón en five9.js + tools.js es fácil de extender (lee primero las notas de SOAP y ahórrate una pelea con el WSDL). Por favor, mantén la restricción de cero dependencias.

📄 Licencia

MIT · creado por Ryan Shatzkamer

-
license - not tested
Not graded
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Manage AI assistants, history, calls, campaigns, contacts, knowledge, messaging, and automations.

  • Voice and chat for AI agents — Discord, Teams, Meet, Slack, Zoom, Telegram, WhatsApp, NC Talk, SIP

  • Give your AI agent a phone: place calls, navigate IVRs, wait on hold, get structured answers.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shaunwestALP/five9-mcp-mvp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server