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ífico
  • search_pokemon - Buscar Pokemon por nombre, tipo u otros criterios
  • get_strongest_pokemon - Encontrar el Pokemon más fuerte según varias estadísticas
  • get_pokemon_stats - Obtener estadísticas detalladas de un Pokemon
  • compare_pokemon - Comparar estadísticas entre dos Pokemon
  • get_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

  1. Clonar el repositorio:
git clone https://github.com/grovesjosephn/pokemcp.git
cd pokemcp
  1. Instalar dependencias:
bun install
  1. Configurar la base de datos:
./scripts/setup.sh
  1. 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 Pokemon
  • stats - Estadísticas de Pokemon (PS, Ataque, Defensa, etc.)
  • types - Tipos de Pokemon y relaciones
  • abilities - Habilidades de Pokemon

Contribuciones

  1. Hacer un fork del repositorio
  2. Crear una rama de características
  3. Realizar los cambios
  4. Añadir pruebas
  5. Ejecutar bun run format
  6. 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

Enlaces