IMDb MCP Server

Fornece informações sobre filmes e programas de TV usando o serviço da API do IMDb.

Documentação

MseeP.ai Security Assessment Badge

IMDb MCP Server

License: MIT Python 3.13 Docker RapidAPI

Verified on MseeP

Verificado no MCP Review

Um servidor Python que implementa o Model Context Protocol (MCP) para informações de filmes e programas de TV usando o serviço de API do IMDb.

Sumário

Visão Geral

Este servidor fornece um conjunto abrangente de ferramentas para acessar dados do IMDb através da API do IMDb. Ele atua como uma ponte entre agentes e o banco de dados do IMDb, oferecendo informações detalhadas sobre filmes, programas de TV, atores, diretores e muito mais.

Recursos

  • 🎬 Capacidades de busca de filmes e programas de TV
  • 📋 Informações detalhadas sobre filmes e programas de TV
  • 👨‍👩‍👧‍👦 Informações de elenco e equipe técnica
  • 🏆 Listas de conteúdo mais bem avaliado e popular
  • 💰 Dados de bilheteria
  • 🌍 Informações de filmes específicas por país (com foco especial no cinema indiano)
  • 🔜 Lançamentos futuros
  • 🔄 Sistema eficiente de cache de respostas

Requisitos

  • Python: 3.13 ou superior
  • Gerenciador de Pacotes: uv (recomendado) ou pip
  • Conta RapidAPI: Necessária para acesso à API do IMDb

Configuração

Este servidor requer sua própria chave de API do RapidAPI para o serviço de API do IMDb:

  1. Crie uma conta no RapidAPI
  2. Assine a API do IMDb no RapidAPI (um plano gratuito está disponível)
  3. Copie sua chave de API do painel do RapidAPI
  4. Forneça-a através da variável de ambiente RAPID_API_KEY_IMDB, usando o que melhor se adequar à sua configuração:
    • Config do cliente MCP — defina-a no bloco env (veja Instalação). Esta é a forma usual.
    • Shell: export RAPID_API_KEY_IMDB=your_api_key_here
    • Arquivo .env: copie .env.example para .env, depois execute com uv run --env-file .env imdb-server
    • HTTP / Docker: passe -e RAPID_API_KEY_IMDB=... para o contêiner

A chave só é necessária quando uma ferramenta é realmente chamada — o servidor inicia e lista suas ferramentas sem ela.

Ferramentas

Ferramentas de Busca

FerramentaDescriçãoExemplo
search_imdbBusca filmes e programas de TV com várias opções de filtrosearch_imdb(primary_title="Inception")

Ferramentas de ID IMDb

FerramentaDescriçãoExemplo
get_imdb_detailsRecupera informações detalhadas sobre um filme ou programa de TVget_imdb_details(imdb_id="tt1375666")
get_directorsRecupera os diretores de um filmeget_directors(imdb_id="tt1375666")
get_castRecupera o elenco de um filmeget_cast(imdb_id="tt1375666")
get_writersRecupera os roteiristas de um filmeget_writers(imdb_id="tt1375666")

Ferramentas de Configuração

FerramentaDescriçãoExemplo
get_typesObtém todos os tipos de conteúdo disponíveisget_types()
get_genresObtém todos os gêneros disponíveisget_genres()
get_countriesObtém todos os países disponíveisget_countries()
get_languagesObtém todos os idiomas disponíveisget_languages()

Ferramentas de Filmes

Paginadas (5 resultados por página)

FerramentaDescriçãoExemplo
get_top_250_moviesObtém os 250 melhores filmes do IMDbget_top_250_movies(start=0)
get_top_box_office_usObtém os registros de bilheteria dos EUAget_top_box_office_us(start=0)
get_most_popular_moviesObtém os filmes mais popularesget_most_popular_movies(start=0)

Ferramentas de Programas de TV

Paginadas (5 resultados por página)

FerramentaDescriçãoExemplo
get_top_250_tv_showsObtém os 250 melhores programas de TV do IMDbget_top_250_tv_shows(start=0)
get_most_popular_tv_showsObtém os programas de TV mais popularesget_most_popular_tv_shows(start=0)

Ferramentas de Lançamentos Futuros

