Pokemon Paste MCP Server
The Pokemon Paste MCP Server allows users to create and share Pokemon team configurations (pokepastes) from structured data.
Create Pokepaste URLs: Transform Pokemon set data into a shareable Pokepaste URL
Customize Team Metadata: Add optional details like title, author, and notes
Handle Complex Pokemon Data: Process detailed Pokemon information including EVs/IVs, moves, abilities, held items, nature, gender, level, and more
Support Advanced Features: Accommodate optional fields such as shiny status, Tera Type, Dynamax Level, Gigantamax, Pokeball type, happiness, and HP type
Integration Ready: Can be configured with MCP clients (Claude Desktop, Cursor) for seamless usage
Local and Remote Usage: Installable via npm or buildable from source
Provides installation of the Pokemon Paste MCP server through the npm registry for easy deployment.
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., "@Pokemon Paste MCP Servercreate a pokepaste for my rain team with Pelipper, Kingdra, and Ferrothorn"
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.
Pokemon Paste MCP Server
MCP server for creating Pokémon pastes (pokepastes)
Installation
From npm (Recommended)
npm install -g pokemon-paste-mcpFrom source
npm install
npm run buildRelated MCP server: Pokemon Showdown MCP Server
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 objectstitle(string, optional): Title for the pasteauthor(string, optional): Author namenotes(string, optional): Additional notes
Pokemon Set Object Structure:
{
"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:
{
"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:
{
"mcpServers": {
"pokemon-paste": {
"command": "npx",
"args": ["pokemon-paste-mcp"],
"env": {}
}
}
}Local development:
{
"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:
npm run build
npx @modelcontextprotocol/inspector node path/to/pokemon-paste-mcp/dist/index.jsIf you want to test the MCP server directly with your MCP client, use this complete test input:
{
"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
If you're interested in helping to fund this project, you can support me here. Any and all support is greatly appreciated!
License
MIT
Available Tools
1 toolcreate_pokepasteC
Create a Pokepaste from Pokemon set data
| Name | Required | Description | Default |
|---|---|---|---|
| pokemon | Yes | Array of Pokemon set objects | |
| title | No | Optional title for the paste | |
| author | No | Optional author name | |
| notes | No | Optional notes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'create,' implying a write operation, but does not address permissions, side effects, rate limits, or output format. For a creation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (with nested objects and many properties) and the absence of annotations and output schema, the description is insufficient. It does not explain behavioral aspects, usage context, or what the tool returns, leaving significant gaps for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the schema. The description does not add any additional meaning or context beyond what the schema provides, such as formatting rules or examples. Thus, it meets the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a Pokepaste from Pokemon set data.' It specifies the verb 'create' and the resource 'Pokepaste,' making it clear what the tool does. However, without sibling tools for comparison, it cannot be distinguished from alternatives, preventing a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or context for its application. It simply states what the tool does without indicating scenarios or constraints for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- First observed
create_pokepaste
TDQS
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.
Maintenance
Related MCP Connectors
Deploy HTML and Markdown as live URLs. Create, search, update, and manage pastes from any AI agent.
Create and manage short links, track clicks, and automate URL management
Paste short text, get a shareable URL. Read any by slug; create with an API key.
Free privacy-first URL shortener API. Shorten URLs with custom codes and automatic expiry. No tracking, no API keys required.
Related MCP Servers
- FlicenseCqualityDmaintenanceEnables interaction with live Pokémon data through PokeAPI, providing comprehensive Pokémon information, battle calculations, moveset validation, and team analysis. Supports searching Pokémon and moves, calculating stats, checking type effectiveness, and analyzing team synergies with in-memory caching for improved performance.9-
- AlicenseAqualityCmaintenanceProvides Pokemon Showdown competitive battle data to AI assistants, enabling lookup of Pokemon stats, moves, abilities, items, type matchups, and strategic information through natural language queries.85MIT
- FlicenseNot gradedqualityDmaintenanceEnables users to fetch detailed Pokémon data, build tournament squads, and simulate battles using PokéAPI. It also integrates Wikipedia to provide fun comparisons between Pokémon and their real-world animal inspirations.-
- FlicenseAqualityDmaintenanceProvides accurate competitive Pokémon information for Pokémon Champions, including damage calculation, type effectiveness, Pokémon data, and regulation legality checks.101-