Movie Recommendation
Realiza un seguimiento de las películas que has visto y ofrece recomendaciones basadas en tus preferencias.
Documentación
MediaSage
Un servidor de Protocolo de Contexto de Modelo (MCP) que rastrea películas, libros y programas de televisión, proporcionando recomendaciones inteligentes basadas en tus preferencias. Construido con Bun, SQLite (a través de Drizzle ORM), y soporta conexiones tanto locales (stdio) como remotas (HTTP/SSE).
Características
- Seguimiento Multi-Media: Rastrea películas, libros y programas de TV con calificaciones, estado y notas
- Filtrado Inteligente: Lista medios por tipo, estado, calificación, género y más
- Recomendaciones Cruzadas: Obtén sugerencias basadas en tus preferencias en todos los tipos de medios
- Metadatos Enriquecidos: Obtención automática de metadatos desde OMDB (películas), Google Books (libros) y TMDB (programas de TV)
- Análisis de Preferencias: Comprende tus géneros favoritos, creadores y lo que normalmente disfrutas
- Almacenamiento Persistente: Base de datos SQLite con Drizzle ORM y relaciones adecuadas
- Acceso Remoto: Servidor HTTP con soporte de Eventos Enviados por el Servidor (SSE)
- Seguro: Autenticación con clave API para conexiones remotas
Instalación
# Clone the repository
git clone <your-repo-url>
cd mediasage
# Install dependencies
bun install
# Set up API keys (required for metadata enrichment)
cp .env.example .env
# Edit .env and add your API keys:
# - OMDB_API_KEY (required for movies): Get from http://www.omdbapi.com/apikey.aspx
# - TMDB_API_KEY (required for TV shows): Get from https://www.themoviedb.org/settings/api
# - GOOGLE_BOOKS_API_KEY (optional for books): Get from Google Cloud Console
# Run migration if you have existing movie data
bun run src/migrate-to-media.ts
Uso
Modo Local (stdio)
Para uso con Claude Desktop u otros clientes MCP:
# Development (with file watching)
bun run dev
# Production
bun run start
Modo Remoto (HTTP/SSE)
Para acceso remoto a través de HTTP:
# Set environment variables
export API_KEY="your-secure-api-key"
export PORT=3000 # optional, defaults to 3000
# Development (with file watching)
bun run dev:http
# Production
bun run start:http
Herramientas Disponibles
Herramientas de Películas
search_and_add_movie
Busca una película y agrégala con metadatos auto-completados desde OMDB.
Parámetros:
title(requerido): Título de la película a buscaryear: Año de estreno (ayuda a la precisión)watched: Si ya la has visto (por defecto: falso)rating: Tu calificación (1-10) si la has vistonotes: Notas personaleslikedAspects: Lo que te gustó (separado por comas)dislikedAspects: Lo que no te gustómood: Cuándo/por qué la visterecommendationContext: Cómo debería influir en las recomendaciones
Herramientas de Libros
search_and_add_book
Busca un libro y agrégalo con metadatos auto-completados desde Google Books.
Parámetros:
title(requerido): Título del libro a buscarauthor: Nombre del autor (ayuda a la precisión)read: Si ya lo has leído (por defecto: falso)rating: Tu calificación (1-10) si lo has leídonotes: Notas personaleslikedAspects: Lo que te gustó (separado por comas)dislikedAspects: Lo que no te gustómood: Cuándo/por qué lo leísterecommendationContext: Cómo debería influir en las recomendaciones
Herramientas de Programas de TV
search_and_add_tv_show
Busca un programa de TV y agrégalo con metadatos auto-completados desde TMDB.
Parámetros:
title(requerido): Título del programa de TV a buscaryear: Año de primera emisión (ayuda a la precisión)watched: Si ya lo has visto (por defecto: falso)rating: Tu calificación (1-10) si lo has vistonotes: Notas personaleslikedAspects: Lo que te gustó (separado por comas)dislikedAspects: Lo que no te gustómood: Cuándo/por qué lo visterecommendationContext: Cómo debería influir en las recomendaciones
Herramientas Generales
list_media
Lista todos los medios con opciones de filtrado avanzado.
Parámetros:
type: Filtrar por tipo de medio ('movie', 'book', 'tv_show')watched_only: Mostrar solo elementos vistos/leídoswatchlist_only: Mostrar solo elementos no vistos/no leídosmin_rating: Filtro de calificación mínima (1-10)genre: Filtrar por génerocreator: Filtrar por director/autor/creadoryear: Filtrar por año
add_movie_to_watchlist
Agrega una película a tu lista de pendientes (películas que quieres ver).
Parámetros:
title(requerido): Título de la películayear: Año de estrenonotes: Por qué quieres verlarecommendationContext: Por qué fue recomendada
get_smart_recommendations
Obtén recomendaciones inteligentes basadas en tus preferencias en todos los tipos de medios.
Parámetros:
mood: Estado de ánimo actual (ej., 'llena de acción', 'reflexiva')genre_preference: Interés específico en un génerolength_preference: Duración preferida (corta/mediana/larga/cualquiera)count: Número de recomendaciones (por defecto: 5)
mark_as_watched
Marca una película de tu lista de pendientes como vista y califícala.
Parámetros:
id(requerido): ID de la películarating: Tu calificación (1-10)likedAspects: Lo que te gustódislikedAspects: Lo que no te gustónotes: Tus pensamientos
analyze_preferences
Analiza tus preferencias de medios para comprender tu gusto.
update_movie
Actualiza una entrada de película existente.
Parámetros:
id(requerido): ID de la películarating: Nueva calificación (1-10)watched: Actualizar estado de visualizaciónnotes: Actualizar notaslikedAspects: Actualizar aspectos que te gustarondislikedAspects: Actualizar aspectos que no te gustaronmood: Actualizar contexto de estado de ánimo
Configuración
Claude Desktop
Agrega a tu configuración de Claude Desktop:
{
"mcpServers": {
"mediasage": {
"command": "bun",
"args": ["run", "/path/to/mediasage/index.ts"]
}
}
}
Configuración de Cliente Remoto
Conéctate al endpoint HTTP:
Endpoint: http://localhost:3000/mcp
Method: POST
Headers:
- Content-Type: text/event-stream
- Authorization: Bearer YOUR_API_KEY
Variables de Entorno
PORT: Puerto del servidor HTTP (por defecto: 3000)API_KEY: Clave de autenticación para acceso remoto (requerida para modo HTTP)OMDB_API_KEY: Clave API para metadatos de películas OMDB (obtén una clave gratuita en omdbapi.com)
Metadatos de Películas
El servidor obtiene automáticamente metadatos de películas desde la API de OMDB, incluyendo:
- Directores, reparto, géneros, resúmenes de trama
- Calificaciones de IMDb, puntuaciones de Rotten Tomatoes
- Fechas de estreno, duración, datos de taquilla
- Imágenes de pósteres y más
Para habilitar la obtención de metadatos, obtén una clave API gratuita en omdbapi.com y configura:
export OMDB_API_KEY="your-api-key"
Flujo de Trabajo
- Agrega películas que has visto: Usa
search_and_add_movieconwatched: truey tu calificación - Construye tu lista de pendientes: Usa
add_movie_to_watchlistpara películas que quieres ver - Califica y analiza: Usa
mark_as_watchedcuando veas algo de tu lista - Obtén recomendaciones: Usa
get_smart_recommendationspara sugerencias personalizadas - Comprende tu gusto: Usa
analyze_preferencespara ver tus patrones de películas
Desarrollo
La estructura del proyecto:
movie-rec-mcp/
├── index.ts # Main stdio server
├── src/
│ ├── http-server.ts # HTTP/SSE server
│ ├── sse-transport.ts # SSE transport implementation
│ └── db/
│ ├── index.ts # Database operations
│ └── schema.ts # Drizzle schema definitions
├── movies.db # SQLite database (auto-created)
└── package.json
Notas de Seguridad
- Cambia la clave API predeterminada al implementar
- El servidor HTTP incluye encabezados CORS para desarrollo
- Considera usar HTTPS en producción
- El archivo de base de datos está en gitignore por privacidad
Licencia
MIT