
Pokemon
STDIOMCP server providing Pokemon data through standardized tools for queries and comparisons.
MCP server providing Pokemon data through standardized tools for queries and comparisons.
A Model Context Protocol (MCP) server that provides Pokemon data through standardized tools. This monorepo contains both the MCP server and data ingestion service for fetching Pokemon data from PokeAPI.
This is a PNPM monorepo with two main packages:
The system uses a shared SQLite database (data/pokemon.sqlite
) for Pokemon data storage.
get_pokemon
- Get detailed information about a specific Pokemonsearch_pokemon
- Search Pokemon by name, type, or other criteriaget_strongest_pokemon
- Find the strongest Pokemon by various statsget_pokemon_stats
- Get detailed stats for a Pokemoncompare_pokemon
- Compare stats between two Pokemonget_type_effectiveness
- Get type effectiveness informationgit clone https://github.com/grovesjosephn/pokemcp.git cd pokemcp
pnpm install
./scripts/setup.sh
pnpm build
# Development mode (with hot reload) pnpm dev # Production mode cd packages/pokemon-mcp-server pnpm start
# Visual GUI testing cd packages/pokemon-mcp-server pnpm inspect # CLI testing pnpm inspect:cli
# Run data ingestion cd packages/pokemon-mcp-ingestion pnpm start
Install the server globally:
cd packages/pokemon-mcp-server pnpm build npm link
Configure Claude Desktop:
{ "mcpServers": { "pokemon": { "command": "pokemon-mcp-server", "env": { "POKEMON_DATA_DIR": "/path/to/pokemcp/data" } } } }
{ "mcpServers": { "pokemon": { "command": "node", "args": ["/path/to/pokemcp/packages/pokemon-mcp-server/dist/server.js"], "env": { "POKEMON_DATA_DIR": "/path/to/pokemcp/data" } } } }
{ "mcpServers": { "pokemon": { "command": "pnpm", "args": ["--filter", "pokemon-mcp-server", "start"], "cwd": "/path/to/pokemcp", "env": { "POKEMON_DATA_DIR": "/path/to/pokemcp/data" } } } }
pnpm build # Build all packages pnpm dev # Run all packages in development mode pnpm test # Run tests for all packages pnpm lint # Lint all packages pnpm format # Format all files pnpm format:check # Check formatting
cd packages/pokemon-mcp-server pnpm build # Compile TypeScript pnpm dev # Watch mode with tsx pnpm start # Run server pnpm inspect # Run MCP Inspector GUI pnpm inspect:cli # Run MCP Inspector CLI pnpm test # Run tests
cd packages/pokemon-mcp-ingestion pnpm build # Compile TypeScript pnpm dev # Watch mode pnpm start # Run ingestion pnpm test # Run tests
The project uses Vitest for testing:
# Run all tests pnpm test # Run specific package tests pnpm --filter pokemon-mcp-server test pnpm --filter pokemon-mcp-ingestion test
The SQLite database includes tables for:
pokemon
- Basic Pokemon informationstats
- Pokemon stats (HP, Attack, Defense, etc.)types
- Pokemon types and relationshipsabilities
- Pokemon abilitiestype_effectiveness
- Type effectiveness relationshipspnpm format
and pnpm lint
Use conventional commit format:
<type>[optional scope]: <description>
Examples:
- feat(server): add Pokemon evolution chain tool
- fix(ingestion): handle missing species URL gracefully
- docs: update integration guide
MIT License - see LICENSE file for details