Exposes Prometheus-compatible metrics for monitoring HTTP requests, tool execution duration, API calls, and server performance statistics.
Provides serverless deployment capabilities with continuous integration, allowing the MCP server to be deployed and hosted on Vercel's platform.
Poke MCP Production Server
A production-ready Pokémon MCP (Model Context Protocol) server with enterprise features:
✅ FastMCP with HTTP Transport - RESTful API access to MCP tools
🔒 Authentication - API key-based security
📈 Monitoring - Prometheus metrics and health checks
📝 Structured Logging - JSON-formatted logs with structlog
⚡ Rate Limiting - Protect against abuse
🚀 Vercel Deployment - Serverless deployment with continuous integration
🔐 SSH Tunneling - Secure remote access configuration
Features
MCP Tools
get_pokemon_info - Comprehensive Pokémon information
Base stats, types, abilities (with descriptions)
Moves with effects (first 10)
Full evolution chain
simulate_battle - Realistic Pokémon battle simulation
Core battle mechanics (type effectiveness, status effects)
Turn-based combat with detailed battle log
Winner determination
Production Features
Authentication: Bearer token API key authentication
Rate Limiting: Configurable request limits per time window
Monitoring: Prometheus metrics for requests, latency, and tool calls
Logging: Structured JSON logs with request tracing
CORS: Configurable cross-origin resource sharing
Health Checks:
/healthendpoint for monitoringEnvironment Configuration: Flexible environment-based settings
Quick Start
Prerequisites
Python 3.11+
uv (recommended) or pip
Vercel account (for deployment)
Local Development
Clone the repository
Install dependencies
Configure environment
Run the server
Test the server
Deployment
See DEPLOYMENT.md for comprehensive deployment instructions including:
Vercel deployment
Environment variable configuration
SSH tunnel setup for remote access
Continuous deployment setup
Production monitoring
Configuration
All configuration is managed through environment variables. See .env.example for all available options.
Key Configuration Options
Variable | Description | Default |
| Authentication key | (required) |
| CORS allowed origins |
|
| Logging level |
|
| Max requests per window |
|
| Time window in seconds |
|
| Enable Prometheus metrics |
|
API Endpoints
Public Endpoints
GET /- Server informationGET /health- Health checkGET /metrics- Prometheus metrics (if enabled)
Protected Endpoints (Require API Key)
POST /mcp- MCP tool execution endpointGET /status- Detailed server status
Authentication
All protected endpoints require a Bearer token:
Monitoring
Prometheus Metrics
The server exposes Prometheus-compatible metrics at /metrics:
http_requests_total- Total HTTP requests by method, endpoint, and statushttp_request_duration_seconds- Request latency histogrammcp_tool_calls_total- MCP tool invocations by tool name and statusmcp_tool_duration_seconds- Tool execution durationpokeapi_requests_total- PokeAPI requests by endpoint and statusactive_connections- Current active connections
Logging
Structured JSON logs include:
Request/response details
Tool execution tracking
Error tracking with stack traces
Performance metrics
SSH Tunneling for Remote Access
See SSH_TUNNELING.md for detailed instructions on:
Setting up SSH tunnels to access your deployed server
Configuring Claude Desktop and other MCP clients
Security best practices
Troubleshooting
Architecture
Development
Testing
Adding New Tools
Add tool function to
server.py:
Add monitoring and logging as needed
Update documentation
Security Considerations
API Keys: Always use strong, randomly generated API keys
CORS: Configure
ALLOWED_ORIGINSfor productionRate Limiting: Adjust limits based on expected usage
HTTPS: Always use HTTPS in production (Vercel provides this)
SSH Tunnels: Use key-based authentication, not passwords
Secrets: Never commit
.envfiles or secrets to git
Troubleshooting
Server Won't Start
Check Python version:
python --version(must be 3.11+)Verify all dependencies are installed
Check
.envfile configuration
Authentication Failures
Verify API key is set in environment
Check Authorization header format:
Bearer YOUR_KEYEnsure CORS settings allow your origin
Rate Limiting Issues
Adjust
RATE_LIMIT_REQUESTSandRATE_LIMIT_WINDOWCheck client IP address handling
Review logs for rate limit events
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
MIT License - see LICENSE file for details
Acknowledgments
PokeAPI - Pokémon data source
FastMCP - MCP server framework
Model Context Protocol - MCP specification
Original poke-mcp implementations by NaveenBandarage and ChiragAgg5k
Support
For issues, questions, or contributions:
Open an issue on GitHub
Check DEPLOYMENT.md for deployment help
Review SSH_TUNNELING.md for remote access setup
Roadmap
Full MCP protocol integration in Vercel endpoint
WebSocket support for real-time updates
Caching layer for PokeAPI responses
Additional battle mechanics
Team management tools
Database integration for persistent data
GraphQL API option
Docker deployment option
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A production-ready Pokémon MCP server that enables users to get comprehensive Pokémon information and simulate realistic turn-based battles. Features enterprise-grade authentication, monitoring, rate limiting, and serverless deployment capabilities.