Skip to main content
Glama
melenas1414

Sony TV MCP Server

by melenas1414

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

Related MCP server: ThinQ Connect MCP Server

📋 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

  1. Clona el repositorio:

git clone <tu-repositorio>
cd sony-mcp
  1. Instala las dependencias:

npm install
  1. Copia el archivo de ejemplo de variables de entorno y configúralo:

cp .env.example .env
  1. Edita el archivo .env con los datos de tu televisor:

SONY_TV_IP=192.168.1.100
SONY_TV_PSK=0000
PORT=3000

🔑 Cómo obtener la clave PSK

  1. En tu televisor Sony, ve a: Configuración → Red → Control remoto por red

  2. Activa la opción "Control remoto por red"

  3. Selecciona "Autenticación" y configura una clave PSK (por defecto suele ser 0000)

  4. 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 dev

Modo producción:

npm start

El 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 televisor

  • sony_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 televisor

  • sony_tv_volume_up: Sube el volumen

  • sony_tv_volume_down: Baja el volumen

  • sony_tv_mute: Silencia/activa el sonido

  • sony_tv_channel_up: Canal siguiente

  • sony_tv_channel_down: Canal anterior

  • sony_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 start

O 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 .env para configuración sensible (incluido en .gitignore)

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Haz un fork del proyecto

  2. Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)

  3. Commit tus cambios (git commit -m 'Agrega nueva funcionalidad')

  4. Push a la rama (git push origin feature/nueva-funcionalidad)

  5. 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_commands para 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 install para instalar todas las dependencias

  • Verifica que TypeScript esté correctamente instalado

📚 Recursos adicionales

Related MCP Connectors

Related MCP Servers