Pokemon

Fornece acesso a um banco de dados abrangente de Pokémon através de uma interface MCP padronizada.

Documentação

Servidor MCP Pokemon

Um servidor Model Context Protocol (MCP) que fornece dados de Pokemon por meio de ferramentas padronizadas. Este monorepo contém tanto o servidor MCP quanto o serviço de ingestão de dados para buscar dados de Pokemon da PokeAPI.

Arquitetura

Este é um monorepo PNPM com dois pacotes principais:

  • pokemon-mcp-server: Servidor MCP que expõe dados de Pokemon por meio de ferramentas padronizadas
  • pokemon-mcp-ingestion: Serviço de ingestão de dados que busca da PokeAPI e armazena em SQLite

O sistema usa um banco de dados SQLite compartilhado (data/pokemon.sqlite) para armazenamento de dados de Pokemon.

Recursos

Ferramentas MCP Disponíveis

  • get_pokemon - Obtenha informações detalhadas sobre um Pokemon específico
  • search_pokemon - Pesquise Pokemon por nome, tipo ou outros critérios
  • get_strongest_pokemon - Encontre o Pokemon mais forte por vários atributos
  • get_pokemon_stats - Obtenha estatísticas detalhadas de um Pokemon
  • compare_pokemon - Compare estatísticas entre dois Pokemon
  • get_type_effectiveness - Obtenha informações de efetividade de tipos

Cobertura de Dados

  • Dados completos de Pokemon da PokeAPI
  • Estatísticas, tipos, habilidades e mais
  • Relações de efetividade de tipos
  • Pesquisável por múltiplos critérios

Início Rápido

Pré-requisitos

  • Node.js 18+
  • PNPM
  • Git

Instalação

  1. Clone o repositório:
git clone https://github.com/grovesjosephn/pokemcp.git
cd pokemcp
  1. Instale as dependências:
bun install
  1. Configure o banco de dados:
./scripts/setup.sh
  1. Compile todos os pacotes:
bun run build

Uso

Executando o Servidor MCP

# Development mode (with hot reload)
bun run dev

# Production mode
cd packages/pokemon-mcp-server
bun run start

Testando com o MCP Inspector

# Visual GUI testing
cd packages/pokemon-mcp-server
bun run inspect

# CLI testing
bun run inspect:cli

Ingestão de Dados

# Run data ingestion
cd packages/pokemon-mcp-ingestion
bun run start

Integração com Claude Desktop

Opção 1: Pacote NPM (Recomendado)

Instale o servidor globalmente:

cd packages/pokemon-mcp-server
bun run build
npm link

Configure o Claude Desktop:

{
  "mcpServers": {
    "pokemon": {
      "command": "pokemon-mcp-server",
      "env": {
        "POKEMON_DATA_DIR": "/path/to/pokemcp/data"
      }
    }
  }
}

Opção 2: Execução Direta com Node

{
  "mcpServers": {
    "pokemon": {
      "command": "node",
      "args": ["/path/to/pokemcp/packages/pokemon-mcp-server/dist/server.js"],
      "env": {
        "POKEMON_DATA_DIR": "/path/to/pokemcp/data"
      }
    }
  }
}

Opção 3: Modo de Desenvolvimento

{
  "mcpServers": {
    "pokemon": {
      "command": "bun",
      "args": ["/path/to/pokemcp/packages/pokemon-mcp-server/server.ts"],
      "env": {
        "POKEMON_DATA_DIR": "/path/to/pokemcp/data"
      }
    }
  }
}

Desenvolvimento

Comandos do Workspace

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 do Pacote do 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 do Pacote de Ingestão

cd packages/pokemon-mcp-ingestion

bun run build         # Compile TypeScript
bun run dev           # Watch mode
bun run start         # Run ingestion
bun test              # Run tests

Testes

O projeto usa o executor de testes integrado do 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 do Banco de Dados

O banco de dados SQLite inclui tabelas para:

  • pokemon - Informações básicas do Pokemon
  • stats - Estatísticas do Pokemon (HP, Ataque, Defesa, etc.)
  • types - Tipos de Pokemon e relações
  • abilities - Habilidades do Pokemon

Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade
  3. Faça suas alterações
  4. Adicione testes
  5. Execute bun run format
  6. Envie um pull request

Diretrizes de Commit

Use o formato de commit convencional:

<type>[optional scope]: <description>

Examples:
- feat(server): add Pokemon evolution chain tool
- fix(ingestion): handle missing species URL gracefully
- docs: update integration guide

Licença

Licença MIT - consulte o arquivo LICENSE para detalhes

Links