Pokemon Paste MCP Server
# Pokemon Paste MCP Server
MCP server for creating Pokémon pastes (pokepastes)
<a href="https://glama.ai/mcp/servers/@jpbullalayao/pokemon-paste-mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@jpbullalayao/pokemon-paste-mcp/badge" alt="Pokemon Paste Server MCP server" />
</a>
## Installation
### From npm (Recommended)
```bash
npm install -g pokemon-paste-mcp
```
### From source
```bash
npm install
npm run build
```
## Usage
The server provides a `create_pokepaste` tool that accepts Pokemon set data and creates a Pokepaste URL.
### Tool: create_pokepaste
Creates a Pokepaste from an array of Pokemon set objects.
**Parameters:**
- `pokemon` (array, required): Array of Pokemon set objects
- `title` (string, optional): Title for the paste
- `author` (string, optional): Author name
- `notes` (string, optional): Additional notes
**Pokemon Set Object Structure:**
```json
{
"name": "string",
"species": "string",
"item": "string",
"ability": "string",
"moves": ["string", "string", "string", "string"],
"nature": "string",
"gender": "string",
"evs": {
"hp": 0,
"atk": 252,
"def": 0,
"spa": 4,
"spd": 0,
"spe": 252
},
"ivs": {
"hp": 31,
"atk": 31,
"def": 31,
"spa": 31,
"spd": 31,
"spe": 31
},
"level": 50,
"shiny": false,
"happiness": 255,
"pokeball": "Poke Ball",
"hpType": "Electric",
"dynamaxLevel": 10,
"gigantamax": false,
"teraType": "Electric"
}
```
**Example Usage:**
```json
{
"pokemon": [
{
"name": "Pikachu",
"species": "Pikachu",
"item": "Light Ball",
"ability": "Static",
"moves": ["Thunderbolt", "Quick Attack", "Iron Tail", "Agility"],
"nature": "Jolly",
"gender": "M",
"evs": { "hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252 },
"ivs": { "hp": 31, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 31 },
"level": 50
}
],
"title": "My Team",
"author": "Trainer"
}
```
### MCP Client Configuration
Configure your MCP client (Claude Desktop, Cursor, etc.):
**Using remote npm package:**
```json
{
"mcpServers": {
"pokemon-paste": {
"command": "npx",
"args": ["pokemon-paste-mcp"],
"env": {}
}
}
}
```
**Local development:**
```json
{
"mcpServers": {
"pokemon-paste": {
"command": "node",
"args": ["/path/to/pokemon-paste-mcp/dist/index.js"],
"env": {}
}
}
}
```
## Testing
### Local MCP Tool Testing
You can test the local MCP server using the MCP Inspector:
```bash
npm run build
npx @modelcontextprotocol/inspector node path/to/pokemon-paste-mcp/dist/index.js
```
If you want to test the MCP server directly with your MCP client, use this complete test input:
```json
{
"pokemon": [
{
"name": "Pikachu",
"species": "Pikachu",
"item": "Light Ball",
"ability": "Static",
"moves": ["Thunderbolt", "Quick Attack", "Iron Tail", "Agility"],
"nature": "Jolly",
"gender": "M",
"evs": { "hp": 0, "atk": 252, "def": 0, "spa": 4, "spd": 0, "spe": 252 },
"ivs": { "hp": 31, "atk": 31, "def": 31, "spa": 31, "spd": 31, "spe": 31 },
"level": 50,
"shiny": false
},
{
"name": "Charizard",
"species": "Charizard",
"item": "Charcoal",
"ability": "Blaze",
"moves": ["Flamethrower", "Air Slash", "Solar Beam", "Roost"],
"nature": "Modest",
"gender": "M",
"evs": { "hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252 },
"ivs": { "hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31 },
"level": 50,
"teraType": "Fire"
},
{
"name": "Alakazam",
"species": "Alakazam",
"item": "Life Orb",
"ability": "Magic Guard",
"moves": ["Psychic", "Focus Blast", "Shadow Ball", "Recover"],
"nature": "Timid",
"gender": "M",
"evs": { "hp": 4, "atk": 0, "def": 0, "spa": 252, "spd": 0, "spe": 252 },
"ivs": { "hp": 31, "atk": 0, "def": 31, "spa": 31, "spd": 31, "spe": 31 },
"level": 50,
"shiny": true,
"pokeball": "Ultra Ball"
}
],
"title": "Sample Competitive Team",
"author": "Pokemon Trainer",
"notes": "A balanced team with Pikachu as the main attacker, Charizard for coverage, and Alakazam for special sweeping."
}
```
This test input includes:
- Three diverse Pokemon with different roles
- Various optional fields (shiny, teraType, pokeball)
- Sample EV/IV spreads for competitive play
- Team metadata (title, author, notes)
The expected output should be a Pokepaste URL that you can visit to see the formatted team.
## Author's Note
Interested in the progress of this project? Feel free to follow the repo for live updates!
If you need to get a hold of me regarding this project, feel free to either:
- email me at professor.ragna@gmail.com
- tweet me [@professorragna](https://twitter.com/professorragna)
If you're interested in helping to fund this project, you can support me [here](https://www.buymeacoffee.com/professorragna). Any and all support is greatly appreciated!
## License
MITTDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools. The tool's purpose is clearly defined as creating Pokepastes from Pokemon set data, making it distinct by default.
The single tool name follows a clear verb_noun pattern (create_pokepaste), which is consistent and predictable. There are no other tools to compare against, so naming conventions cannot be inconsistent.
A single tool is too few for a server that appears to handle Pokemon paste creation, as it lacks essential operations like retrieving, updating, or deleting pastes. This minimal scope limits functionality and suggests an incomplete surface for the domain.
The server is severely incomplete, offering only creation without any read, update, or delete capabilities. This creates significant gaps, as agents cannot manage or access existing pastes, leading to potential dead ends in workflows.