Paginadas (5 resultados por página)

FerramentaDescriçãoExemplo
get_upcoming_releasesObtém lançamentos futuros de filmes e programas de TV por paísget_upcoming_releases(country_code="US", type="MOVIE", start=0)
get_country_codes_for_upcoming_releasesObtém códigos de país disponíveis para lançamentos futurosget_country_codes_for_upcoming_releases()

Ferramentas de Destaque da Índia

Paginadas (5 resultados por página)

FerramentaDescriçãoExemplo
get_top_rated_malayalam_moviesObtém os 50 melhores filmes em malaialaget_top_rated_malayalam_movies(start=0)
get_upcoming_indian_moviesObtém os filmes indianos futuros mais aguardadosget_upcoming_indian_movies(start=0)
get_trending_tamil_moviesObtém filmes tâmeis em altaget_trending_tamil_movies(start=0)
get_trending_telugu_moviesObtém filmes em telugu em altaget_trending_telugu_movies(start=0)
get_top_rated_tamil_moviesObtém os 50 melhores filmes tâmeisget_top_rated_tamil_movies(start=0)
get_top_rated_telugu_moviesObtém os 50 melhores filmes em teluguget_top_rated_telugu_movies(start=0)
get_top_rated_indian_moviesObtém os 250 melhores filmes indianosget_top_rated_indian_movies(start=0)

Exemplo de Prompt e Resposta

Quais são os 5 filmes de ação que serão lançados em um futuro próximo?

Vou encontrar os próximos filmes de ação para você.

Ferramenta MCP chamada get_upcoming_releases

Agora vou procurar os filmes de ação entre esses lançamentos futuros:

Ferramenta MCP chamada get_upcoming_releases

Com base nos resultados da busca, aqui estão os 5 próximos filmes de ação que serão lançados em um futuro próximo:

  1. A Minecraft Movie (4 de abril de 2025)

    • Gêneros: Ação, Aventura, Comédia
    • Descrição: Quatro desajustados são puxados por um portal para um mundo cúbico de maravilhas e embarcam em uma missão com um artesão especialista para voltar para casa.
  2. Freaky Tales (4 de abril de 2025)

    • Gêneros: Ação, Aventura, Comédia
    • Descrição: Quatro histórias interconectadas ambientadas em Oakland, CA, em 1987, sobre o amor pela música, filmes, pessoas, lugares e memórias.
  3. Wake Up (4 de abril de 2025)

    • Gêneros: Ação, Terror
    • Descrição: Jovens ativistas invadem uma loja de móveis para protestar contra questões ambientais, mas se veem presos com um guarda noturno obcecado por caça.
  4. Warfare (11 de abril de 2025)

    • Gêneros: Ação, Drama, Guerra
    • Descrição: Baseado nas experiências reais do ex-Navy Seal Ray Mendoza durante a Guerra do Iraque.
  5. The Amateur (11 de abril de 2025)

    • Gêneros: Ação, Suspense
    • Descrição: Um criptógrafo da CIA chantageia sua agência para treiná-lo a perseguir terroristas que mataram sua esposa.

Instalação

Este é um servidor MCP autônomo que você executa localmente com sua própria chave RapidAPI. O Smithery não oferece mais hospedagem gerenciada gratuita, portanto não há instância remota compartilhada — clone (ou uvx) o servidor e aponte seu cliente MCP para ele.

Opção 1: Executar com uvx (sem necessidade de clonar)

Se você tiver o uv instalado, adicione isto à configuração do seu cliente MCP (ex.: claude_desktop_config.json):

{
  "mcpServers": {
    "imdb_server": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/uzaysozen/imdb-mcp-server",
        "imdb-server"
      ],
      "env": {
        "RAPID_API_KEY_IMDB": "your_api_key_here"
      }
    }
  }
}

Opção 2: Clonar e executar com uv

  1. Instale o uv:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
  1. Clone este repositório e instale as dependências:
git clone https://github.com/uzaysozen/imdb-mcp-server.git
cd imdb-mcp-server
uv sync
  1. Adicione isto à configuração do seu cliente MCP:
{
  "mcpServers": {
    "imdb_server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/imdb-mcp-server",
        "run",
        "imdb-server"
      ],
      "env": {
        "RAPID_API_KEY_IMDB": "your_api_key_here"
      }
    }
  }
}

