Sony TV MCP Server
Servidor Model Context Protocol (MCP) tipo HTTP-streaming para controlar televisores Sony mediante la API IRCC. Este servidor permite controlar tu televisor Sony a través de comandos remotos desde aplicaciones compatibles con MCP.
🚀 Características
- ✅ Servidor MCP HTTP-streaming (no stdio)
- ✅ Control remoto completo del televisor Sony
- ✅ Obtención dinámica de comandos IRCC disponibles
- ✅ Herramientas predefinidas para acciones comunes (encendido, volumen, canales, etc.)
- ✅ Envío de comandos personalizados por nombre o código IRCC
- ✅ Configuración sencilla mediante variables de entorno
📋 Requisitos previos
- Node.js 18 o superior
- Televisor Sony compatible con la API IRCC
- El televisor debe estar en la misma red local
- Clave PSK (Pre-Shared Key) del televisor configurada
🔧 Instalación
- Clona el repositorio:
git clone
cd sony-mcp- Instala las dependencias:
npm install- Copia el archivo de ejemplo de variables de entorno y configúralo:
cp .env.example .env- Edita el archivo
.envcon los datos de tu televisor:
SONY_TV_IP=192.168.1.100
SONY_TV_PSK=0000
PORT=3000🔑 Cómo obtener la clave PSK
- En tu televisor Sony, ve a: Configuración → Red → Control remoto por red
- Activa la opción "Control remoto por red"
- Selecciona "Autenticación" y configura una clave PSK (por defecto suele ser
0000) - Anota esta clave para usarla en el archivo
.env
🏗️ Compilación
Compila el proyecto TypeScript:
npm run build▶️ Ejecución
El servidor arranca como un servidor HTTP en el puerto configurado (por defecto 3000).
Modo desarrollo (con watch):
npm run devModo producción:
npm startEl servidor estará disponible en http://localhost:3000 (o el puerto que configures en PORT).
🛠️ Herramientas disponibles
El servidor MCP expone las siguientes herramientas:
Comandos generales
sony_tv_get_commands: Obtiene todos los comandos IRCC disponibles del televisorsony_tv_send_command: Envía un comando específico por nombre o código IRCC
- Parámetros: command (string) - Nombre del comando o código IRCC
Comandos de acceso rápido
sony_tv_power: Enciende/apaga el televisorsony_tv_volume_up: Sube el volumensony_tv_volume_down: Baja el volumensony_tv_mute: Silencia/activa el sonidosony_tv_channel_up: Canal siguientesony_tv_channel_down: Canal anteriorsony_tv_input: Cambia la fuente de entrada
📝 Configuración en Claude Desktop
Para usar este servidor MCP con Claude Desktop, agrega la siguiente configuración a tu archivo de configuración de Claude.
Nota importante: Este es un servidor HTTP-streaming, por lo que la configuración es diferente a los servidores stdio tradicionales.
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"sony-tv": {
"url": "http://localhost:3000"
}
}
}Asegúrate de que el servidor esté ejecutándose antes de usar Claude Desktop. Puedes iniciar el servidor con:
npm startO si prefieres ejecutarlo en segundo plano con un puerto diferente:
PORT=3000 npm start &🔍 Ejemplos de uso
Una vez configurado en Claude Desktop, puedes usar comandos naturales como:
- "Enciende el televisor Sony"
- "Sube el volumen del TV"
- "Cambia de canal"
- "Silencia el televisor"
- "Muéstrame todos los comandos disponibles del TV Sony"
- "Envía el comando Home al televisor"
🏗️ Arquitectura
sony-mcp/
├── src/
│ ├── index.ts # Servidor MCP principal
│ └── sony-client.ts # Cliente para la API IRCC de Sony
├── .env.example # Plantilla de configuración
├── package.json # Dependencias del proyecto
└── tsconfig.json # Configuración de TypeScript🔒 Seguridad
- La clave PSK se transmite en la cabecera
X-Auth-PSK - Las comunicaciones se realizan solo en la red local
- No almacenes credenciales en el código fuente
- Usa el archivo
.envpara configuración sensible (incluido en.gitignore)
🤝 Contribuciones
Las contribuciones son bienvenidas. Por favor:
- Haz un fork del proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -m 'Agrega nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
📄 Licencia
MIT
🐛 Solución de problemas
El servidor no se conecta al televisor
- Verifica que el TV esté encendido y en la misma red
- Comprueba que la IP sea correcta
- Asegúrate de que el control remoto por red esté habilitado en el TV
- Verifica que la clave PSK sea correcta
Los comandos no funcionan
- Ejecuta primero
sony_tv_get_commandspara ver los comandos disponibles - Algunos televisores pueden tener nombres de comandos diferentes
- Verifica que no haya firewall bloqueando la comunicación
Errores de compilación
- Asegúrate de tener Node.js 18 o superior
- Ejecuta
npm installpara instalar todas las dependencias - Verifica que TypeScript esté correctamente instalado
