Skip to main content
Glama

Enhanced POE MCP Server for Warp.dev

A production-ready Model Context Protocol (MCP) server that integrates POE (Poe.com API) with Warp.dev terminal, enabling AI-powered terminal assistance with context-aware tooling, automated workflows, and real-time streaming capabilities.

šŸš€ Features

Core Capabilities

  • Multi-Model Support: Access GPT-4o, Claude 3 Opus/Sonnet, Gemini Pro, Perplexity, and O3 models

  • Warp Terminal Integration: Deep integration with Warp's context extraction and action execution

  • OpenAI SDK Compatibility: Drop-in replacement for OpenAI API with POE backend

  • Production-Ready: Rate limiting, health checks, metrics, and graceful shutdown

Advanced Features

  • Context-Aware Queries: Automatically extracts terminal output, selections, CWD, git state

  • Real-Time Streaming: Server-Sent Events (SSE) with delta content streaming

  • Command Execution: Safe execution of terminal commands with validation

  • File Operations: Create and modify files directly from model responses

  • Session Management: Maintain conversation context across multiple queries

  • Rate Limiting: Exponential backoff with 500 RPM limit and request queuing

  • Health Monitoring: Built-in health checks and Prometheus-style metrics

Related MCP server: MCP Server for Replicate

šŸ“‹ Prerequisites

  • Operating System: Linux (tested on Ubuntu, Zorin OS), macOS, or WSL2 on Windows

  • Python: Version 3.8 or higher

  • Warp Terminal: Download from warp.dev

  • POE API Key: Get yours from poe.com/api_key

šŸ”§ Installation

Step 1: Clone and Setup

# Clone the repository git clone https://github.com/Anansitrading/enhanced-poe-mcp.git cd enhanced-poe-mcp # Quick installation with script chmod +x install.sh ./install.sh # Or manual setup python3 -m venv venv source venv/bin/activate # On Linux/macOS pip install -e .

Step 2: Configure Environment

Create a .env file with your credentials:

# Required POE_API_KEY=your_poe_api_key_here # Optional (with defaults) OPENAI_API_KEY=your_openai_key # For OpenAI SDK compatibility DEBUG_MODE=false USE_CLAUDE_COMPATIBLE=true MAX_FILE_SIZE_MB=10 SESSION_EXPIRY_MINUTES=60 RATE_LIMIT_RPM=500 MAX_RETRIES=3 STREAM_BUFFER_SIZE=64 METRICS_ENABLED=true HEALTH_CHECK_INTERVAL=30

Step 3: Configure in Warp Terminal

Option A: Local Installation (Can cause stability issues)

  1. Open Warp MCP Settings:

    • Navigate to: Settings → AI → Manage MCP servers

    • Or press Ctrl+P (Linux/Windows) or Cmd+P (macOS) and search for "Open MCP Servers"

  2. Add the POE MCP Server: Click the + Add button and paste this configuration:

    { "enhanced-poe-mcp": { "command": "python3", "args": ["/home/david/Projects/Kijko/MVP/MVP_Kijko/enhanced-poe-mcp/poe_server_phase2.py"], "env": { "POE_API_KEY": "your_poe_api_key_here", "PYTHONUNBUFFERED": "1", "DEBUG_MODE": "false", "RATE_LIMIT_RPM": "500" } } }

    Important: Replace /home/david/Projects/Kijko/MVP/MVP_Kijko/enhanced-poe-mcp with your actual installation path.

  3. Save and Start:

    • Click Save to add the configuration

    • Click Start next to your server entry

    • The server status should show as "Running"

Warp supports remote MCP servers! Host your MCP server remotely to avoid local stability issues.

  1. Deploy to Railway.app (Best free option):

    # Prepare for deployment cd enhanced-poe-mcp echo "web: python poe_server_phase2.py" > Procfile git add . git commit -m "Add Procfile for Railway" git push origin main
  2. Configure Railway:

    • Sign up at railway.app

    • Create new project → Deploy from GitHub

    • Add environment variables in Railway dashboard:

      • POE_API_KEY

      • PORT=8000

      • Any other config variables

  3. Configure Warp for Remote MCP:

    { "enhanced-poe-mcp": { "url": "https://your-app.up.railway.app/mcp/stream" } }

Alternative Hosting Options:

  • Render.com: Good free tier, easy deployment

  • Google Cloud Run: Generous free tier, requires Docker

  • Fly.io: Global deployment, more complex setup

  • Vercel: āŒ NOT COMPATIBLE - Cannot handle persistent connections, SSE streaming, or long-running tasks

šŸŽ® Usage in Warp Terminal

Specifying POE Models

POE is a marketplace with hundreds of LLMs. You must specify which model to use:

# Using Claude 3.5 Sonnet @poe --model claude-3-5-sonnet "Explain quantum computing" # Using GPT-4o @poe --model gpt-4o "Write a Python function" # Using Gemini Pro @poe --model google-gemini-pro "Analyze this data"