Opção 3: Auto-hospedagem via HTTP (Docker)

Para um servidor remoto compartilhado e sempre ativo, execute-o em modo HTTP atrás do seu próprio endpoint HTTPS. Isso é opcional e só é necessário se vários clientes devem acessar uma única instância.

  1. Clone este repositório
git clone https://github.com/uzaysozen/imdb-mcp-server.git
cd imdb-mcp-server
  1. Construa e execute a imagem Docker
docker build -t imdb_server .
docker run -d -p 8081:8081 -e RAPID_API_KEY_IMDB=your_api_key_here --name imdb_server imdb_server

O contêiner executa em modo HTTP na porta 8081, servindo o endpoint MCP em /mcp. Coloque-o atrás de um proxy reverso / plataforma que encerre TLS. Se você quiser listá-lo no Smithery, registre sua URL pública https://.../mcp como um servidor externo em smithery.ai/new.

Iniciando o Servidor

Modo Stdio (Padrão para desenvolvimento local)

# Using uv (recommended)
uv run imdb-server

# Or directly with Python module
python -m imdb_mcp_server

Modo HTTP (para auto-hospedagem)

# Using uv
TRANSPORT=http uv run imdb-server

# Or with Python module
TRANSPORT=http python -m imdb_mcp_server

# With custom port
TRANSPORT=http PORT=8081 uv run imdb-server

Após adicionar sua configuração escolhida, reinicie seu cliente MCP (ex.: Claude Desktop) para carregar o servidor IMDb. Você poderá então usar todas as ferramentas de dados de filmes e programas de TV em suas conversas.

Detalhes Técnicos

O servidor é construído com:

  • Python 3.13+: Runtime Python moderno
  • MCP Python SDK 2.x (mcp.server.mcpserver.MCPServer): transportes stdio e HTTP Streamable
  • API do IMDb via RapidAPI: Fonte primária de dados
  • Requests: Biblioteca de comunicação com API
  • uv: Gerenciador e executor rápido de pacotes Python
  • Sistema de cache em memória personalizado: Cache de respostas otimizado com evicção LRU
  • Paginação inteligente: Limita os resultados a 5 itens por solicitação, otimizando para consumo por agentes de IA

Modos de Transporte

O servidor suporta dois modos de transporte, selecionados pela variável de ambiente TRANSPORT:

  1. Modo Stdio (TRANSPORT não definido — o padrão): comunicação MCP via entrada/saída padrão

    • Usado para clientes MCP locais (Claude Desktop, Claude Code, Cursor, etc.)
    • A chave de API vem da variável de ambiente RAPID_API_KEY_IMDB
  2. Modo HTTP (TRANSPORT=http): transporte HTTP Streamable

    • Para auto-hospedar uma instância compartilhada (Docker, ou qualquer plataforma que execute o contêiner)
    • Serve o endpoint MCP em /mcp
    • Single-tenant: a chave de API vem de RAPID_API_KEY_IMDB no servidor
    • Vincula 0.0.0.0:8081 por padrão (variáveis de ambiente HOST / PORT); execute-o atrás de um proxy que encerre TLS

Sistema de Paginação

Todas as ferramentas de recuperação de dados implementam paginação para melhorar o desempenho dos agentes de IA:

Propósito

  • Respostas Otimizadas para IA: Limita cada resposta a 5 itens, evitando sobrecarga em agentes de IA que processam os dados
  • Resultados Focados: Ajuda os agentes a fornecer informações mais relevantes e concisas aos usuários
  • Processamento Melhorado: Reduz a carga cognitiva nos agentes de IA ao analisar dados de filmes e programas de TV

Implementação

  • Cada endpoint paginado aceita um parâmetro start (padrão: 0)
  • Os resultados incluem metadados de navegação (totalCount, hasMore, nextStart)
  • Tamanho de página consistente de 5 itens em todos os endpoints de coleção
  • Exemplo de solicitação com paginação: get_top_250_movies(start=5) retorna os itens 6-10

