Pokemon
Proporciona acceso a una base de datos completa de Pokémon a través de una interfaz MCP estandarizada.
Documentación
Servidor MCP de Pokemon
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona datos de Pokemon a través de herramientas estandarizadas. Este monorepo contiene tanto el servidor MCP como el servicio de ingesta de datos para obtener datos de Pokemon desde PokeAPI.
Arquitectura
Este es un monorepo de PNPM con dos paquetes principales:
- pokemon-mcp-server: Servidor MCP que expone datos de Pokemon a través de herramientas estandarizadas
- pokemon-mcp-ingestion: Servicio de ingesta de datos que obtiene datos de PokeAPI y los almacena en SQLite
El sistema utiliza una base de datos SQLite compartida (data/pokemon.sqlite) para el almacenamiento de datos de Pokemon.
Características
Herramientas MCP Disponibles
get_pokemon- Obtener información detallada sobre un Pokemon específicosearch_pokemon- Buscar Pokemon por nombre, tipo u otros criteriosget_strongest_pokemon- Encontrar el Pokemon más fuerte según varias estadísticasget_pokemon_stats- Obtener estadísticas detalladas de un Pokemoncompare_pokemon- Comparar estadísticas entre dos Pokemonget_type_effectiveness- Obtener información sobre efectividad de tipos
Cobertura de Datos
- Datos completos de Pokemon desde PokeAPI
- Estadísticas, tipos, habilidades y más
- Relaciones de efectividad de tipos
- Búsqueda por múltiples criterios
Inicio Rápido
Requisitos Previos
- Node.js 18+
- PNPM
- Git
Instalación
- Clonar el repositorio:
git clone https://github.com/grovesjosephn/pokemcp.git
cd pokemcp
- Instalar dependencias:
bun install
- Configurar la base de datos:
./scripts/setup.sh
- Compilar todos los paquetes:
bun run build
Uso
Ejecutar el Servidor MCP
# Development mode (with hot reload)
bun run dev
# Production mode
cd packages/pokemon-mcp-server
bun run start
Probar con MCP Inspector
# Visual GUI testing
cd packages/pokemon-mcp-server
bun run inspect
# CLI testing
bun run inspect:cli
Ingesta de Datos
# Run data ingestion
cd packages/pokemon-mcp-ingestion
bun run start
Integración con Claude Desktop
Opción 1: Paquete NPM (Recomendado)
Instalar el servidor globalmente:
cd packages/pokemon-mcp-server
bun run build
npm link
Configurar Claude Desktop:
{
"mcpServers": {
"pokemon": {
"command": "pokemon-mcp-server",
"env": {
"POKEMON_DATA_DIR": "/path/to/pokemcp/data"
}
}
}
}
Opción 2: Ejecución Directa con Node
{
"mcpServers": {
"pokemon": {
"command": "node",
"args": ["/path/to/pokemcp/packages/pokemon-mcp-server/dist/server.js"],
"env": {
"POKEMON_DATA_DIR": "/path/to/pokemcp/data"
}
}
}
}
Opción 3: Modo de Desarrollo
{
"mcpServers": {
"pokemon": {
"command": "bun",
"args": ["/path/to/pokemcp/packages/pokemon-mcp-server/server.ts"],
"env": {
"POKEMON_DATA_DIR": "/path/to/pokemcp/data"
}
}
}
}
Desarrollo
Comandos del Espacio de Trabajo
bun run build # Build all packages
bun run dev # Run all packages in development mode
bun run test # Run tests for all packages
bun run format # Format all files
bun run format:check # Check formatting
Comandos del Paquete del Servidor
cd packages/pokemon-mcp-server
bun run build # Compile TypeScript
bun run dev # Watch mode
bun run start # Run server
bun run inspect # Run MCP Inspector GUI
bun run inspect:cli # Run MCP Inspector CLI
bun test # Run tests
Comandos del Paquete de Ingesta
cd packages/pokemon-mcp-ingestion
bun run build # Compile TypeScript
bun run dev # Watch mode
bun run start # Run ingestion
bun test # Run tests
Pruebas
El proyecto utiliza el ejecutor de pruebas integrado de bun:
# Run all tests
bun run test
# Run specific package tests
cd packages/pokemon-mcp-server && bun test
cd packages/pokemon-mcp-ingestion && bun test
Esquema de la Base de Datos
La base de datos SQLite incluye tablas para:
pokemon- Información básica de Pokemonstats- Estadísticas de Pokemon (PS, Ataque, Defensa, etc.)types- Tipos de Pokemon y relacionesabilities- Habilidades de Pokemon
Contribuciones
- Hacer un fork del repositorio
- Crear una rama de características
- Realizar los cambios
- Añadir pruebas
- Ejecutar
bun run format - Enviar una solicitud de extracción
Guía de Commits
Usar el formato de commits convencional:
<type>[optional scope]: <description>
Examples:
- feat(server): add Pokemon evolution chain tool
- fix(ingestion): handle missing species URL gracefully
- docs: update integration guide
Licencia
Licencia MIT - ver el archivo LICENSE para más detalles