Movie Recommendation
Acompanha os filmes que você assistiu e fornece recomendações baseadas nas suas preferências.
Documentação
MediaSage
Um servidor Model Context Protocol (MCP) que acompanha filmes, livros e séries de TV, fornecendo recomendações inteligentes com base nas suas preferências. Construído com Bun, SQLite (via Drizzle ORM), e suporta conexões locais (stdio) e remotas (HTTP/SSE).
Recursos
- Acompanhamento Multi-Mídia: Acompanhe filmes, livros e séries de TV com avaliações, status e notas
- Filtragem Inteligente: Liste mídias por tipo, status, avaliação, gênero e mais
- Recomendações Entre Mídias: Obtenha sugestões com base nas suas preferências em todos os tipos de mídia
- Metadados Ricos: Busca automática de metadados do OMDB (filmes), Google Books (livros) e TMDB (séries de TV)
- Análise de Preferências: Entenda seus gêneros favoritos, criadores e o que você normalmente aprecia
- Armazenamento Persistente: Banco de dados SQLite com Drizzle ORM e relações adequadas
- Acesso Remoto: Servidor HTTP com suporte a Server-Sent Events (SSE)
- Seguro: Autenticação por chave de API para conexões remotas
Instalação
# 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 com Claude Desktop ou outros clientes MCP:
# Development (with file watching)
bun run dev
# Production
bun run start
Modo Remoto (HTTP/SSE)
Para acesso remoto via 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
Ferramentas Disponíveis
Ferramentas de Filme
search_and_add_movie
Busque um filme e adicione-o com metadados preenchidos automaticamente do OMDB.
Parâmetros:
title(obrigatório): Título do filme a ser buscadoyear: Ano de lançamento (ajuda na precisão)watched: Se você já assistiu (padrão: falso)rating: Sua avaliação (1-10) se assistiunotes: Notas pessoaislikedAspects: O que você gostou (separado por vírgulas)dislikedAspects: O que você não gostoumood: Quando/por que você assistiurecommendationContext: Como isso deve influenciar as recomendações
Ferramentas de Livro
search_and_add_book
Busque um livro e adicione-o com metadados preenchidos automaticamente do Google Books.
Parâmetros:
title(obrigatório): Título do livro a ser buscadoauthor: Nome do autor (ajuda na precisão)read: Se você já leu (padrão: falso)rating: Sua avaliação (1-10) se leunotes: Notas pessoaislikedAspects: O que você gostou (separado por vírgulas)dislikedAspects: O que você não gostoumood: Quando/por que você leurecommendationContext: Como isso deve influenciar as recomendações
Ferramentas de Séries de TV
search_and_add_tv_show
Busque uma série de TV e adicione-a com metadados preenchidos automaticamente do TMDB.
Parâmetros:
title(obrigatório): Título da série de TV a ser buscadayear: Ano da primeira exibição (ajuda na precisão)watched: Se você já assistiu (padrão: falso)rating: Sua avaliação (1-10) se assistiunotes: Notas pessoaislikedAspects: O que você gostou (separado por vírgulas)dislikedAspects: O que você não gostoumood: Quando/por que você assistiurecommendationContext: Como isso deve influenciar as recomendações
Ferramentas Gerais
list_media
Liste todas as mídias com opções avançadas de filtragem.
Parâmetros:
type: Filtrar por tipo de mídia ('movie', 'book', 'tv_show')watched_only: Mostrar apenas itens assistidos/lidoswatchlist_only: Mostrar apenas itens não assistidos/não lidosmin_rating: Filtro de avaliação mínima (1-10)genre: Filtrar por gênerocreator: Filtrar por diretor/autor/criadoryear: Filtrar por ano
add_movie_to_watchlist
Adicione um filme à sua lista de desejos (filmes que você quer assistir).
Parâmetros:
title(obrigatório): Título do filmeyear: Ano de lançamentonotes: Por que você quer assisti-lorecommendationContext: Por que foi recomendado
get_smart_recommendations
Obtenha recomendações inteligentes com base nas suas preferências em todos os tipos de mídia.
Parâmetros:
mood: Humor atual (ex.: 'cheio de ação', 'reflexivo')genre_preference: Interesse específico em gênerolength_preference: Duração preferida (curta/média/longa/qualquer)count: Número de recomendações (padrão: 5)
mark_as_watched
Marque um filme da sua lista de desejos como assistido e avalie-o.
Parâmetros:
id(obrigatório): ID do filmerating: Sua avaliação (1-10)likedAspects: O que você gostoudislikedAspects: O que você não gostounotes: Seus pensamentos
analyze_preferences
Analise suas preferências de mídia para entender seu gosto.
update_movie
Atualize uma entrada de filme existente.
Parâmetros:
id(obrigatório): ID do filmerating: Nova avaliação (1-10)watched: Atualizar status de assistidonotes: Atualizar notaslikedAspects: Atualizar aspectos que você gostoudislikedAspects: Atualizar aspectos que você não gostoumood: Atualizar contexto de humor
Configuração
Claude Desktop
Adicione à sua configuração do Claude Desktop:
{
"mcpServers": {
"mediasage": {
"command": "bun",
"args": ["run", "/path/to/mediasage/index.ts"]
}
}
}
Configuração do Cliente Remoto
Conecte-se ao endpoint HTTP:
Endpoint: http://localhost:3000/mcp
Method: POST
Headers:
- Content-Type: text/event-stream
- Authorization: Bearer YOUR_API_KEY
Variáveis de Ambiente
PORT: Porta do servidor HTTP (padrão: 3000)API_KEY: Chave de autenticação para acesso remoto (obrigatória para modo HTTP)OMDB_API_KEY: Chave de API para metadados de filmes do OMDB (obtenha chave gratuita em omdbapi.com)
Metadados de Filmes
O servidor busca automaticamente metadados de filmes da API OMDB, incluindo:
- Diretores, elenco, gêneros, resumos de enredo
- Avaliações IMDb, pontuações Rotten Tomatoes
- Datas de lançamento, duração, dados de bilheteria
- Imagens de pôsteres e mais
Para habilitar a busca de metadados, obtenha uma chave de API gratuita em omdbapi.com e defina:
export OMDB_API_KEY="your-api-key"
Fluxo de Trabalho
- Adicione filmes que você assistiu: Use
search_and_add_moviecomwatched: truee sua avaliação - Construa sua lista de desejos: Use
add_movie_to_watchlistpara filmes que você quer ver - Avalie e analise: Use
mark_as_watchedquando assistir algo da sua lista - Obtenha recomendações: Use
get_smart_recommendationspara sugestões personalizadas - Entenda seu gosto: Use
analyze_preferencespara ver seus padrões de filmes
Desenvolvimento
A estrutura do projeto:
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 Segurança
- Altere a chave de API padrão ao implantar
- O servidor HTTP inclui cabeçalhos CORS para desenvolvimento
- Considere usar HTTPS em produção
- O arquivo do banco de dados é ignorado pelo git por privacidade
Licença
MIT