Back to all posts

GenieMovie.ai: Building an Intelligent Movie Recommender with MCP

6 min read
GenieMovie.ai: Building an Intelligent Movie Recommender with MCP

Have you ever found yourself endlessly scrolling through Netflix, Prime, or Disney+, unable to pick a movie?
That was me. I realized I wasn’t looking for just a movie — I wanted something that fit my exact mood, style, or vibe. "Something like Inception, but newer," or "a good 90s sci-fi that isn’t too cliché."

That’s how the idea for GenieMovie.ai was born — a conversational movie recommender that remembers what you like and actually talks to you about films.

The Spark

Most recommendation engines are either too rigid (just “top 10 in your country”) or too random. I wanted something more personal — almost like asking a friend who knows my tastes.

When I discovered the Model Context Protocol (MCP), I saw a perfect match: a way to give memory and context to conversations with AI. By connecting it to Claude from Anthropic, I could build an assistant that not only recommends movies, but also remembers your past chats and refines its suggestions over time.

The Stack

I kept the tech lightweight but powerful:

  • Model Context Protocol (MCP) → Persistent conversational context

  • Anthropic Claude → The AI brain for natural chat

  • SQLite → Storing a catalog of 60,000+ movies

  • FastAPI → Backend API to connect everything

  • Pandas → Data wrangling and processing queries

This setup gave me a balance of speed (SQLite + Pandas) and intelligence (MCP + Claude). No bloated infrastructure, just tools that worked well together.

Core Features

GenieMovie.ai focuses on practical functionality:

  • Conversational search → Ask naturally: “Find me a thriller directed by Nolan in the 2000s.”

  • Contextual memory → It remembers your previous chats thanks to MCP.

  • Complex queries → Genre + year + rating + actors combined in one request.

  • Personalized explanations* → Each suggestion comes with a reason tied to your preferences.

  • Guided discovery → If you’re clueless, it asks questions to help narrow down what you’d like.

Inside the Code

Here’s a peek into the engine that powers the recommendations. The movie_server.py file sets up an MCP server with two main tools:

🔎 search_movies

Lets users look up titles, actors, directors, or genres with simple text search.

@mcp.tool()
def search_movies(query: str) -> str:
    """Search for movies by title, actor, director, or genre"""
    # SQL query with LIKE for fuzzy matching
    cursor.execute("""
        SELECT * FROM movies
        WHERE title LIKE ? OR actors LIKE ? OR director LIKE ? OR genre LIKE ?
        LIMIT 10
    """, (f'%{query}%', f'%{query}%', f'%{query}%', f'%{query}%'))

🎯 recommend_movies

Delivers personalized recommendations with filters for genre, year, and rating.

@mcp.tool()
def recommend_movies(genre: str = None, year_from: int = None, year_to: int = None, min_rating: float = None) -> str:
    """Recommend movies based on genre, year range, and minimum rating"""
    query = "SELECT * FROM movies WHERE 1=1"
    if genre: query += " AND genre LIKE ?"
    if year_from: query += " AND year >= ?"
    if year_to: query += " AND year <= ?"
    if min_rating: query += " AND rating >= ?"
    query += " ORDER BY rating DESC LIMIT 10"

These tools make GenieMovie.ai more than a static recommender — it’s interactive, dynamic, and contextual.

Why It Matters

I see GenieMovie.ai as more than a side project. It’s a showcase of:

  • How contextual AI can make recommendations more human-like

  • How lightweight databases like SQLite can power surprisingly large datasets

  • How conversation is a better interface than endless filters and drop-downs

What’s Next

The roadmap for GenieMovie.ai includes:

  • A polished frontend with React or Next.js

  • User accounts to save watchlists and preferences

  • Multi-modal discovery (trailers, posters, ratings sources)

  • More advanced AI filtering (themes, moods, and even pacing)

But even in its current prototype stage, GenieMovie.ai already scratches the itch that started it all — helping me escape the endless scroll and actually enjoy movie nights.


Final thought: Sometimes the best projects come from scratching your own itch. GenieMovie.ai started as my way of finding better movie nights — and ended up being a playground for experimenting with AI, MCP, and databases.

Python FastAPI SQLite AI Side Project Anthropic MCP