PocketMCP
Convierte tu teléfono Android en un servidor MCP (Model Context Protocol). Los agentes de IA y scripts de escritorio pueden llamar a tu teléfono para obtener datos en vivo y realizar acciones a través de la LAN.
Documentación
PocketMCP
Convierte tu teléfono Android en un servidor MCP (Model Context Protocol). Los agentes de IA y los scripts de escritorio pueden llamar a tu teléfono para obtener datos en vivo y realizar acciones a través de LAN o Tailscale.
Descarga (Pre-lanzamiento de prueba)
- Última versión de prueba: v1.0.0-beta.1
- Esta compilación está marcada como pre-lanzamiento y puede contener errores mientras continúa el desarrollo activo.
Compromiso de Código Abierto
PocketMCP es completamente de código abierto y la funcionalidad principal es gratuita. El proyecto tiene licencia MIT y las contribuciones de la comunidad son bienvenidas.
Por qué es útil
Casos de uso de alto valor para todos los usuarios:
- Centro de Comunicación: Envía mensajes de WhatsApp, Instagram, Messenger y haz llamadas desde el escritorio
- Automatización de Redes Sociales: Interactúa con Instagram, YouTube, X/Twitter automáticamente
- Gestión de Notificaciones: Monitorea y responde a todas las notificaciones del teléfono en tiempo real
- Verificación diaria de estado: "¿Cuál es mi batería y dónde está mi teléfono ahora mismo?"
- Búsqueda de contactos: "Encuentra el número de Alice en mis contactos."
- Control del ecosistema de aplicaciones: Inicia y gestiona más de 309 aplicaciones instaladas
- Diagnóstico del teléfono: Ejecuta verificaciones seguras de shell sin desbloquear el teléfono.
Herramientas integradas
| Herramienta | Descripción |
|---|---|
device_info | Batería, modelo, sistema operativo, red, memoria |
get_location | Mejor ubicación reciente de los proveedores del dispositivo |
search_contacts | Busca contactos por nombre |
make_call | Realiza llamadas telefónicas a cualquier número |
send_message | Envía mensajes a través de WhatsApp, Instagram, Messenger, Google Messages |
send_whatsapp_business_message | Enviador dedicado de WhatsApp Business seguro para contactos |
whatsapp_automation | Automatización avanzada de WhatsApp con control de accesibilidad |
social_media | Interacciones con Instagram, YouTube, X/Twitter |
app_actions | Acciones predefinidas en JSON para simplificar la automatización de aplicaciones |
notifications | Monitoreo y gestión de notificaciones en tiempo real |
shell | Ejecuta comandos de shell con filtros de seguridad y tiempo límite |
flashlight | Enciende/apaga/alterna la linterna y lee su estado |
launch_app | Abre una aplicación instalada por paquete o nombre |
list_apps | Lista aplicaciones instaladas ejecutables (se detectan más de 309) |
global_action | Inicio/atrás/recientes/notificaciones/ajustes rápidos/pantalla de bloqueo |
scroll_screen | Desplaza la aplicación actual mediante gesto de accesibilidad |
search_screen | Encuentra el campo de búsqueda en la pantalla actual y escribe la consulta de forma segura |
tap | Toca por texto visible/descripción de contenido o coordenadas de pantalla |
volume_control | Lee y cambia los niveles de volumen de transmisión |
phone_alert | Hace sonar y/o vibrar el teléfono para localizarlo rápidamente |
voice_record | Graba notas de voz desde el micrófono |
transcribe_audio | Conversión de voz a texto desde el micrófono o ruta de archivo de audio local |
transcribe_file | Transcripción directa de archivos de audio por ruta |
transcribe_whatsapp_audio | Transcribe la última nota de voz de WhatsApp/WhatsApp Business |
human_command | Enrutador de comandos en lenguaje natural entre las principales herramientas |
http_request | Realiza solicitudes HTTP salientes desde el teléfono |
read_file | Lee archivos desde rutas de almacenamiento permitidas |
🆕 Nuevas Funciones (v.0+)
📞 Llamadas Telefónicas y Mensajería
- Llamadas Directas: Realiza llamadas a cualquier número con soporte de nombre de contacto
- Mensajería Multiplataforma: WhatsApp, Instagram, Messenger, Google Messages
- Soporte de WhatsApp Business: Prioriza WhatsApp Business cuando está instalado
- Integración de Enlaces Profundos: Abre aplicaciones con contenido prellenado
🤖 Automatización Avanzada de WhatsApp
- Automatización Completa: Envía mensajes con selección de contacto y escritura
- Control Paso a Paso: Selecciona contactos, escribe mensajes, presiona enviar/cancelar
- Integración de Accesibilidad: Automatización completa de la interfaz de usuario mediante el servicio de accesibilidad
- Business y Personal: Soporta ambas variantes de WhatsApp
🌐 Interacciones en Redes Sociales
- Instagram: Búsqueda de perfiles, interacciones con publicaciones (me gusta, comentar, compartir)
- YouTube: Búsqueda de videos, me gusta/no me gusta/comentar en videos
- X/Twitter: Búsqueda de perfiles, interacciones con publicaciones
- Enlaces Profundos: Navegación directa a contenido específico
🔔 Notificaciones en Tiempo Real
- Monitoreo en Vivo: Captura todas las notificaciones del dispositivo en tiempo real
- Datos Completos: Título, texto, aplicación, hora, prioridad, visibilidad
- Acceso Histórico: Notificaciones recientes con búsqueda y filtrado
- Gestión: Borrar historial, verificar estado, obtener recuentos
Modelo de seguridad
- Autenticación con clave API soportada mediante
X-API-Key(recomendado). - Uso de red local por defecto; usa Tailscale para acceso remoto.
- La herramienta de shell bloquea comandos de alto riesgo y aplica límites de tiempo y salida.
- Las lecturas de archivos están restringidas al almacenamiento de la aplicación y a las raíces de almacenamiento externo.
- Las URLs de bucle local están bloqueadas en
http_request. - Servicio de Accesibilidad: Requerido para funciones de automatización avanzada.
- Acceso a Notificaciones: Requerido para el monitoreo de notificaciones en tiempo real.
Modelo de confiabilidad
- El servicio en primer plano de Android mantiene vivo el servidor MCP.
- El ciclo de vida de inicio/detención/estado es explícito (
START,STOP,QUERY_STATUS). - La interfaz de usuario refleja el estado real del servicio mediante transmisiones de estado.
- Detección Mejorada de Aplicaciones: Detecta más de 309 aplicaciones ejecutables (antes 25).
- Alternativas Elegantes: Instrucciones de interacción manual cuando la automatización no es posible.
Inicio rápido
1) Instalar la aplicación
Opción A: instalar desde el APK de pre-lanzamiento
- Descarga
PocketMCP-debug.apkdesde v1.0.0-beta.1 - Instala con ADB:
adb install -r PocketMCP-debug.apk
Opción B: compilar desde el código fuente e instalar
./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk
2) Iniciar el servidor en la aplicación
- Abre PocketMCP.
- Configura el puerto (por defecto
8080). - Genera o pega la clave API.
- Inicia el servidor desde el interruptor o botón.
- Copia el endpoint/configuración desde la sección de Conexión Rápida.
3) Habilitar Permisos
Requerido para funcionalidad completa:
- Ubicación:
ACCESS_FINE_LOCATION(solicitado automáticamente al iniciar) - Contactos:
READ_CONTACTS(solicitado automáticamente al iniciar) - Cámara:
CAMERA(solicitado automáticamente al iniciar) - Teléfono: permiso
CALL_PHONEen la configuración de la aplicación - Micrófono: permiso
RECORD_AUDIOen la configuración de la aplicación - SMS: permisos
SEND_SMS,READ_SMS - Audio/Almacenamiento:
READ_MEDIA_AUDIOoREAD_EXTERNAL_STORAGE(solicitado automáticamente) - Notificaciones: Configuración > Aplicaciones > Acceso Especial > Acceso a Notificaciones
- Accesibilidad: Configuración > Aplicaciones > Acceso Especial > Servicios de Accesibilidad
4) Verificar el servidor
# health
curl http://192.168.1.100:8080/health
# list tools
curl -X POST http://192.168.1.100:8080/mcp \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Conexión con emulador (AVD de Android Studio)
Si PocketMCP se ejecuta dentro de un emulador de Android, no uses 10.0.2.15 desde la configuración de tu cliente MCP en el host.
Usa el reenvío de puertos de ADB y localhost:
powershell -ExecutionPolicy Bypass -File .\scripts\setup-emulator-mcp.ps1
Luego configura la URL de MCP como:
http://127.0.0.1:8080/mcp
Notas:
10.0.2.15es interno del emulador (no accesible desde el host).10.0.2.2es para emulador -> host, no host -> emulador.
Ejemplo de Configuración de Cliente MCP
Usa mcp-config.example.json como plantilla.
{
"mcpServers": {
"phone": {
"type": "streamableHttp",
"url": "http://192.168.1.100:8080/mcp",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}
Puente Stdio (para clientes MCP solo-stdio)
PocketMCP incluye un puente stdio reforzado en mcp-bridge/bridge.mjs que actúa como proxy de llamadas MCP stdio hacia el endpoint HTTP MCP de tu teléfono.
cd mcp-bridge
npm install
node bridge.mjs --url http://192.168.1.100:8080/mcp --api-key your-api-key --verbose
Opciones de configuración del puente:
--url: URL MCP del teléfono de destino (agrega automáticamentehttp://si falta)--api-key: clave API enviada comoX-API-Key--timeout-ms: tiempo límite por solicitud (por defecto20000)--tools-ttl-ms: TTL de caché de herramientas (por defecto30000)--no-tool-cache: deshabilitar caché de herramientas--verbose: emitir registros detallados del puente a stderr
Variables de entorno equivalentes:
POCKET_MCP_URLPOCKET_MCP_API_KEYPOCKET_MCP_TIMEOUT_MSPOCKET_MCP_TOOLS_TTL_MSPOCKET_MCP_DISABLE_TOOL_CACHE=1POCKET_MCP_VERBOSE=1
Ejemplo de Cliente Python
from pocket_mcp_client import PocketMCPClient
phone = PocketMCPClient("http://192.168.1.100:8080", api_key="your-api-key")
print(phone.device_info())
print(phone.list_apps(limit=25))
print(phone.notifications("list", 10))
print(phone.human_command("vibrate my phone for 5 seconds"))
El cliente Python ahora incluye reintentos, excepciones tipadas, validación de argumentos más estricta y una CLI:
# health check (default action)
python3 pocket_mcp_client.py 192.168.1.100:8080 your-api-key
# list tools
python3 pocket_mcp_client.py 192.168.1.100:8080 your-api-key --list-tools
# call one tool with JSON args
python3 pocket_mcp_client.py 192.168.1.100:8080 your-api-key \
--call send_message \
--args '{"app":"whatsapp","phone_number":"+15551234567","message":"hello from desktop"}'
Permisos
Algunas herramientas requieren permisos especiales o servicios de Android:
- Teléfono (
CALL_PHONE) - Micrófono (
RECORD_AUDIO) - SMS (
SEND_SMS,READ_SMS,RECEIVE_SMS) - Acceso a notificaciones (Notification Listener)
- Servicio de accesibilidad (para automatización de interfaz de usuario)
Modelo de Seguridad
- Autenticación con clave API mediante
X-API-Key(recomendado) - Red local primero; acceso remoto a través de redes privadas como Tailscale
- Restricciones de comandos de shell con límites de tiempo y salida
- Restricciones de rutas de lectura de archivos
- Bloqueo de URLs de bucle local para
http_request
Notas de Confiabilidad
- Se ejecuta como un servicio en primer plano de Android
- Ciclo de vida del servicio explícito (
START,STOP,QUERY_STATUS) - Las actualizaciones de transmisión de estado se reflejan en la interfaz de usuario
Hoja de ruta
- Herramientas de captura de cámara
- Más automatizaciones basadas en accesibilidad
- Soporte de WebSocket
- Flujo de trabajo de emparejamiento con un toque
- Flujos de comandos por voz
Licencia
MIT