The MCP Pokemon Interface is a full-stack natural language interface for exploring Pokemon data. Built with a Flask backend and a React frontend, it enables users to get Pokemon info, compare stats, analyze types, generate strategies, and build teams using conversational input.
Requirements:
- Python 3.9+
- pip
Steps:
cd mcp_server
pip install -r requirements.txt
python app.pyThis starts the Flask API on http://localhost:5000.
Requirements:
- Node.js
- npm
Steps:
cd frontend
npm install
npm run devThis runs the React frontend on http://localhost:5173.
mcp_server/
│
├── api/ # Module endpoints
│ ├── compare.py # Pokémon comparison
│ ├── pokemon.py # Pokémon info
│ ├── strategy.py # Strategy suggestions
│ ├── team.py # Team builder
| |-- nlp.py # natural language
│ ├── type_info.py # Type matchups
│ └── __init__.py
│
├── services/ # NLP and data fetching
│ ├── parser.py # Parses natural language
│ ├── fetcher.py # Fetches data from APIs
│ └── __init__.py
│
├── app.py # Launch script
├── config.py # App settings
├── run.py
├── requirements.txt # Python dependencies
└── logs/ # Optional runtime logs
The app uses a single NLP endpoint that routes queries to the correct module:
-
Pokémon Info
Get basic stats and type info.
Example:Tell me about Pikachu -
Type Info
Check type strengths and weaknesses.
Example:What is Grass weak against? -
Strategy Suggestion
Suggest movesets, battle tactics.
Example:What is the best strategy for Alakazam? -
Pokémon Comparison
Compare stats, typing, and effectiveness.
Example:Compare Gengar and Alakazam -
Team Builder
Generate a full team from a goal.
Example:Make a team.
- Open
http://localhost:5173after starting the frontend. - Select a module from the dropdown:
- Search Info
- Type Info
- Strategy
- Compare
- Team Builder
- Enter a natural language query (e.g.,
Info about Charizard). - Click Submit and view the formatted response.
Each module is in a dedicated component and styled for simplicity.
- Accepts freeform input like:
"Build me a team that counters Dragon-types" - The backend parser identifies goals, roles, and types.
- The
team.pymodule selects 6 synergistic Pokémon. - Returns a human-readable explanation with team composition.
To integrate this system with an AI agent:
-
Send Queries to NLP Endpoint:
- POST JSON with
{ "query": "your natural language question" }to/nlp.
- POST JSON with
-
Receive Structured Response:
- Backend routes it to the correct module.
- Returns a readable natural language reply.
-
Embed into Tools or Apps:
- Use this API as the backend logic for chatbots, Discord bots, or voice assistants.
Example:
import requests
res = requests.post("http://localhost:5000/nlp", json={"query": "Compare Garchomp and Salamence"})
print(res.json())- Run the backend and frontend.
- Visit
localhost:5173. - Try natural language queries across all modules.
- See responses formatted as paragraphs or explanations.
- Modular NLP backend (
/nlp) with 5 functional routes. - React frontend with dynamic module switching.
- Team builder based on type synergy and role diversity.
- Designed to be embedded in tools and expanded easily.