Call Me

Tu IA llama a tu iPhone, hace su pregunta en voz alta y recibe tu respuesta hablada como texto.

Servidor MCP alojado

npx add-mcp 'https://callmemcp.com/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

/call-me app icon

callme — tu IA puede llamarte

Download on the App Store

Tus agentes de IA llaman a tu iPhone real, te leen una pregunta, una actualización o tu día por delante, y reciben tu respuesta hablada como texto — o simplemente te envían un mensaje de texto. Funciona desde cualquier IA que hable MCP; no hay nada que instalar.

Call Me no es un asistente de voz y no mantiene conversación propia. Tu agente hace el pensamiento; Call Me solo lleva su pregunta a tu teléfono y tu respuesta de vuelta, para que puedas seguir trabajando mientras conduces, viajas en tren o caminas.

1. Obtén la aplicación

callme en la App Store. Sin registro, sin correo electrónico. Ábrela, toca Aceptar y continuar, y muestra tu número personal callme: 10 dígitos, y todo lo que un agente necesita para contactarte.

2. Conecta tu IA (MCP)

El emparejamiento se almacena localmente en ~/.aiphone/config.json. Un servidor MCP que se ejecuta en esta computadora puede leer ese archivo automáticamente; el endpoint HTTP alojado no puede leer archivos en tu computadora y, por lo tanto, necesita que el número se proporcione por separado.

Un servidor, todos los clientes MCP — sin clave API, sin OAuth:

https://callmemcp.com/mcp

Claude Code

claude mcp add --transport http call-me https://callmemcp.com/mcp

opencode — agrégalo a opencode.json (o ~/.config/opencode/opencode.json):

{
  "mcp": {
    "call-me": {
      "type": "remote",
      "url": "https://callmemcp.com/mcp",
      "enabled": true
    }
  }
}

Codex CLI — usa el servidor MCP local emparejado

cd /absolute/path/to/call-me
codex mcp remove call-me  # only if the hosted entry is already configured
codex mcp add callme -- node "$PWD/codex/mcp.mjs"
codex mcp list

El servidor MCP local callme lee ~/.aiphone/config.json para cada llamada y mensaje de texto, por lo que no es necesario escribir el número en la conversación de Codex. Usa su herramienta identity para verificar el teléfono emparejado.

Gemini CLI

gemini extensions install https://github.com/radres/call-me

o, solo para el servidor MCP:

gemini mcp add --transport http call-me https://callmemcp.com/mcp

Grok

En la aplicación Grok: grok.com/connectors → Nuevo Conector → Personalizado → https://callmemcp.com/mcp. En Grok Build:

grok plugin install radres/call-me#grok

Cline — agrégalo a la configuración MCP de Cline (Servidores MCP → Configurar; CLI: ~/.cline/data/settings/cline_mcp_settings.json). Los pasos completos legibles por agentes están en llms-install.md.

{
  "mcpServers": {
    "call-me": {
      "type": "streamableHttp",
      "url": "https://callmemcp.com/mcp",
      "timeout": 120
    }
  }
}

Cursor — agrégalo a ~/.cursor/mcp.json (o .cursor/mcp.json en un proyecto):

{
  "mcpServers": {
    "call-me": { "url": "https://callmemcp.com/mcp" }
  }
}

O instala el plugin en plugin/, que agrega una habilidad que le dice al agente cuándo llamar y cuándo enviar un mensaje de texto. Es un Agent Plugin estándar con un manifiesto de Cursor, por lo que cualquier cliente que cargue Agent Plugins también puede usarlo.

ChatGPT — Configuración → Aplicaciones → Avanzado → Modo desarrollador → agrega un conector con la URL anterior (sin autenticación).

claude.ai — Configuración → Conectores → Agregar conector personalizado → la URL anterior.

Cualquier otra cosa que hable MCP — agrega un servidor HTTP transmisible apuntando a la URL anterior, luego proporciona el número de destinatario a través del flujo de emparejamiento o configuración de ese cliente. Una conexión MCP alojada no puede ver el ~/.aiphone/config.json de esta computadora.

Para las integraciones locales de Codex/Claude, emparejar una vez escribe la configuración local compartida y las herramientas MCP la usan automáticamente. Para clientes alojados, dile a la IA el número o usa el flujo de emparejamiento explícito de ese cliente; nunca lo adivines.

HerramientaQué hace
callLlama a tu iPhone, lee tu texto en voz alta (una pregunta, una actualización, un resumen del día por delante), devuelve tu respuesta hablada como texto. Espera ~30s, luego entrega a la IA un call_id para consultar
poll_resultFinaliza una llamada que aún estaba sonando
textMensaje de notificación push, sin llamada
wait_for_replyEntrega tus respuestas y buzones de voz de vuelta a la IA
set_thread_titleNombra el hilo de conversación en tu teléfono

Las llamadas repetidas de la misma IA aterrizan en un hilo con título en tu teléfono; cada agente/sesión obtiene su propio número e hilo. Bloquear un hilo en la aplicación silencia a ese remitente para siempre.

3. O simplemente usa curl

Sin cliente MCP, sin plugin, sin token. Cualquier cosa que pueda enviar JSON puede llamar a tu teléfono, y estos dos endpoints son todo el producto.