Benefícios

  • Melhores Respostas do Agente: Evita que agentes de IA recebam muitos dados de uma vez
  • Informações Gerenciáveis: Cria blocos de dados digeríveis que os agentes podem processar de forma eficaz
  • Acesso Sequencial: Permite exploração estruturada de grandes conjuntos de dados através de múltiplas chamadas de ferramentas

Sistema de Cache

O servidor implementa um sistema de cache eficiente para melhorar o desempenho e reduzir chamadas de API:

Recursos

  • Cache em Memória: Armazena respostas de API em memória para recuperação rápida
  • Expiração e Tamanho Configuráveis: As entradas de cache expiram após um período personalizável (padrão: 10 minutos) e têm um tamanho padrão de 100 chaves de cache
  • Limpeza Automática de Cache: Remove periodicamente (padrão: 5 minutos) entradas expiradas para gerenciar o uso de memória usando um thread em segundo plano
  • Chaves de Cache: Geradas com base na URL e nos parâmetros de consulta para garantir exclusividade

Benefícios

  • Uso Reduzido de API: Ajuda a permanecer dentro dos limites de taxa da API reutilizando respostas
  • Tempos de Resposta Mais Rápidos: Elimina latência de rede para consultas em cache
  • Eficiência de Custo: Minimiza o número de chamadas de API, especialmente para consultas populares ou repetidas

Configuração

O tamanho do cache e o tempo de expiração podem ser ajustados em src/imdb_mcp_server/cache.py:

# Defaults: 600 seconds (10 minutes) and 100 cache keys
# You can customize by modifying the ResponseCache instantiation:
response_cache = ResponseCache(max_size=100, expiry_seconds=600)

# Example with custom values:
# response_cache = ResponseCache(max_size=50, expiry_seconds=120)

Limitações

  • Limites de taxa da API se aplicam de acordo com sua assinatura do RapidAPI
  • Algumas informações detalhadas podem exigir chamadas adicionais à API
  • Os resultados da pesquisa podem ser limitados a um certo número de itens por solicitação
  • O cache em memória é perdido quando o servidor reinicia
  • Todas as respostas paginadas retornam no máximo 5 itens por página

Solução de Problemas

ProblemaSolução
Chave da API não reconhecidaCertifique-se de que RAPID_API_KEY_IMDB esteja definida — no bloco env da configuração do seu cliente MCP, no seu shell, .env ou -e no contêiner Docker
ModuleNotFoundError: No module named 'mcp.server.fastmcp'Você está em um checkout antigo com mcp 2.x instalado. Puxe o mais recente (este servidor tem como alvo mcp 2.x / MCPServer) e execute uv sync
HTTP 401 / HTTP 403 da API IMDbSua chave RapidAPI é inválida ou não está inscrita na API IMDb. (Re)inscreva-se na API IMDb no RapidAPI e copie a nova chave
HTTP 404 da API IMDbA assinatura do RapidAPI está inativa ou o endpoint upstream mudou. Verifique o status da assinatura no seu painel do RapidAPI
O antigo comando npx @smithery/cli install falhaA Smithery encerrou a hospedagem gerenciada gratuita (março de 2026), então não há instância remota compartilhada. Instale localmente — veja Instalação
Limite de taxa excedidoVerifique o nível e os limites da sua assinatura RapidAPI no Painel do RapidAPI
Erros de tempo limiteO servidor tem um tempo limite de 30 segundos; para solicitações grandes, tente limitar os parâmetros ou usar paginação
Resultados vaziosTente termos de busca mais amplos ou verifique se o conteúdo existe no banco de dados do IMDb
Alto uso de memóriaSe estiver executando por períodos prolongados com muitas consultas exclusivas, reinicie o servidor ocasionalmente para limpar o cache
Porta já em usoAltere a porta usando a variável de ambiente PORT (somente modo HTTP): TRANSPORT=http PORT=8082 uv run imdb-server
Erros de importaçãoCertifique-se de que todas as dependências estejam instaladas: uv sync (ou pip install "mcp[cli]>=2.1,<3" requests)
Conexão recusada (Docker)Certifique-se de que o contêiner esteja em execução: docker ps e verifique os logs: docker logs imdb_server

Licença

Este servidor MCP está disponível sob a Licença MIT.