Taboola API MCP Server
A flexible MCP (Model Context Protocol) server with fetchRecommendations functionality. Supports both local (STDIO) and remote (HTTP) deployment modes.
Setup
- Install dependencies:
pip install -r requirements.txt
- Activate virtual environment (if using one):
source .venv/bin/activate
Deployment Options
Local Mode (STDIO Transport)
Perfect for local development and testing with MCP Inspector:
# Default mode - runs locally with STDIO transport
python server.py
# Explicitly specify local mode
python server.py --mode local
Remote Mode (HTTP Server)
Deploy as a remote HTTP server accessible over the network:
# Run as HTTP server on default port 8000
python server.py --mode remote
# Specify custom host and port
python server.py --mode remote --host 0.0.0.0 --port 3000
# Using environment variables
export MCP_MODE=remote
export MCP_HOST=0.0.0.0
export MCP_PORT=8000
python server.py
Configuration Options
Command Line Arguments
--mode: Server mode (localorremote) - default:local--host: Host to bind to in remote mode - default:0.0.0.0--port: Port to bind to in remote mode - default:8000
Environment Variables
MCP_MODE: Server mode (localorremote)MCP_HOST: Host to bind to in remote modeMCP_PORT: Port to bind to in remote mode
Environment variables override command line arguments.
Functions
fetchRecommendations
Fetches recommendations for a given publisher using their API key via Taboola API.
Parameters:
publisher_name(str): The name of the publisherapi_key(str): The API key for authentication
Returns:
str: JSON recommendations data from Taboola API
Usage Examples
Local Development with MCP Inspector
# Start server locally
python server.py
# In another terminal, run MCP Inspector
npx @modelcontextprotocol/inspector python server.py
Remote Deployment
# Deploy as remote server
python server.py --mode remote --port 8000
# Server will be available at: http://your-server-ip:8000
# Connect using HTTP transport with MCP clients
Production Deployment
For production, consider using environment variables:
export MCP_MODE=remote
export MCP_HOST=0.0.0.0
export MCP_PORT=8000
python server.py
Or with a process manager like PM2:
pm2 start server.py --name "taboola-mcp" -- --mode remote --port 8000
Testing
Use the provided test script to verify functionality:
# Edit test_function.py with your credentials
python test_function.py
Cloud Deployment
Render Deployment
Deploy easily on Render cloud platform:
Option 1: Using Render.yaml (Recommended)
-
Push your code to GitHub/GitLab
-
Connect to Render:
- Go to Render Dashboard
- Click "New" > "Blueprint"
- Connect your repository
- The
render.yamlfile will be automatically detected
-
Deploy:
- Render will automatically build and deploy your MCP server
- Your server will be available at:
https://your-app-name.onrender.com
Option 2: Manual Render Setup
-
Create a new Web Service on Render
-
Connect your repository
-
Configure the service:
- Build Command:
pip install -r requirements.txt - Start Command:
python server.py --mode remote --host 0.0.0.0 --port $PORT - Environment Variables:
MCP_MODE=remoteMCP_HOST=0.0.0.0PYTHON_VERSION=3.13.0
- Build Command:
-
Deploy and get your URL
Docker Deployment
For any Docker-compatible platform:
# Build and run locally
docker build -t taboola-mcp-server .
docker run -p 8000:8000 taboola-mcp-server
# Or use docker-compose
docker-compose up -d
Other Cloud Platforms
The server is compatible with:
- Heroku: Use
Procfilewithweb: python server.py --mode remote --port $PORT - Railway: Deploy directly from GitHub with automatic detection
- DigitalOcean App Platform: Use the provided
docker-compose.yml - AWS/GCP/Azure: Deploy using Docker or direct Python deployment
Security Notes
- In remote mode, the server binds to
0.0.0.0by default (all interfaces) - Consider using a reverse proxy (nginx, Apache) for production deployments
- Ensure proper firewall rules are in place for remote access
- API keys are passed as parameters - ensure secure transmission (HTTPS recommended)
- Cloud platforms like Render automatically provide HTTPS endpoints