Llamar y esperar la respuesta hablada (bloquea hasta que respondas o se rinda):

curl -sS https://callmemcp.com/ring \
  -H 'content-type: application/json' \
  -d '{"to":"<YOUR_10_DIGITS>","text":"Deploy to prod?","from":"Claude on my laptop"}'
{"status":"completed","transcript":"Yes, ship it",
 "session_token":"curl_1a2b...","from":"<CALLER_NUMBER>"}

status es uno de completed, missed, declined, timeout, failed. transcript es lo que dijiste, ya convertido en texto.

Solo texto, sin llamada:

curl -sS https://callmemcp.com/text \
  -H 'content-type: application/json' \
  -d '{"to":"<YOUR_10_DIGITS>","body":"Migration finished.","from":"Claude on my laptop"}'

Devuelve {"ok":true,"message_id":42,"delivered":true}. Un delivered:false significa que el texto está en tu historial pero no se mostró ninguna notificación (las notificaciones están desactivadas para /call-me en ese teléfono); la respuesta lo explica en notice.

Campo
totu número /call-me de 10 dígitos. Obligatorio
text / bodyqué decir / enviar. Hasta 2000 caracteres para cualquiera; una llamada lo lee en unos dos minutos
fromnombre del remitente que se muestra en tu teléfono. Por defecto "La IA de alguien"
timeout_s/ring solo: segundos de espera, de 30 a 300. Por defecto 300

Cualquier otra cosa

Ambas respuestas devuelven un session_token, y eso es una sesión real: el mismo llamante puede usar el resto de la API con él, todo aterrizando en un hilo en tu teléfono.

# name the thread
curl -sS https://callmemcp.com/aiphone/sessions/label \
  -H 'content-type: application/json' \
  -d '{"session_token":"curl_...","label":"nightly deploy"}'

# long-poll for replies, voicemails and missed calls
curl -sS "https://callmemcp.com/aiphone/sessions/events?session_token=curl_...&cursor=0&wait=25"

El token se deriva de to + from + tu IP, por lo que los curls repetidos desde la misma máquina reutilizan un hilo en lugar de aparecer como un extraño nuevo cada vez.

Límites: 20 llamadas/hora y 60/día por IP, 10 llamadas/hora y 40/día a cualquier número. Un remitente que hayas bloqueado en la aplicación recibe missed con una transcripción vacía, indistinguible de un teléfono que nadie contestó. A propósito.

4. Opcional: plugin de Claude Code

En Claude Code, el plugin agrega lo que MCP solo no puede: las respuestas que envías desde el teléfono aterrizan en la sesión en vivo, y si Claude termina un turno con una pregunta pendiente para ti, un hook Stop + un esperador de respuestas lo despiertan para llamarte o enviarte un mensaje de texto en lugar de dormirse.

claude plugin marketplace add radres/call-me
claude plugin install call-me@call-me
claude plugin enable call-me@call-me   # REQUIRED — install leaves it disabled
claude plugin list                     # expect: call-me@call-me   ✔ enabled

Luego reinicia Claude Code y di "configura /call-me para mí" — hace el resto.

5. Opcional: plugin de DeepSeek Harness

En DSH, dsh-plugin-call-me agrega lo que MCP solo tampoco puede allí: un turno que termina o una herramienta esperando aprobación puede llamar a tu teléfono por sí solo, y como DSH permite que un plugin despierte una ejecución inactiva, la respuesta que hablas retoma la ejecución.

dsh plugin --profile web add github:radres/dsh-plugin-call-me

6. Opcional: plugin de herdr

herdr es un administrador de espacios de trabajo de terminal que observa cada panel y marca a un agente blocked en el momento en que pone una aprobación o pregunta real en pantalla. herdr-plugin-call-me convierte ese momento en una llamada — y luego pone tu respuesta hablada de vuelta en el panel como la pulsación de tecla que el agente estaba esperando. Funciona para cualquiera de los ~20 agentes compatibles de herdr que esté en ese panel, por lo que no necesita nada del propio agente.

herdr plugin install radres/herdr-plugin-call-me
herdr plugin pane open --plugin radres.call-me --entrypoint pair

7. Opcional: plugin de Omarchy

El panel de configuración de Omarchy vive en su propio repositorio para que el marketplace instale solo el panel: radres/omarchy-plugin-call-me.

omarchy plugin add https://github.com/radres/omarchy-plugin-call-me.git --enable
bash ~/.config/omarchy/plugins/radres.call-me/install-launcher.sh

Elimínalo con omarchy plugin remove radres.call-me. Los detalles, requisitos y lo que el panel envía a través de la red están en el README de ese repositorio.

Cómo funciona

  • call crea una llamada VoIP (LiveKit WebRTC — sin telefonía real); tu iPhone suena a través de CallKit como una llamada real, TTS lee tu texto, tu respuesta hablada se transcribe y se devuelve al agente.
  • Tu número es una capacidad de portador: cualquiera que lo conozca puede contactarte, nadie que no lo conozca puede. Los límites de velocidad y los topes por número se aplican en el servidor; bloquea cualquier hilo en la aplicación para silenciarlo permanentemente.