ShimaCoding/mcp-pokemon-server
If you are the rightful owner of mcp-pokemon-server 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.
The MCP Pokemon Server is an educational project that integrates FastMCP with the PokéAPI to provide a model context protocol server for learning and development purposes.
MCP Pokemon Server
Educational MCP Server implementation using FastMCP and PokéAPI integration.
🚧 Work in Progress
This project is currently under development following the implementation plan.
📋 Project Overview
This is an educational MCP (Model Context Protocol) server that demonstrates best practices for MCP development using:
- FastMCP: Modern Python MCP server framework
- PokéAPI: External data source integration
- Educational Focus: Comprehensive examples and documentation
🎯 Features
Planned Features
- Tools: Pokemon information retrieval and analysis
- Resources: Dynamic Pokemon data resources
- Prompts: Educational and battle-focused prompts
- Interactive Elicitation: Multi-step tool interactions
- Caching: Multi-level caching system
- Monitoring: Comprehensive metrics and logging
🏗️ Architecture
src/
├── main.py # Entry point
├── server/ # MCP server configuration
├── tools/ # MCP tools implementation
├── resources/ # MCP resources
├── prompts/ # MCP prompts
├── clients/ # External API clients
├── models/ # Data models
├── utils/ # Utilities
└── config/ # Configuration
🚀 Quick Start
Prerequisites
- Python 3.11+
- Redis (for caching)
- Git
Installation
-
Clone the repository:
git clone https://github.com/ShimaCoding/mcp-pokemon-server.git cd mcp-pokemon-server
-
Create virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt pip install -r requirements-dev.txt # For development
-
Configure environment:
cp .env.example .env # Edit .env with your configuration
-
Run the server:
python -m src.main
🧪 Development
Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=src
# Run specific test file
pytest tests/test_tools.py
Code Quality
# Format code
black .
isort .
# Lint code
ruff check .
# Type checking
mypy src/
Pre-commit Hooks
pre-commit install
pre-commit run --all-files
📋 Development Plan
See for the complete development roadmap.
🔧 Configuration
Configuration is handled through environment variables. See .env.example
for all available options.
Key Configuration Options
MCP_SERVER_HOST
: Server host (default: localhost)MCP_SERVER_PORT
: Server port (default: 8000)POKEAPI_BASE_URL
: PokéAPI base URLREDIS_URL
: Redis connection URLLOG_LEVEL
: Logging level (DEBUG, INFO, WARNING, ERROR)
📖 Documentation
- (Coming soon)
- (Coming soon)
- (Coming soon)
🤝 Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - 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
- PokéAPI for providing the Pokemon data
- MCP for the Model Context Protocol
- The Python community for excellent tools and libraries
📊 Project Status
- ✅ Phase 0: GitHub Configuration
- 🚧 Phase 1: Project Setup (In Progress)
- ⏳ Phase 2: Base Implementation
- ⏳ Phase 3: Advanced Features
- ⏳ Phase 4: Optimization & Monitoring
- ⏳ Phase 5: Testing & Documentation
- ⏳ Phase 6: Deployment