pokemon-mcp-server

cincin-2399/pokemon-mcp-server

3.2

If you are the rightful owner of pokemon-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Go-based MCP server that provides Pokémon tools using the PokéAPI, built with the mcp-go framework.

Tools
6
Resources
0
Prompts
0

Go-based MCP server that exposes Pokémon tools backed by PokéAPI. Built with the mcp-go framework.

Getting Started (GitHub)

git clone --branch go --single-branch https://github.com/cincin-2399/pokemon-mcp-server.git
cd pokemon-mcp-server
go build ./ pokemon-mcp-go

# Optional: run SSE mode manually
./pokemon-mcp-go.exe --sse

Configure your MCP client (Claude Desktop or Cursor) using one of the following modes.

Client config (stdio)

Client will launch the binary via stdio. Edit your client's MCP config file (Claude Desktop: %APPDATA%\Claude\claude_desktop_config.json; Cursor: .cursor/mcp.json) and add:

{
  "mcpServers": {
    "pokemon-mcp-go": {
      "command": "<absolute-path-to>\\pokemon-mcp-server\\pokemon-mcp-go.exe",
      "args": []
    }
  }
}

Client config (SSE)

Run the server yourself and point the client to the SSE URL.

./pokemon-mcp-go.exe --sse

Then add to your client's MCP config (Claude Desktop or Cursor):

{
  "mcpServers": {
    "pokemon-mcp-go-sse": {
      "url": "http://localhost:8080/sse"
    }
  }
}

Restart your client after editing the config. For SSE, start the server before opening the client.

Tools

  • get_pokemon: Get information about a Pokémon by name or ID
  • get_pokemon_type: Get information about a Pokémon type
  • get_pokemon_ability: Get information about an ability
  • search_pokemon_by_type: List Pokémon names by type (with limit)
  • get_random_pokemon: Fetch a random Pokémon
  • compare_pokemon: Compare two Pokémon stats side-by-side

Verify SSE manually

SSE is a stream; a simple 200 OK indicates the endpoint is reachable.

curl -v http://localhost:8080/sse

You can also probe the message endpoint (may 400 without a body, which still proves routing):

curl -v -X POST http://localhost:8080/sse/message

To confirm the port is listening:

Get-NetTCPConnection -LocalPort 8080

MCP Inspector (debug)

Use MCP Inspector to explore and test tools.

  • Stdio connection:

    1. Open MCP Inspector → Add server → Stdio
    2. Command: set to the absolute path of your binary, e.g. <absolute-path-to>\pokemon-mcp-server\pokemon-mcp-go\pokemon-mcp-go.exe
    3. Args: leave empty
    4. Save and connect
  • SSE connection:

    1. Run the server first: ./pokemon-mcp-go/pokemon-mcp-go.exe --sse
    2. Open MCP Inspector → Add server → SSE
    3. URL: http://localhost:8080/sse
    4. Authorization header: disable it (this server does not require auth)
    5. Select 'Connected Type' as 'Via Proxy'
    1. Save and connect

If you see "Invalid Authorization Header", turn off the Authorization header or provide a token; the server does not enforce auth by default.

Troubleshooting

  • PowerShell refuses to run exe in current directory:
    • Use .\pokemon-mcp-go.exe or full path: & "\pokemon-mcp-go.exe".
  • SSE cannot connect:
    • Ensure the process printed Starting SSE server on localhost:8080.
    • Verify curl -v http://localhost:8080/sse returns 200.
    • Check port is listening: Get-NetTCPConnection -LocalPort 8080.
    • Windows Firewall: allow the app on first run or add a rule for port 8080.
    • Make sure stdio config is disabled if you switch to SSE (avoid duplicate entries with same name).
  • MCP Inspector shows "Invalid Authorization Header":
    • This server does not require Authorization. In Inspector, disable the Authorization header or provide a token value. The error comes from Inspector config, not this server.
  • Port 8080 already in use:
    • Find process: netstat -ano | findstr :8080 and stop it, or change the port in code if needed.
  • Proxy/VPN issues:
    • Some VPNs/proxies interfere with localhost. Temporarily disable or add an exception.

Notes

  • Current SSE port is hard-coded to 8080. If you need a configurable port, add a --port flag and pass it to the SSE server start call.
  • Responses are formatted as Markdown text for readability in chat UIs.

Docker (optional)

Run the server in a container (SSE on port 8080):

cd pokemon-mcp-server
docker build -t pokemon-mcp-go .
docker run --rm -p 8080:8080 pokemon-mcp-go

Then connect your client via SSE URL http://localhost:8080/sse (see config above). To pass a different port, update the container port mapping and the URL accordingly.