PokeMCP Server - Pokémon Server with Model Context Protocol (MCP)
LocalAbout PokeMCP Server - Pokémon Server with Model Context Protocol (MCP)
PokeMCP Server exposes Pokémon lookups and calculations for MCP clients. It uses PokeAPI for Pokémon data and also computes battles and shiny encounter odds.
Key features
- 01Retrieve Pokémon details by name or ID
- 02Calculate battles between two Pokémon
- 03Estimate shiny encounter probability
- 04Built with Clean Architecture
Use cases
- 01Look up a Pokémon’s details
- 02Compare two Pokémon in a battle
- 03Estimate shiny odds across encounters
MCP support
An MCP server that exposes Pokémon information and calculation tools to MCP clients, using SSE for communication.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEPokeMCP Server - Pokémon Server with Model Context Protocol (MCP)
Description
PokeMCP Server is a server that provides Pokémon-related functionalities using the Model Context Protocol (MCP). The project allows querying information about Pokémon, calculating battle outcomes, and estimating shiny Pokémon encounter probabilities.
Features
- Retrieve Pokémon information through the PokeAPI
- Calculate battle results between two Pokémon
- Estimate probabilities for finding shiny Pokémon
- Built on Clean Architecture principles
- Implements the MCP protocol for client-server communication
Requirements
- .NET 9
- Internet connection (to access the PokeAPI)
Installation
-
Clone the repository:
git clone https://github.com/GuillermoRuizDev/PokeMCP-Server.git cd PokeMCP -
Restore dependencies:
dotnet restore -
Build the project:
dotnet build
Running the Application
Development Mode
To run the application in development mode:
dotnet run --project PokeMCP
By default, the application will run at:
- HTTP: http://localhost:3002
- HTTPS: https://localhost:7133
You can verify it's working by accessing http://localhost:3002/home in your browser, where you should see the message: "Pokemon MCP Server - Ready for use with SSE".
Integration with MCP Clients
To use this server from an MCP client (such as Semantic Kernel or compatible applications):
- Connect to the MCP server using an MCP client by adding the following json to the
mcp.jsonfile:
{
"servers": {
"pokeapi-mcp-server": {
"type": "sse",
"url": "http://localhost:3002/sse"
}
}
}
- Use the exposed tools to interact with the Pokémon functionalities
Project Structure (Clean Architecture)
PokeMCP/
├── Core/ # Domain Layer
│ ├── Entities/ # Domain entities
│ ├── Enums/ # Enumerations
│ └── Interfaces/ # Repository and service interfaces
├── Application/ # Application Layer
│ ├── DTOs/ # Data transfer objects
│ └── UseCases/ # Use cases and business logic implementation
├── Infrastructure/ # Infrastructure Layer
│ ├── Clients/ # External service clients (PokeAPI)
│ └── Repositories/ # Repository implementations
└── Tools/ # MCP tools for exposing functionality
MCP Server Usage
The server exposes the following functionalities through the MCP protocol:
PokeApiTool
GetPokemonInfo(pokemonName): Retrieves detailed information about a Pokémon by its name or ID.
PokeFunctionsTool
GetBattleResult(attacker, defender): Calculates the result of a battle between two Pokémon.ProbabilityFindingShiny(encounters, hasShinyCharm): Calculates the probability of finding a shiny Pokémon.
License
This project is licensed under the MIT License.
Contact
If you have questions or suggestions, feel free to open an issue or contact me at LinkedIn.
Acknowledgments
- PokeAPI for providing Pokémon data
- Model Context Protocol for the communication protocol
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.