Popular Model Identifiers:

Model

Bot Identifier

Claude 3.5 Sonnet

claude-3-5-sonnet

Claude 3 Opus

claude-3-opus-20240229

GPT-4 Turbo

gpt-4-turbo

GPT-4o

gpt-4o

Gemini Pro

google-gemini-pro

Llama 3 (70B)

llama-3-70b

Mistral Large

mistral-large

Perplexity

perplexity-online

Custom Bots

Use the handle from poe.com/[bot-name]

Basic POE Query

# Ask a simple question with specific model @poe --model claude-3-5-sonnet What is the fastest way to create a Python virtual environment? # Expected output: # Claude will respond with: "Use `python -m venv <directory>` to create a virtual environment. # Activate it with `source <directory>/bin/activate` on Linux/macOS..."

Query with File Attachment

# Review a configuration file with Claude 3.5 @poe --model claude-3-5-sonnet Review this Dockerfile for security issues [attach:./Dockerfile] # Expected output: # Claude analyzes the file and provides security recommendations: # "Found potential issues: 1) Running as root user, 2) No health check defined..."

Context-Aware Query

# Get help with a recent error (POE sees your terminal output) @poe --model gpt-4o Why did my git push fail? # Expected output: # GPT-4o analyzes recent terminal output and responds: # "The push failed because the remote has changes not in your local branch. # Run `git pull --rebase` first..."

Execute Terminal Commands

# Let POE execute safe commands using Gemini @poe --model google-gemini-pro Find all Python files modified today and show their sizes # Expected output: # Gemini generates and executes: find . -name "*.py" -mtime 0 -ls # Shows results directly in terminal

Stream Long Responses

# Get streaming output for complex tasks with Claude Opus @poe --model claude-3-opus-20240229 --stream Generate a complete FastAPI application with authentication # Expected output: # Claude Opus streams the code generation in real-time, showing each part as it's created

Session Management

# Clear conversation context @poe clear session # Expected output: # "Session cleared. Starting fresh conversation."

List Available Models

# See all available AI models @poe list models # Expected output: # Available models: # - claude-3-opus: Advanced reasoning and analysis # - gpt-4o: Latest GPT-4 variant # - gemini-pro: Google's advanced model # - perplexity: Web-aware responses

Health Check

# Check server health @poe health check # Expected output: # Server Status: Healthy āœ“ # Uptime: 2h 34m # Active Sessions: 3 # Request Rate: 45 RPM

šŸ› ļø Advanced Configuration

Server Variants

The project includes multiple server implementations for different use cases:

Server File

Description

Use Case

poe_server.py

Basic MCP server

Simple POE proxy

enhanced_poe_server.py

Enhanced with Warp actions

Terminal automation

poe_server_v2.py

SDK-compatible

OpenAI SDK replacement

poe_server_phase2.py

Production server

Full features + monitoring

Running Different Modes

# Basic server python poe_server.py # Enhanced server with Warp integration python enhanced_poe_server.py # Production server (recommended) python poe_server_phase2.py # SSE mode for web clients python run_sse_server.py [port]

Environment Variables Reference

Variable

Description

Default

Required

POE_API_KEY

Your POE API key

-

āœ…

OPENAI_API_KEY

OpenAI API key (for SDK mode)

-

āŒ

DEBUG_MODE

Enable verbose logging

false

āŒ

USE_CLAUDE_COMPATIBLE

Claude thinking protocol

true

āŒ

MAX_FILE_SIZE_MB

Max file upload size

10

āŒ

SESSION_EXPIRY_MINUTES

Session lifetime

60

āŒ

RATE_LIMIT_RPM

Requests per minute limit

500

āŒ

MAX_RETRIES

Retry attempts for failures

3

āŒ

STREAM_BUFFER_SIZE

SSE buffer size (KB)

64

āŒ

METRICS_ENABLED

Enable metrics collection

true

āŒ

HEALTH_CHECK_INTERVAL

Health check interval (seconds)

30

āŒ

šŸ“Š Monitoring & Metrics

Health Check Endpoint

# Check server health programmatically import requests health = requests.get("http://localhost:8000/health") print(health.json()) # Output: {"status": "healthy", "uptime": 3600, "active_sessions": 5}

Metrics Endpoint

# Get performance metrics metrics = requests.get("http://localhost:8000/metrics") print(metrics.json()) # Output: {"total_requests": 1234, "error_rate": 0.02, "avg_latency_ms": 250}

šŸ› Troubleshooting

MCP Server Won't Start in Warp

Issue: Server fails to start or shows as "Error" in Warp MCP panel

Solutions:

  1. Verify Python path: which python3 and update configuration

  2. Check file permissions: chmod +x poe_server_phase2.py

  3. Test manually: cd /path/to/server && python3 poe_server_phase2.py

  4. Check logs: Look for errors in terminal output

