npm package: @striderlabs/mcp-netflix
Description: MCP server for Netflix account management via Playwright browser automation
Author: StrideLabs
Latest version: 1.0.0

# @striderlabs/mcp-netflix

MCP (Model Context Protocol) server for Netflix account management via Playwright browser automation.

## Features

- Login and persistent session management
- Profile management (list, switch profiles)
- Title search with type filtering
- Detailed title information
- My List management (add/remove/view)
- Continue Watching list
- Personalized recommendations
- Account information
- Watch history
- Title rating (thumbs up/down/two thumbs up)

## Installation

```bash
npm install -g @striderlabs/mcp-netflix
npx playwright install chromium
```

## Usage

### MCP Configuration

Add to your Claude Desktop / MCP client configuration:

```json
{
  "mcpServers": {
    "netflix": {
      "command": "striderlabs-mcp-netflix"
    }
  }
}
```

Or with npx:

```json
{
  "mcpServers": {
    "netflix": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-netflix"]
    }
  }
}
```

### Session Persistence

Sessions are stored in `~/.mcp-netflix-session/` and persist across restarts. You only need to log in once.

## Tools

### `netflix_login`
Log in to Netflix with your credentials.

**Parameters:**
- `email` (string, required): Netflix account email
- `password` (string, required): Netflix account password

**Example:**
```json
{
  "email": "user@example.com",
  "password": "yourpassword"
}
```

---

### `netflix_get_profiles`
Get all profiles on the Netflix account.

**Returns:** List of profile names.

---

### `netflix_switch_profile`
Switch to a specific profile.

**Parameters:**
- `profile_name` (string, required): Name of the profile to switch to

**Example:**
```json
{
  "profile_name": "Alice"
}
```

---

### `netflix_search_titles`
Search for movies and TV shows.

**Parameters:**
- `query` (string, required): Search query
- `type` (string, optional): Filter by `"movie"`, `"show"`, or `"all"` (default: `"all"`)

**Example:**
```json
{
  "query": "Stranger Things",
  "type": "show"
}
```

**Returns:** List of titles with IDs.

---

### `netflix_get_title_details`
Get detailed information about a title.

**Parameters:**
- `title_id` (string, required): Netflix title ID (found via search)

**Example:**
```json
{
  "title_id": "80057281"
}
```

**Returns:** Title name, year, rating, genres, synopsis, match score.

---

### `netflix_add_to_list`
Add a title to My List.

**Parameters:**
- `title_id` (string, required): Netflix title ID

---

### `netflix_remove_from_list`
Remove a title from My List.

**Parameters:**
- `title_id` (string, required): Netflix title ID

---

### `netflix_get_my_list`
Get all titles saved in My List.

**Returns:** List of titles with IDs.

---

### `netflix_get_continue_watching`
Get titles you've started but not finished.

**Returns:** List of in-progress titles.

---

### `netflix_get_recommendations`
Get personalized recommendations from the Netflix homepage.

**Returns:** List of recommended titles.

---

### `netflix_get_account_info`
Get account details.

**Returns:** Email, plan type, member since date, next billing date.

---

### `netflix_get_watch_history`
Get viewing history for the current profile.

**Returns:** List of watched titles with dates (up to 50 most recent).

---

### `netflix_rate_title`
Rate a title.

**Parameters:**
- `title_id` (string, required): Netflix title ID
- `rating` (string, required): One of `"thumbs_up"`, `"thumbs_down"`, or `"two_thumbs_up"`

**Example:**
```json
{
  "title_id": "80057281",
  "rating": "two_thumbs_up"
}
```

---

## Development

```bash
# Install dependencies
npm install

# Install Playwright browsers
npx playwright install chromium

# Build
npm run build

# Run directly
node dist/index.js
```

## Notes

- This server uses Playwright to automate a real browser session. Netflix's UI may change, which could affect functionality.
- Sessions are stored locally at `~/.mcp-netflix-session/`.
- The server runs in headless browser mode by default.
- Netflix may require additional verification steps (SMS, email) on first login from a new device.

## License

MIT