Red Bee MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Red Bee MCP Serversearch for comedy movies released this year"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Red Bee MCP Server
Model Context Protocol (MCP) Server for Red Bee Media OTT Platform
Connect to Red Bee Media streaming services from MCP-compatible clients like Claude Desktop, or integrate via HTTP/SSE for web applications. This server provides 65 tools aligned with the Exposure API for authentication, catalog search, recommendations, user management, purchases, and system operations.
๐ New: HTTP/SSE Mode
Version 1.5.0 aligns tools with the current Exposure API and supports multiple operating modes:
Stdio Mode (original): For local AI agents like Claude Desktop
HTTP Mode: REST API with JSON-RPC for web integration
SSE Mode: Server-Sent Events for real-time communication
Both Modes: Run stdio and HTTP simultaneously
Related MCP server: Bunny.net MCP Server
๐ Quick Start
Option 1: Using uvx (Recommended)
# Test the server
uvx redbee-mcp --help
# Stdio mode (original)
uvx redbee-mcp --stdio --customer YOUR_CUSTOMER --business-unit YOUR_BU
# HTTP mode (new)
uvx redbee-mcp --http --customer YOUR_CUSTOMER --business-unit YOUR_BU
# Both modes simultaneously
uvx redbee-mcp --both --customer YOUR_CUSTOMER --business-unit YOUR_BUOption 2: Using pip
pip install redbee-mcp
# Same usage as uvx, but with redbee-mcp command
redbee-mcp --http --customer YOUR_CUSTOMER --business-unit YOUR_BU๐ Configuration
For Claude Desktop (Stdio Mode)
Add to your Claude Desktop MCP configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"redbee-mcp": {
"command": "uvx",
"args": ["redbee-mcp", "--stdio"],
"env": {
"REDBEE_CUSTOMER": "CUSTOMER_NAME",
"REDBEE_BUSINESS_UNIT": "BUSINESS_UNIT_NAME"
}
}
}
}For Web Applications (HTTP Mode)
Start the HTTP server:
redbee-mcp --http --customer YOUR_CUSTOMER --business-unit YOUR_BUThe server will be available at http://localhost:8000 with these endpoints:
Method | URL | Description |
GET |
| API information |
GET |
| Server health check |
POST |
| JSON-RPC MCP requests |
GET |
| Server-Sent Events stream |
๐ HTTP/SSE API Usage
Example HTTP Requests
Health Check
curl http://localhost:8000/healthList Available Tools
curl -X POST http://localhost:8000/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": "1"
}'Search Content
curl -X POST http://localhost:8000/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search_content_v2",
"arguments": {
"query": "french films",
"types": "MOVIE",
"pageSize": 5
}
},
"id": "search-1"
}'Web Integration Example
class RedBeeMCPClient {
constructor(baseUrl = 'http://localhost:8000') {
this.baseUrl = baseUrl;
}
async callTool(toolName, arguments) {
const response = await fetch(this.baseUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'tools/call',
params: { name: toolName, arguments },
id: Date.now().toString()
})
});
return response.json();
}
async searchContent(query, options = {}) {
return this.callTool('search_content_v2', {
query,
types: options.types || 'MOVIE,TV_SHOW',
pageSize: options.pageSize || 10,
...options
});
}
}
// Usage
const mcp = new RedBeeMCPClient();
const results = await mcp.searchContent('comedy movies');Server-Sent Events
Connect to real-time event stream:
const eventSource = new EventSource('http://localhost:8000/sse');
eventSource.onmessage = function(event) {
const data = JSON.parse(event.data);
console.log('Event received:', data.type);
if (data.type === 'welcome') {
console.log('Connected with client ID:', data.client_id);
} else if (data.type === 'tools') {
console.log('Available tools:', data.tools.length);
}
};๐ง Environment Variables
Variable | Required | Description | Example |
| โ Yes | Red Bee customer identifier |
|
| โ Yes | Red Bee business unit |
|
| โ No | API base URL |
|
| โ No | Username for authentication |
|
| โ No | Password for authentication |
|
| โ No | Existing session token |
|
| โ No | Device identifier |
|
| โ No | Configuration ID |
|
| โ No | Request timeout in seconds |
|
Available Tools
Aligned with Exposure API 1.0.0 (OAS 3.1).
Authentication
login_user- Login viaPOST /v3/.../auth/logincreate_anonymous_session- Anonymous session viaPOST /v2/.../auth/anonymousvalidate_session_token- Validate session viaGET /v2/.../auth/sessionlogout_user- Logout viaDELETE /v2/.../auth/loginrequest_password_reset- Send a reset email viaGET /v2/.../user/password/reset/{username}
Content
get_public_asset_details- Public asset by ID or slugsearch_content_v2- Free-text search including descriptionsget_asset_details- Asset details (anonymous session if needed)get_playback_info- Play entitlement viaGET /v2/.../entitlement/{assetId}/playentitle_asset- Entitle the user to an assetsearch_assets_autocomplete- Title autocompleteget_epg_for_channel- EPG for one channel (slugs supported)get_epg_all_channels- EPG for all channelsget_episodes_for_season- Season by ID or slugget_season_episodes- Episodes of season N of a seriesget_assets_by_tag- Unique tags referenced by assetslist_tags/get_tag- Tag cataloglist_assets- Main catalog listingsearch_multi_v3- Prefix search on assets and tagsget_asset_collection_entries- Collection entriesget_asset_thumbnail- Thumbnail URL (307 redirect)get_seasons_for_series- Seasons of a TV seriesget_next_episode/get_previous_episode- Adjacent episodes
Discovery
get_watch_next- Watch-next list (works without login)get_user_recommendations- Personalized recommendationsget_continue_watching- Continue-watching railget_last_viewed_offset- Playback bookmarksget_continue_tvshow- Episode in progress for a series
User Management
signup_user- Create account (emailAddressbecomes username)change_user_password/change_user_emailget_user_details/update_user_detailsget_user_profiles/add_user_profile/select_user_profileupdate_user_profile/delete_user_profileget_user_preferences/set_user_preferencesget_preference_list/add_asset_to_list/remove_asset_from_list- favorites / watchlists
Purchases
get_account_purchases/get_account_transactions/get_active_purchasesget_offerings- Offerings for a country (IP-detected if omitted)initialize_purchase- Payment types and discounted price (experimental)purchase_product_offering/cancel_purchase_subscriptionget_stored_payment_methods/add_payment_method/delete_payment_methodget_account_products- Entitled vs not-entitled products
System
get_system_config-GET /v2/.../system/configget_system_time-GET /v2/timeget_user_location-GET /v2/locationget_active_channels/get_channel_onnow- Live channel statusget_user_devices/delete_user_deviceget_client_config- Whitelabel pages and componentsget_document- Privacy policy, terms, consent documents
๐งช Testing
Test HTTP Server
# Start the server
redbee-mcp --http --customer DEMO --business-unit DEMO
# In another terminal, run the test script
python example_usage.pyTest Stdio Mode
# Using uvx
REDBEE_CUSTOMER=CUSTOMER_NAME REDBEE_BUSINESS_UNIT=BUSINESS_UNIT_NAME uvx redbee-mcp --stdio
# Using pip installation
REDBEE_CUSTOMER=CUSTOMER_NAME REDBEE_BUSINESS_UNIT=BUSINESS_UNIT_NAME redbee-mcp --stdioTest MCP Protocol Manually
# Initialize and list tools
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {"roots": {"listChanged": true}}, "clientInfo": {"name": "test", "version": "1.0.0"}}}
{"jsonrpc": "2.0", "method": "notifications/initialized"}
{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}' | uvx redbee-mcp --stdio๐๏ธ Architecture
Multi-Mode Design
The server is architected with clean separation of concerns:
McpHandler: Core business logic shared between all modes
Stdio Server: Traditional MCP stdio interface for AI agents
HTTP Server: FastAPI-based REST/SSE interface for web apps
CLI: Multi-mode command line interface
File Structure
src/redbee_mcp/
โโโ handler.py # Core business logic
โโโ server.py # Stdio MCP server
โโโ http_server.py # HTTP/SSE server
โโโ cli.py # Multi-mode CLI
โโโ models.py # Data models
โโโ tools/ # Tool modules
โโโ _common.py
โโโ auth.py
โโโ content.py
โโโ discovery.py
โโโ purchases.py
โโโ system.py
โโโ user_management.py๐ Usage Examples
Search for French Movies (Stdio Mode)
Ask your AI assistant:
"Search for French documentaries about nature"
Search for Content (HTTP Mode)
const mcp = new RedBeeMCPClient();
const results = await mcp.searchContent('french documentaries', {
types: 'MOVIE',
locale: ['fr'],
pageSize: 10
});Get TV Show Information
# First search for a TV show
{
"query": "Game of Thrones",
"types": "TV_SHOW"
}
# Then get its seasons
{
"assetId": "tv-show-asset-id"
}User Authentication
{
"username": "user@example.com",
"password": "password123",
"remember_me": true
}๐ Production Deployment
Docker
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -e .
EXPOSE 8000
# HTTP mode
CMD ["redbee-mcp", "--http", "--host", "0.0.0.0", "--port", "8000"]Environment Setup
export REDBEE_CUSTOMER="your-customer"
export REDBEE_BUSINESS_UNIT="your-business-unit"
export REDBEE_EXPOSURE_BASE_URL="https://exposure.api.redbee.live"Systemd Service
# /etc/systemd/system/redbee-mcp-http.service
[Unit]
Description=Red Bee MCP HTTP Server
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/redbee-mcp
Environment=REDBEE_CUSTOMER=your-customer
Environment=REDBEE_BUSINESS_UNIT=your-business-unit
ExecStart=/usr/local/bin/redbee-mcp --http --host 0.0.0.0 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target๐ Security Considerations
CORS Configuration
For production HTTP deployments, configure CORS properly in http_server.py:
self.app.add_middleware(
CORSMiddleware,
allow_origins=["https://yourdomain.com"], # Specify allowed domains
allow_credentials=True,
allow_methods=["GET", "POST"],
allow_headers=["Content-Type"],
)๐ API Reference
The Red Bee MCP Server provides access to Red Bee Media Exposure API through:
MCP Tools: For AI agents and local applications
HTTP/JSON-RPC: For web applications and remote integration
Server-Sent Events: For real-time updates
Each tool includes:
Input validation with required and optional parameters
Comprehensive error handling and messages
Type safety for all inputs and outputs
Detailed documentation and examples
๐ ๏ธ Development
Requirements
Python 3.8+
MCP SDK
pydantic for data validation
FastAPI and uvicorn for HTTP mode
Local Development
# Clone and install
git clone https://github.com/tamsibesson/redbee-mcp
cd redbee-mcp
pip install -e .
# Run in development mode
PYTHONPATH=src python -m redbee_mcp --http --customer TEST --business-unit TEST๐ License
MIT License - see LICENSE file for details.
๐ Support
For issues and questions:
GitHub Issues: https://github.com/tamsibesson/redbee-mcp/issues
Red Bee Media Documentation: https://exposure.api.redbee.live/docs/index.html
๐ Related
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage videos, playlists, analytics, and monetization for OTT streaming services.
Control Android TV from any AI. 38 MCP tools: playback, recap, recommend, smart-home, schedules.
Drive real Android & iOS devices and web browsers from natural language for mobile + web QA. 290+ tools across device control, app management, automation sessions, browser automation, and flow recording / replay. Bearer-auth โ get a token at robotactions.com โ Profile โ API Tokens.
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to interact with commercetools APIs to manage products, categories, orders, carts, and customer data. It provides a comprehensive set of tools for both read-only and full-access operations through secure authentication methods.4MIT
- FlicenseBqualityDmaintenanceEnables interaction with Bunny.net APIs for Stream/Video, Storage, CDN Pull Zones, and DNS services. Provides 35 tools for managing video libraries, files, CDN configurations, and DNS records through Claude.37-
- FlicenseAqualityCmaintenanceEnables searching for movies and TV shows and retrieving streaming availability data across multiple platforms and countries.32-
- AlicenseNot gradedqualityDmaintenanceProvides 34 tools to search and discover movies, TV shows, and people from The Movie Database (TMDB) API.63MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tamsi/redbee-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server