Authentication Errors

Issue: "Invalid API key" or "Authentication failed"

Solutions:

  1. Verify POE_API_KEY in .env file

  2. Ensure key is added to Warp MCP config environment

  3. Test key at poe.com/api_key

Rate Limiting Issues

Issue: "Rate limit exceeded" errors

Solutions:

  1. Increase RATE_LIMIT_RPM in configuration

  2. Enable request queuing (automatic in Phase 2 server)

  3. Implement exponential backoff in client code

Context Not Working

Issue: POE doesn't see terminal output or context

Solutions:

  1. Use poe_server_phase2.py (not basic server)

  2. Ensure Warp context permissions are enabled

  3. Update to latest Warp version

Linux-Specific Issues

Issue: Permission denied or module not found

Solutions:

# Fix permissions chmod -R 755 /path/to/enhanced-poe-mcp chown -R $USER:$USER /path/to/enhanced-poe-mcp # Install missing Python packages pip install -r requirements.txt # Use virtual environment source venv/bin/activate

šŸš€ Remote Deployment Guide (Railway)

Why Host Remotely?

  • Avoids local stability issues

  • Always available, even when your machine is off

  • Centralized configuration management

  • Better for team collaboration

Step-by-Step Railway Deployment

  1. Prepare Your Project:

    cd enhanced-poe-mcp # Create Procfile for Railway echo 'web: python poe_server_phase2.py' > Procfile # Ensure requirements.txt is complete pip freeze > requirements.txt # Create runtime.txt for Python version echo "python-3.11.x" > runtime.txt # Commit changes git add . git commit -m "Add Railway deployment files" git push origin main
  2. Set Up Railway:

    • Sign up at railway.app (free with GitHub)

    • Click "New Project" → "Deploy from GitHub repo"

    • Select your enhanced-poe-mcp repository

    • Railway will auto-detect Python and begin deployment

  3. Configure Environment Variables: In Railway dashboard, go to Variables tab and add:

    POE_API_KEY=your_poe_api_key_here PORT=8000 DEBUG_MODE=false RATE_LIMIT_RPM=500 PYTHONUNBUFFERED=1
  4. Get Your Server URL:

    • Go to Settings tab in Railway

    • Under Domains, click "Generate Domain"

    • Copy your URL (e.g., https://your-app.up.railway.app)

  5. Configure Warp with Remote URL:

    { "enhanced-poe-mcp": { "url": "https://your-app.up.railway.app/mcp/stream" } }
  6. Test the Connection:

    # Test your remote server curl https://your-app.up.railway.app/health # Should return: # {"status": "healthy", "version": "2.0.0"}

Monitoring Your Remote Server

  • Logs: View in Railway dashboard under "Deployments"

  • Metrics: Check /metrics endpoint

  • Health: Monitor /health endpoint

  • Usage: Railway shows resource consumption in dashboard

šŸŒ—ļø Architecture

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” │ Warp Terminal │ ◄──────►│ POE MCP Server │ │ │ MCP ā”œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¤ │ - User Input │ Proto │ • Request Handler │ │ - Context │ │ • Rate Limiter │ │ - Actions │ │ • Session Manager │ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ │ • Warp Context Handler │ │ • Streaming Engine │ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ │ ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” │ POE API │ │ │ │ • Claude, GPT-4o │ │ • Gemini, Perplexity │ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

🧪 Testing

# Run all tests python run_tests.py # Run with verbose output python run_tests.py --verbose # Test specific components python -m pytest tests/test_poe_server.py -v python -m pytest tests/test_rate_limiter.py -v python -m pytest tests/test_streaming.py -v

šŸ“š API Documentation

MCP Tools Reference

Tool

Description

Parameters

ask_poe

Basic POE query

prompt

,

model

,

session_id

ask_with_attachment

Query with file

prompt

,

model

,

file_path

ask_poe_with_warp_context

Context-aware query

prompt

,

model

,

warp_context

stream_poe_to_warp

Streaming response

prompt

,

model

,

stream=true

execute_warp_action

Run terminal command

action_type

,

content

,

validate

clear_session

Reset conversation

session_id

list_available_models

Get model list

-

health_check

Server health

-

get_metrics

Performance stats

-

šŸ¤ Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Setup

# Clone and setup development environment git clone https://github.com/Anansitrading/enhanced-poe-mcp.git cd enhanced-poe-mcp python3 -m venv venv source venv/bin/activate pip install -e ".[dev]" # Run in development mode DEBUG_MODE=true python poe_server_phase2.py

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

šŸ™ Acknowledgments

  • Poe.com for the API access

  • Warp.dev for the amazing terminal

  • FastMCP for the MCP framework

  • The open-source community for continuous support

šŸ“ž Support


Note: This project is not affiliated with Poe.com or Warp.dev. It's an independent integration tool.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/Anansitrading/poe-proxy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server