GhostTypes/pokemon-go-mcp
If you are the rightful owner of pokemon-go-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A comprehensive Model Context Protocol (MCP) server that provides real-time Pokemon Go data including events, raids, research tasks, and egg hatches.
Pokemon Go MCP Server
A comprehensive Model Context Protocol (MCP) server that provides real-time Pokemon Go data including events, raids, research tasks, and egg hatches. Built using the LeekDuck API data source for the most up-to-date information.
๐ Features
๐ Event Management
- Current Events: Get all active and upcoming Pokemon Go events
- Event Details: Detailed information about specific events including Community Days
- Event Spawns: See which Pokemon are spawning more frequently
- Event Bonuses: Track active XP, Stardust, and other bonuses
- Community Day Info: Specialized Community Day information with featured Pokemon and exclusive moves
โ๏ธ Raid Intelligence
- Current Raid Bosses: Complete list of all raid bosses organized by tier
- Shiny Raids: Filter raids to show only shiny-eligible bosses
- Raid Search: Find specific Pokemon in raids
- Type Filtering: Get raids by Pokemon type (Fire, Water, etc.)
- Weather Boosted: Find raids boosted by current weather conditions
- Raid Recommendations: Smart recommendations based on your priorities
๐ฌ Research Optimization
- Field Research Tasks: Complete list of current research tasks and rewards
- Reward Search: Find tasks that reward specific Pokemon
- Shiny Research: Tasks that can reward shiny Pokemon
- Easy Tasks: Quick-completion tasks for efficient farming
- Task Type Filtering: Filter by catch, battle, spin, etc.
- Smart Recommendations: Personalized task recommendations
๐ฅ Egg Hatch Planning
- Egg Pool Data: All Pokemon currently hatching from eggs
- Distance Filtering: Filter by 2km, 5km, 10km, etc.
- Shiny Egg Hatches: Pokemon that can hatch shiny
- Regional Pokemon: Region-exclusive Pokemon from eggs
- Gift Exchange: 7km egg Pokemon from friends
- Adventure Sync: Weekly walking reward Pokemon
- Incubation Strategy: Smart recommendations for egg prioritization
๐ Cross-Platform Tools
- Universal Shiny Search: Find all available shiny Pokemon across all sources
- Pokemon Finder: Search for any Pokemon across events, raids, research, and eggs
- Daily Priorities: Curated daily recommendations based on active content
- Server Status: Data freshness and cache information
๐ Quick Start
Prerequisites
- Python 3.10 or higher
uv
package manager (recommended) orpip
Installation
-
Clone and setup:
git clone <repository-url> cd pogo-mcp-server
-
Using uv (recommended):
uv sync
-
Using pip:
pip install -e .
Running the Server
-
Start the server:
# Using uv uv run python server.py # Using pip python server.py # Direct module execution python -m pogo_mcp.server
-
For development with auto-reload:
uv run mcp dev server.py
Integration with Claude Desktop
-
Install in Claude Desktop:
uv run mcp install server.py --name "Pokemon Go Data"
-
Manual configuration (add to Claude Desktop config):
{ "mcpServers": { "pokemon-go": { "command": "uv", "args": ["run", "python", "/path/to/pogo-mcp-server/server.py"] } } }
Showcase
๐ ๏ธ Available Tools
Event Tools
get_current_events
- List all active and upcoming eventsget_event_details
- Detailed information about a specific eventget_community_day_info
- Community Day specificsget_event_spawns
- Pokemon spawning more frequentlyget_event_bonuses
- Active event bonusessearch_events
- Search events by name/type
Raid Tools
get_current_raids
- All current raid bosses by tierget_raid_by_tier
- Filter raids by tier (1, 3, 5, Mega)get_shiny_raids
- Only shiny-eligible raid bossessearch_raid_boss
- Find specific Pokemon in raidsget_raids_by_type
- Filter by Pokemon typeget_weather_boosted_raids
- Raids boosted by weatherget_raid_recommendations
- Smart raid recommendations
Research Tools
get_current_research
- All field research taskssearch_research_by_reward
- Find tasks by Pokemon rewardget_research_by_task_type
- Filter by task typeget_shiny_research_rewards
- Tasks with shiny rewardsget_easy_research_tasks
- Quick-completion taskssearch_research_tasks
- Search tasks by descriptionget_research_recommendations
- Personalized recommendations
Egg Tools
get_egg_hatches
- All Pokemon from eggsget_egg_hatches_by_distance
- Filter by egg distanceget_shiny_egg_hatches
- Shiny-eligible egg Pokemonsearch_egg_pokemon
- Find specific Pokemon in eggsget_regional_egg_pokemon
- Region-exclusive egg Pokemonget_gift_exchange_pokemon
- 7km gift egg Pokemonget_adventure_sync_rewards
- Adventure Sync rewardsget_egg_recommendations
- Smart incubation strategy
Cross-Platform Tools
get_all_shiny_pokemon
- All shiny Pokemon across sourcessearch_pokemon_everywhere
- Universal Pokemon searchget_daily_priorities
- Daily activity recommendationsget_server_status
- Server and data statusclear_cache
- Force fresh data retrieval
๐ Example Usage
Get Today's Priorities
Use the get_daily_priorities tool to get curated recommendations for:
- Active events to participate in
- Priority raids for shiny hunting
- Easy research tasks with valuable rewards
- Optimal egg hatching strategy
Find a Specific Pokemon
Use search_pokemon_everywhere with "Dratini" to find:
- If it's featured in any current events
- Whether it's available as a raid boss
- Which research tasks reward it
- If it can be hatched from eggs
- Shiny availability across all sources
Plan Your Shiny Hunt
Use get_all_shiny_pokemon to see every shiny currently available, then:
- get_shiny_raids for raid targets
- get_shiny_research_rewards for research tasks
- get_shiny_egg_hatches for egg planning
๐ Data Sources
This server uses the LeekDuck API (ScrapedDuck project) which provides:
- Real-time event information
- Current raid boss rotations
- Active field research tasks
- Current egg pools
Data is cached for 5 minutes to balance freshness with API performance. Use clear_cache
to force immediate updates.
๐๏ธ Architecture
pogo-mcp-server/
โโโ pogo_mcp/
โ โโโ __init__.py # Package initialization
โ โโโ server.py # Main MCP server with cross-cutting tools
โ โโโ api_client.py # LeekDuck API client with caching
โ โโโ types.py # Type definitions and data classes
โ โโโ utils.py # Utility functions and formatters
โ โโโ events.py # Event-related tools
โ โโโ raids.py # Raid-related tools
โ โโโ research.py # Research-related tools
โ โโโ eggs.py # Egg-related tools
โโโ tests/ # Test files
โโโ server.py # Main entry point
โโโ pyproject.toml # Project configuration
โโโ README.md # This file
Key Components
- FastMCP: Modern MCP server framework for easy tool registration
- Async HTTP Client: High-performance API calls with connection pooling
- Smart Caching: 5-minute cache with manual refresh capability
- Type Safety: Full type hints and data validation
- Modular Design: Separate modules for each data domain
- Comprehensive Utilities: Rich formatting and search capabilities
๐งช Development
Setup Development Environment
# Clone repository
git clone <repository-url>
cd pogo-mcp-server
# Install with development dependencies
uv sync --all-extras --dev
# Run tests
uv run pytest
# Code formatting
uv run ruff format .
# Linting
uv run ruff check .
# Type checking
uv run pyright
Testing
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=pogo_mcp
# Test specific module
uv run pytest tests/test_events.py
Adding New Tools
- Create tool function in appropriate module (events.py, raids.py, etc.)
- Register tool with
@mcp.tool()
decorator - Add documentation with clear docstring
- Add type hints for all parameters and return values
- Handle errors gracefully with try/catch blocks
- Add tests in corresponding test file
Example:
@mcp.tool()
async def my_new_tool(param: str) -> str:
"""Description of what this tool does.
Args:
param: Description of the parameter
Returns detailed information about...
"""
try:
# Implementation here
return result
except Exception as e:
logger.error(f"Error in my_new_tool: {e}")
return f"Error: {str(e)}"
๐ค Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes with tests
- Run the test suite (
uv run pytest
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
๐ License
This project is licensed under the MIT License - see the file for details.
๐ Acknowledgments
- LeekDuck for providing comprehensive Pokemon Go data
- ScrapedDuck project for the API endpoints
- Anthropic for the Model Context Protocol
๐ Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: This README and inline code documentation
Built with โค๏ธ for the Pokemon Go community