sully-termux-mcp
sully-termux-mcp
sully-termux-mcp es una puerta de enlace Node.js 20+ en TypeScript ESM para ejecutar herramientas MCP en Termux. El valor predeterminado de producción es deliberadamente pequeño: solo escucha en una dirección de bucle local, requiere un token Bearer de 32 bytes y expone una API de administración separada y autenticada.
Inicio rápido
npm ci
npm run build
node dist/cli.js setup
node dist/cli.js start
node dist/cli.js status
node dist/cli.js pair # explicit user action; prints both tokensLa configuración generada es ~/.config/sully-mcp/config.json con modo 0600; los datos, la salida de trabajos y el registro de auditoría redactado se encuentran en ~/.local/share/sully-mcp con modo 0700. Nunca pegue JSON de emparejamiento en un registro o issue.
Para controles del teléfono, instale el paquete de comandos Termux:API (pkg install termux-api) e instale la aplicación complementaria Termux:API para Android desde la misma fuente de firma (por ejemplo, ambos desde F-Droid, o ambos desde GitHub). Android no entregará llamadas API cuando los dos paquetes provienen de fuentes de firma diferentes. Reinicie la puerta de enlace después de instalar o actualizar Termux:API para que se reconstruya su inventario de comandos.
El endpoint MCP es http://127.0.0.1:8765/mcp. Esta versión admite los protocolos estables basados en sesiones 2025-11-25 y 2025-06-18 con initialize, notifications/initialized, tools/list y tools/call. El transporte 2026-07-28 no se anuncia deliberadamente hasta que se implementen sus encabezados de enrutamiento requeridos y su envoltorio de respuesta. DELETE /mcp cierra una sesión de 2025.
Related MCP server: Python MCP Toolkit Server
Administración
POST /admin/v1 usa el token Bearer admin y acepta { "action": "status", "params": {} }. Las acciones incluyen status, doctor, permissions, capabilities, jobs.list, jobs.output, jobs.cancel, jobs.cleanup, profiles.list, profiles.upsert, profiles.remove, upstreams.list, upstreams.import, upstreams.update, upstreams.remove, gateway.stop, tokens.rotate y pair.revoke. Todas las respuestas tienen {ok:true,result} o {ok:false,error}. Los secretos solo se devuelven en una respuesta explícita de tokens.rotate o en el comando CLI explícito pair.
permissions y doctor incluyen una lista de verificación centralizada de Termux:API agrupada por dispositivo, comunicación, medios, interacción y automatización. La disponibilidad de comandos se detecta al inicio; el estado de permisos de Android en tiempo de ejecución se informa como unknown, y el requisito de la misma fuente de firma para Termux:API es explícito.
Herramientas y límites
Las funciones integradas incluyen echo_safe acotado, fs_read, fs_write, fs_list, fs_metadata, fs_find, fs_copy, fs_move, perfiles de comandos, trabajos de shell, estado de trabajos/salida/cancelación/limpieza, y comandos detectados de Termux:API (incluidos ubicación tipada, cámara, notificación, toast, portapapeles, SMS, TTS, volumen y entrada de linterna). Los comandos API menos comunes exponen args sin procesar limitados con una pista de uso/ayuda; consulte la --help del comando instalado para opciones exactas. shell_exec siempre lanza bash -lc con shell:false; los perfiles de comando y los upstreams stdio usan un ejecutable y una matriz de argumentos con shell:false. Los trabajos sobreviven reinicios como interrupted, capturan como máximo 8 MiB y devuelven como máximo 64 KiB por solicitud de salida. Las solicitudes están limitadas a 1 MiB y las respuestas a 4 MiB; el concurso de herramientas por defecto es cuatro.
Los upstreams HTTP deben usar HTTPS, o HTTP en el host literal de bucle local 127.0.0.1/::1 (sin alias DNS ni espacios en blanco). Los destinos HTTPS que resuelven a rangos privados, de enlace local o de metadatos se rechazan. Redirecciones, credenciales en URL, fragmentos y herramientas no permitidas en la lista blanca se rechazan. Las herramientas HTTP y stdio upstream se prefijan (id__tool) y pueden restringirse con allowedTools, readOnly y prefix.
Ciclo de vida de Termux
El ciclo de vida normal de sully-mcp start/restart adquiere termux-wake-lock cuando está disponible y stop lo libera. Instale termux-boot/sully-termux-mcp como ~/.termux/boot/sully-termux-mcp y hágalo ejecutable para iniciar después del reinicio. La optimización de batería de Android aún puede detener Termux; la aplicación debe tratar una puerta de enlace no disponible como recuperable.
Comandos CLI compatibles: setup, start, stop, restart, status, doctor, permissions, pair, update y uninstall --yes.
Integridad de lanzamiento
npm run release -- --version 0.2.0 requiere MCP_RELEASE_ED25519_PRIVATE_KEY y ejecuta una compilación antes de escribir sully-termux-mcp-0.2.0.tar.gz, su hash SHA-256, manifest y firma Ed25519. El comando de aplicación en scripts/install-command.txt descarga el archivo de lanzamiento fijo de GitHub Release en un directorio temporal, compara el archivo con su hash esperado y verifica la firma Ed25519 con su clave pública integrada, antes de ejecutar el script de instalación verificada. Nunca uses curl | sh sin verificar. La clave privada de firma se suministra de forma transitoria mediante MCP_RELEASE_ED25519_PRIVATE_KEY por el operador de lanzamiento y nunca se compromete en el repositorio.
Modelo de seguridad
Solo se aceptan hosts de bucle local para el listener local. Las credenciales MCP y de administración son valores aleatorios de 64 hex independientes y se comparan con una comparación de tiempo constante. La configuración se escribe como UTF-8 con permisos restrictivos. El servidor no devuelve tokens desde /health, errores normales, registros de auditoría ni metadatos de trabajos. Las entradas de auditoría se redactan y limitan. Las herramientas con efectos secundarios nunca se reintentan automáticamente. Las herramientas de upstream de HTTP y stdio tienen prefijo (id__tool) y se pueden restringir con allowedTools, readOnly y prefix.
Este repositorio está bajo la Licencia No Comercial PolyForm 1.0.0 heredada de SULLYTEST2.
This server cannot be installed
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 Servers
- AlicenseAqualityAmaintenanceMCP server for SSH and local terminal access. Supports interactive commands, long-running processes, and TUI apps like tmux/zellij63MIT
- AlicenseAqualityBmaintenanceA Python-based MCP server for file operations, web search with fallback, and task management, designed for Termux and extensible via plugins.32GPL 3.0
- AlicenseAqualityCmaintenanceAn MCP server that enables managing SSH hosts, tunnels, Docker containers, and monitoring metrics via Termix's REST API.151MIT
- AlicenseNot gradedqualityFmaintenanceZero-dependency Model Context Protocol server for Termux (Android) that gives shell access to your device.121MIT
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/chushiyu111-design/sully-termux-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server