Integrates with Algolia's search engine to provide advanced search capabilities across Pokémon data, enabling multi-index search, type effectiveness calculations, and competitive intelligence with faceted filtering.
PokéBattle AI Strategist
An intelligent Pokémon battle strategy assistant powered by Algolia search and natural language processing. This application provides strategic recommendations, type effectiveness analysis, and competitive insights through conversational AI.
Features
Natural Language Battle Planning
- Conversational Queries: Ask complex questions like "What's the best counter to a Charizard with Solar Beam?" or "Build me a team that can handle Dragon-types"
- AI-Powered Recommendations: Get strategic advice with detailed reasoning for team building and battle scenarios
- Context-Aware Analysis: Understands competitive formats, tiers, and battle contexts
Advanced Search Capabilities
- Multi-Index Search: Simultaneously searches across Pokémon, moves, abilities, and competitive data
- Type Effectiveness Engine: Complete type matchup calculations with resistance and immunity analysis
- Competitive Intelligence: Usage statistics, tier analysis, and meta trend insights
- Faceted Filtering: Filter by stats, types, generations, tiers, and battle roles
Interactive Battle Analysis
- Real-time Strategy: Get optimal move suggestions and switch recommendations
- Matchup Scoring: AI calculates and explains matchup advantages with numerical ratings
- Team Synergy Analysis: Identifies type coverage gaps and strategic synergies
- Counter Discovery: Find the best Pokémon to counter specific threats
System Features
- Connection Status: Real-time Algolia connection monitoring with available indices display
- Hybrid Search: Seamless switching between instant search and AI-powered analysis
- Responsive Design: Grid-based results layout optimized for all screen sizes
- Error Handling: Comprehensive error boundaries and fallback states
- Animation Effects: GSAP-powered smooth transitions and hover effects
Architecture
Technology Stack
- Frontend: React 19 + TypeScript + Vite
- Styling: Tailwind CSS v3 with glassmorphism effects
- Search Engine: Algolia v5 with custom search integration
- State Management: Custom React hooks with centralized battle logic
- AI Integration: Natural language processing for query interpretation
- Animations: GSAP for smooth transitions and effects
- Icons: Lucide React for consistent iconography
Project Architecture
Data Model
The application uses comprehensive TypeScript interfaces covering:
- PokemonData: Complete stats, abilities, movesets, type effectiveness
- MoveData: Power, accuracy, descriptions, competitive viability
- AbilityData: Effects, competitive ratings, Pokémon associations
- CompetitiveStatsData: Usage percentages, tier distributions, team synergies
- RecommendationData: AI-generated battle suggestions with reasoning
Getting Started
Prerequisites
- Node.js 18+
- npm package manager
Installation
Environment Setup
- Copy the environment example file:
- Configure your environment variables in
.env
:
Running the Application
Development Commands
Project Structure
This is a monorepo with three main packages:
- frontend/: React + TypeScript + Vite application
- backend/: Express.js server with MCP integration
- mcp-node/: Algolia MCP server implementation
Environment Configuration
The application requires Algolia search configuration:
Setting up Algolia:
- Create a free account at algolia.com
- Create a new application
- Get your App ID from the dashboard
- Generate a search-only API key (API Keys section)
- Set up a
pokemon
index with your Pokemon data
Required Environment Variables:
- App ID: Get from your Algolia dashboard
- Search-Only API Key: Generate a search-only key in Algolia dashboard
- Anthropic API Key: Required for AI features (set in .env)
Usage Examples
Natural Language Queries
Search Features
- Counter Analysis: Identifies type advantages, speed tiers, and defensive matchups
- Team Building: Analyzes type coverage, role distribution, and strategic synergies
- Move Search: Finds Pokémon that learn specific moves with competitive context
- Type Filtering: Advanced filtering by single/dual types with stat requirements
🏆 Competitive Features
Tier Integration
- OU (OverUsed): Standard competitive tier analysis
- UU/RU/NU: Lower tier viability assessments
- Ubers: Legendary/restricted format support
- LC (Little Cup): Pre-evolution competitive analysis
Battle Intelligence
- Matchup Scoring: Numerical ratings (0-100) for battle advantages
- Speed Tier Analysis: Critical speed benchmark comparisons
- Type Coverage: Complete offensive and defensive type analysis
- Meta Awareness: Current usage trends and team archetype recognition
Configuration
TypeScript Setup
The project uses strict TypeScript with verbatimModuleSyntax
:
- Type-only imports:
import type { Pokemon } from '../types/pokemon'
- Value imports:
import { charizardData } from '../data/pokemon'
Algolia Configuration
The application connects to a pre-configured Algolia index with Pokemon data:
- Index Name:
pokemon
- Search Features: Instant search, faceting, highlighting
- Data Structure: Pokemon stats, types, moves, competitive info
Troubleshooting
Common Issues
1. Dependencies Installation
2. Port Conflicts
- Frontend runs on port 5173 (Vite default)
- Backend runs on port 3000 (or PORT env variable)
- Check if ports are available or modify in package.json
3. Environment Variables
4. TypeScript Errors
5. Search Not Working
- Verify Algolia credentials in .env
- Check browser console for API errors
- Try demo mode if instant search fails
Development Tips
- Use browser dev tools to debug Algolia API calls
- Check network tab for MCP server communication
- Enable verbose logging in development mode
Design System
Visual Theme
- Dark Gradient Background: Blue → Purple → Indigo progression
- Glassmorphism Effects:
backdrop-blur-lg
with transparency - Typography: Clean hierarchy with gradient accent colors
- Interactive Elements: Smooth transitions with hover states
Responsive Design
- Mobile-First: Optimized for all screen sizes
- Grid Layouts: Adaptive column counts (1/2/3/4/5 columns)
- Touch-Friendly: Large tap targets and gesture support
Development
Codebase Cleanup (Latest)
The project recently underwent a major cleanup to reduce technical debt:
Removed Files (26 total):
- Deprecated services (algolia.ts, naturalLanguageSearch.ts, instantSearchClient.ts)
- Unused components (13 files including SearchInterface, FeatureShowcase, etc.)
- Unused hooks (useBattleStrategy.ts, useNaturalLanguageBattle.ts)
- Test/utility files and backup directories
- Unused dependencies (react-instantsearch package)
Current Architecture Benefits:
- Cleaner, focused codebase with only active functionality
- Reduced bundle size and improved performance
- Better maintainability and developer experience
- Streamlined component hierarchy
Adding New Features
- New Search Types: Extend interfaces in
naturalLanguageSearchEnhanced.ts
- Additional Data: Update TypeScript interfaces in
types/pokemon.ts
- UI Components: Follow existing patterns with Tailwind styling
- Search Logic: Implement in
algolia-enhanced.ts
with proper error handling
Code Quality
- ESLint: Configured with React and TypeScript rules
- Type Safety: Strict TypeScript with comprehensive interfaces
- Component Design: Atomic components with clear prop interfaces
- State Management: Custom hooks for business logic separation
Performance
Optimization Features
- Vite Build System: Fast development and optimized production builds
- Code Splitting: Automatic chunking for optimal loading
- Search Optimization: Algolia's sub-50ms search performance
- Caching: Intelligent result caching for repeated queries
Future Roadmap
Planned Features
- MCP Server Integration: Claude Desktop workflow automation
- Team Export: Pokemon Showdown format compatibility
- Battle Simulator: Real-time battle scenario testing
- Community Features: Team sharing and rating system
- Advanced Analytics: Win rate predictions and meta tracking
Technical Enhancements
- Real-time Data: Live competitive usage updates
- Machine Learning: Enhanced recommendation algorithms
- Performance: Advanced caching and CDN integration
- Mobile App: React Native companion application
License
This project is open source and available under the MIT License.
Contributing
Contributions are welcome! Please see our contributing guidelines for more information.
Built for the Pokémon competitive community
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
An intelligent Pokémon battle strategy assistant that provides strategic recommendations, type effectiveness analysis, and competitive insights through conversational AI powered by Algolia search.
Related MCP Servers
- -securityFlicense-qualityEnables AI assistants to interact with Metabase databases and dashboards, allowing users to list and execute queries, access data visualizations, and interact with database resources through natural language.Last updated -51JavaScript
- -securityFlicense-qualityEnables AI assistants to interact with Metabase, providing access to dashboards, questions, databases, and tools for executing queries and viewing data through natural language.Last updated -JavaScript
StarRocks MCP Serverofficial
AsecurityAlicenseAqualityActs as a bridge between AI assistants and StarRocks databases, allowing for direct SQL execution and database exploration without requiring complex setup or configuration.Last updated -596PythonApache 2.0- AsecurityFlicenseAqualityAn integration server that enables AI assistants like Claude or Cursor to access and interact with strateegia projects through the strateegia API.Last updated -1554TypeScript