Pokémon MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pokémon MCP ServerCompare the types and base stats of Pikachu and Raichu."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pokémon MCP Server
Laboratório didático para aprender o que é e como funciona um MCP Server. Ele expõe dados reais da PokéAPI como Tools, um Resource e um Prompt pelo protocolo MCP, usando o transporte Streamable HTTP.
O servidor não contém um modelo de linguagem e não precisa de chave de API. Quem interpreta a pergunta e escolhe uma Tool é o cliente de IA conectado; este projeto apenas consulta, valida e resume os dados da PokéAPI.
Escolha seu caminho
Quero... | Comece por |
testar o servidor em cinco minutos | |
conectar VS Code, Codex ou outro cliente | |
entender cada etapa da requisição | |
estudar ou modificar o projeto |
Related MCP server: Pokédex MCP Server
Quickstart em cinco minutos
1. Pré-requisito
Você precisa apenas de Docker para executar o servidor:
docker --versionPara experimentar as capacidades numa interface visual, o passo 4 usa o MCP Inspector e requer Node.js. Ele é opcional: qualquer cliente compatível com Streamable HTTP pode se conectar ao mesmo endpoint.
2. Execute a imagem publicada
docker run -d --name pokemon-mcp-server \
-p 127.0.0.1:8000:8000 \
higorcamposs/pokemon-mcp-server:0.1.2A imagem é distribuída em dois registries. Use o que preferir:
docker pull higorcamposs/pokemon-mcp-server:0.1.2 # Docker Hub
docker pull ghcr.io/higorcamposs/pokemon-mcp-server:0.1.2 # GHCRSão a mesma imagem, não duas: o mesmo build multiarch (linux/amd64 e
linux/arm64), publicado nos dois lugares com o mesmo digest. Prefira a tag de
versão a latest quando reprodutibilidade importar — uma versão publicada
nunca é regravada, enquanto latest anda a cada release estável.
O mapeamento começa com 127.0.0.1 de propósito: o servidor fica disponível
somente na sua máquina. Ele não tem autenticação e não deve ser exposto à rede
ou à internet.
3. Confirme que o processo está no ar
docker ps
curl http://localhost:8000/healthResposta esperada do curl:
{"status":"ok","server":"pokemon-mcp-server"}O endpoint MCP é:
http://localhost:8000/mcp/health prova que o processo respondeu. A próxima etapa prova que o protocolo
MCP e as capacidades do servidor estão funcionando.
4. Conecte o MCP Inspector
Com Node.js instalado, execute:
npx @modelcontextprotocol/inspector \
--server-url http://localhost:8000/mcp \
--transport httpAbra no navegador a URL impressa pelo comando. No Inspector:
conecte ao servidor;
abra Tools;
selecione
get_pokemon;preencha
name_or_idcompikachu;execute a Tool.
O resultado estruturado contém dados como estes:
{
"id": 25,
"name": "pikachu",
"types": ["electric"],
"height_m": 0.4,
"weight_kg": 6.0,
"abilities": [
{"name": "static", "is_hidden": false, "slot": 1},
{"name": "lightning-rod", "is_hidden": true, "slot": 3}
],
"base_stats": {
"hp": 35,
"attack": 55,
"defense": 40,
"special-attack": 50,
"special-defense": 50,
"speed": 90
},
"source_url": "https://pokeapi.co/api/v2/pokemon/pikachu/"
}Confira também os logs:
docker logs pokemon-mcp-serverEles devem mostrar a consulta à PokéAPI ou um cache hit se o mesmo Pokémon já
tiver sido consultado dentro do TTL.
5. Encerre o servidor
docker rm -f pokemon-mcp-serverPara receitas específicas de VS Code, Codex e MCP Inspector, consulte o guia de conexão.
Como funciona em 60 segundos
Usuário
│ pergunta em linguagem natural
▼
Aplicação de IA / Host
└── modelo escolhe uma Tool
│ chamada MCP por Streamable HTTP
▼
Pokémon MCP Server
├── valida o argumento
├── consulta e guarda cache
├── converte unidades
└── valida o JSON recebido
│ HTTPS / REST
▼
PokéAPI
PokéAPI → resposta bruta → MCP Server → resposta estruturada → cliente → usuárioO protocolo MCP fica entre o cliente e este servidor. Entre o servidor e a PokéAPI continua existindo HTTP/REST comum. Publicar a imagem num registry distribui o programa, mas não cria um endpoint público: o contêiner roda na máquina de quem o iniciou.
O fluxo completo, incluindo os arquivos envolvidos em cada etapa, está em docs/como-funciona.md.
O que o servidor oferece
Capacidade | Função | Neste projeto |
Tool | executa uma operação | três consultas à PokéAPI |
Resource | fornece conteúdo por URI |
|
Prompt | fornece um template |
|
Tools
get_pokemon: tipos, unidades, habilidades e atributos base.get_ability: descrição em inglês e origem do texto.get_type: seis relações de dano de um tipo isolado.
As Tools aceitam nomes canônicos (pikachu, mr-mime) ou identificadores
positivos (25). Espaços nas extremidades e letras maiúsculas são
normalizados. Toda resposta traz source_url, a URL exata consultada.
Resource e Prompt
pokemon://guideexplica as capacidades, a origem dos dados e os limites do laboratório.compare_pokemon(pokemon_a, pokemon_b)devolve instruções para o cliente consultar dois Pokémon e compará-los sem inventar um vencedor de batalha.
Obter o Prompt não executa Tools e não chama um modelo. O servidor devolve apenas o template; a aplicação conectada decide o que fazer com ele.
Estudar e desenvolver
1. Clone e suba o projeto
git clone https://github.com/higorcamposs/pokemon-mcp-server.git
cd pokemon-mcp-server
docker compose up -d --build
docker compose psO status deve ficar healthy. O endpoint continua sendo
http://localhost:8000/mcp.
2. Execute os testes automatizados
docker compose --profile test run --build --rm testsOs testes usam respostas gravadas e transporte HTTP simulado; a disponibilidade da PokéAPI não faz parte da suíte automatizada.
3. Execute o smoke test MCP
Com o servidor no ar:
docker compose --profile test run --build --rm smokeO smoke test conecta pelo protocolo MCP, descobre as capacidades, chama as três Tools, lê o Resource e obtém o Prompt. Ele faz poucas consultas reais à PokéAPI.
4. Localize cada responsabilidade
Dentro de src/pokemon_mcp/:
Arquivo | Responsabilidade |
| transporte HTTP e allowlists |
| capacidades MCP e |
| integração HTTP e cache |
| validação e modelos de saída |
Leia Como o servidor funciona para acompanhar uma requisição por esses quatro módulos e entender como adaptar o laboratório.
Para encerrar o ambiente de desenvolvimento:
docker compose downConfiguração essencial
Todas as variáveis são opcionais. .env.example documenta porta, URL da
PokéAPI, timeout, cache, logs e allowlists com seus respectivos padrões.
Se a porta 8000 estiver ocupada:
MCP_HOST_PORT=8001 docker compose up -d --buildO endpoint passa a ser http://localhost:8001/mcp, e o Compose ajusta as
allowlists. Veja a configuração de Host, Origin e porta.
Limites e segurança
O servidor não simula batalhas nem determina vencedores.
Relações de tipo não combinam os dois tipos de um Pokémon nem consideram habilidades, itens, movimentos ou condições de campo.
Habilidades são possibilidades da espécie; um indivíduo usa uma por vez.
Descrições de habilidade vêm em inglês e não são traduzidas pelo servidor.
O cache existe apenas em memória e desaparece quando o contêiner reinicia.
O servidor depende da PokéAPI e devolve erro quando ela está indisponível.
Não há autenticação. O serviço deve permanecer no loopback e não deve ser publicado em rede, túnel público ou internet.
Diagnóstico rápido
Contêiner não fica saudável: leia
docker logs pokemon-mcp-server.Porta 8000 ocupada: use
MCP_HOST_PORT=8001com o Compose.HTTP 421: use
localhostou autorize o Host exato mostrado no log.HTTP 403: autorize a Origin completa mostrada no log.
PokéAPI indisponível: confira a internet do contêiner e tente depois.
Se /health funciona, mas o cliente não conecta, execute o smoke test para
separar um problema do servidor de um problema específico do cliente. Veja o
diagnóstico detalhado.
Documentação
Para usar o servidor
Para estudar o projeto
Para manter e publicar
compose.ghcr.yaml: executar a imagem publicada sem clonar o repositório.env.example: referência completa das variáveis de ambiente
Distribuído sob a licença MIT. Consulte LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Provide detailed Pokémon data and information through a standardized MCP interface. Enable LLMs an…
Look up Pokémon, moves, abilities, items, natures, and type matchups from PokéAPI v2.
Pokemon MCP — wraps PokéAPI (free, no auth required)
Look up Pokemon TCG Pocket cards, sets, packs, and evaluate decks with battle simulations.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI models to access comprehensive Pokémon data from PokéAPI and simulate battles between any two Pokémon with realistic mechanics including type effectiveness, stat-based damage calculations, and status effects.1-
- AlicenseBqualityCmaintenanceEnables AI agents to access comprehensive Pokémon data through PokeAPI, including detailed Pokémon information, type effectiveness charts, encounter locations, and search capabilities. Provides a complete toolkit for retrieving stats, abilities, sprites, battle mechanics, and wild encounter data for all Pokémon.4271 npm1MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides comprehensive Pokemon data and battle simulation capabilities to AI assistants. It enables users to access detailed stats, types, and moves while simulating battles with realistic mechanics like type effectiveness and status effects.-
- AlicenseBqualityDmaintenanceEmpowers AI assistants to fetch and explore comprehensive Pokémon data from PokeAPI via 47 tools covering Pokémon, moves, items, game mechanics, and more.4781 npm1ISC