PokePaste MCP: Build Pokémon Teams with Claude (2026)
PokePaste (pokepast.es) is the pastebin of competitive Pokémon — the plain-text team format every VGC and Smogon player shares teams in. The PokePaste MCP server connects that format to AI agents: Claude drafts a team, calls one tool, and hands you a live pokepast.es link. This guide covers both — what the format is, what the server adds, install for every MCP client, four real team-building recipes, and the legality gotchas that will get your AI-drafted team bounced by Showdown’s validator.

TL;DR
- PokePaste = pokepast.es, the team-sharing site of competitive Pokémon. Paste a team in Showdown’s export format, get a syntax-highlighted URL. Free, no account, open source.
- The PokePaste MCP server (
pokemon-paste-mcpon npm, MIT, by an active VGC competitor) gives your AI agent one tool:create_pokepaste. Structured set data in, live pokepast.es URL out. - Install is one line, zero keys:
claude mcp add pokemon-paste -- npx pokemon-paste-mcpfor Claude Code, or the JSON snippet from the install card below for everything else. - The catch: nothing in this chain validates legality. Claude will occasionally draft a move a Pokémon can’t learn, and pokepast.es will host it without complaint. Showdown’s team validator stays in the loop.
What PokePaste is (the format and the site)
If you searched “pokepaste” looking for the team-sharing site: it lives at pokepast.es. It does one thing — you paste a Pokémon team as plain text, it gives you a clean URL with sprites and syntax highlighting. No account, no expiry drama, no ads. It has been the default way to share competitive teams for years; when a VGC player says “drop the paste,” this is the paste.
The format itself predates the site — it’s the export format of Pokémon Showdown, the browser battle simulator. A team is up to six blocks of text separated by blank lines. One block, straight from pokepast.es’s own syntax guide:
Talonflame @ Flyinium Z
Ability: Gale Wings
EVs: 252 Atk / 4 Def / 252 Spe
Jolly Nature
- Brave Bird
- Flare Blitz
- Swords Dance
- RoostFirst line: species, optional nickname in front, optional item after the @. Then ability, EVs (effort values — the 510 points you distribute across stats, max 252 per stat), nature, and up to four moves. Everything is optional with sensible defaults: unspecified EVs are 0, unspecified IVs are 31, level is assumed 100 — or 50 for VGC, the official doubles format. Tera Types, shininess, and levels all have one-line syntax.
Why this matters for the rest of the article: the paste format is plain text with a stable grammar. That makes it the perfect interface between competitive Pokémon and a language model — Claude can read it natively, and with one MCP tool it can write it to the canonical sharing site too. The site is open source, by the way, which is part of why the community trusts links to it in tournament threads.
What the MCP server adds
The PokePaste MCP server (jpbullalayao/pokemon-paste-mcp, MIT, TypeScript) closes the last step of an AI-assisted teambuilding session. MCP — the Model Context Protocol, the open standard that lets AI clients call external tools — is the plumbing; if that sentence didn’t parse, start with What is MCP? and come back.
Without the server, a teambuilding chat ends with six blocks of text in a chat window that you copy, paste into pokepast.es, and submit by hand. With it, the session ends with Claude calling create_pokepaste and replying with a real pokepast.es/... URL — titled, authored, annotated, ready to drop in your team chat or Discord. Small step, but it is the difference between “AI helped me think” and “AI produced the artifact.”
The maintainer detail worth knowing: the author goes by Professor Ragna and is an active VGC competitor — the same developer ships a companion Pokémon VGC Damage Calculator MCP server that wraps the Smogon damage-calc library. The two servers compose: the calculator answers “does this spread survive Flutter Mane’s Moonblast,” and this one publishes the team that came out of that question. Run both and Claude becomes a passable teambuilding partner with receipts.
Architecture, in one breath: it’s a local stdio server — your MCP client launches it as a subprocess via npx. No API key, no account, no rate-limit negotiation, no config beyond the launch command. The only network call it makes is the paste upload to pokepast.es.
Install (every client)
The server is stdio-only and dependency-free to configure. The install card below generates the exact snippet for Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, and the manual JSON fallback — it stays in sync with the canonical /servers/pokepaste catalog entry.
One-line install · Pokepaste
Open server pageInstall
Client-specific notes:
- Claude Code:
claude mcp add pokemon-paste -- npx pokemon-paste-mcp. That’s the whole thing — no-eflags because there are no env vars. See /clients/claude-code for scope flags. - Claude Desktop: add the JSON block to
claude_desktop_config.jsonand restart:
{
"mcpServers": {
"pokemon-paste": {
"command": "npx",
"args": ["pokemon-paste-mcp"]
}
}
}- Cursor / Windsurf / VS Code: same JSON shape in
~/.cursor/mcp.json,~/.codeium/windsurf/mcp_config.json, or your MCP extension’s settings respectively. See /clients/cursor. - Sanity check: restart the client and ask “what Pokémon tools do you have?” — you should see
create_pokepastein the answer. If not, confirm Node 18+ is on your PATH (the server runs throughnpx).
The tool: create_pokepaste
One server, one tool. create_pokepaste takes a required pokemon array plus three optional metadata fields — title, author, and notes — and returns a pokepast.es URL. Each entry in the array is a structured set object mirroring the paste grammar:
{
"species": "Pikachu",
"item": "Light Ball",
"ability": "Static",
"moves": ["Thunderbolt", "Quick Attack", "Iron Tail", "Agility"],
"nature": "Jolly",
"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,
"teraType": "Electric"
}The full schema also covers name (nickname), gender, shiny, happiness, pokeball, hpType, and the Gen 8 holdovers dynamaxLevel and gigantamax — the server speaks every dialect of the paste format, not only the current generation’s. In practice you never write this JSON yourself. You talk teams in plain English; Claude assembles the objects, fills the 31-IV defaults, sets level: 50 for VGC, and fires the call. The JSON is the contract between the model and the server, not between you and the model.
Two field-level notes that save debugging time. First, evs and ivs use the six lowercase keys above — if you hand-craft a call in the MCP Inspector and write spA, the stat silently lands wrong. Second, the server formats and uploads; it does not verify that Pikachu can learn Iron Tail in the current games. More on that in the limitations section, because it matters more than it sounds.
Recipes
Four workflows where the server earns its slot in your config. All assume it’s installed and that you mention the format you’re building for — models do meaningfully better when you pin the ruleset in the prompt.
Recipe 1 — Draft a VGC team and get a link
Prompt: “Build me a VGC doubles team for the current regulation around Trick Room. Level 50, full EV spreads with natures and items, four moves each. Explain each slot in one line, then create a pokepaste titled ‘TR draft v1’.” Claude drafts six sets, reasons about mode coverage, then calls create_pokepaste and returns the URL. The good drafts come when you constrain it: name three Pokémon you want, state the regulation explicitly, and paste in current usage stats if you have them. Unconstrained, the model reaches for whatever meta it remembers best — which may be two regulations stale.
Recipe 2 — Analyze an opponent’s paste
The server can’t fetch a paste by URL (write-only tool), but it doesn’t need to — a paste is plain text. Open the opponent’s link, copy the six blocks, and prompt: “Here’s the team I keep losing to. What’s the win condition, what are the speed tiers at level 50, and which of my six (paste yours too) should I bring?” Claude parses the format natively. Pair it with the VGC damage calculator server and the matchup analysis comes with actual damage rolls instead of vibes — then end the session by pasting your adjusted team back out as a fresh link.
Recipe 3 — Turn messy notes into a clean paste
You have a team scattered across screenshots, a notes app, and memory: “the Amoonguss is 252 HP max SpD Sassy, zero Speed IVs, Sitrus.” Prompt Claude with the mess and ask for a paste. It normalizes nicknames, fills default IVs, formats EV lines, and ships a titled, authored paste with your damage benchmarks in the notes field. This is the quiet killer use case — less “AI builds my team” and more “AI does the data entry I’ve been putting off since the last regional.”
Recipe 4 — EV-spread sanity check before you queue
Before sharing a draft, run an audit pass: “Check every spread on this team: totals must not exceed 510, no stat above 252, flag physical attackers with special-attack-boosting natures and vice versa, and flag any obviously wasted points at level 50. Then re-paste the fixed version.” Arithmetic and consistency checks are exactly what you want to delegate; judgment calls (is 4 HP or 4 Def better on this slot?) are where you stay in the loop. The output is a corrected paste link plus a diff of what changed — a genuinely nice pre-tournament ritual.
Limitations — and what we got wrong
Honest constraints, including two assumptions we had to unlearn while testing.
- We assumed there was a read tool. There isn’t. The server exposes
create_pokepasteand nothing else — it writes pastes, it never fetches them. We spent ten minutes asking Claude to “open this paste” before checking the tool list. The workaround is built into the format: pastes are plain text, so copy-paste the body into chat. Fine in practice, but know it going in. - We assumed Claude knew the current regulation. It confidently didn’t. VGC regulations rotate several times a year; model training data lags. Our first unconstrained draft mixed Pokémon from two different rulesets. The fix is cheap — state the regulation and legal Pokémon pool in the prompt, or paste in a usage-stats snippet — but without it you get a museum team.
- No legality validation anywhere. The server formats and uploads; pokepast.es hosts whatever parses. An illegal moveset sails through both and dies at Showdown’s team validator (or worse, at tournament registration). Validate-before-queue is non-negotiable.
- Pastes are public by link. pokepast.es has no auth — anyone with the URL sees the team. If Claude just helped you cook secret tech for a regional, maybe don’t post the link in a public Discord before you play it.
- Single-maintainer hobby project. Small, focused, MIT-licensed — which is fine for a tool with one job and no credentials, but don’t expect an enterprise release cadence. The upside of the tiny surface: there is very little to break.
What the community thinks of AI teambuilding
Competitive Pokémon met AI teambuilding before MCP existed, and the reception is a useful calibration. A widely upvoted r/VGC thread from the early ChatGPT era asked it to build a VGC team. The top comment: honestly better than the first team the poster ever built — barring the illegal moveset. Further down, the greatest hits: a “Jolly Flamethrower Arcanine” (an attack-natured Pokémon running a special move), a U-turn on a Pokémon that can’t learn it, and one commenter christening the bot “a 252/252/4 Andy” — slang for a player who only ever uses the default max-max spread.
That thread is the contrarian voice this article needs, and it maps exactly onto what this MCP server does and doesn’t fix. The server fixes the output half: AI drafts now arrive as clean, shareable, correctly formatted pastes instead of screenshots of chat. It does not fix the judgment half: legality, current-regulation awareness, and spread creativity still come from you, your usage stats, and the validator. The teams got more shareable; whether they got better is still your job.
On the maintainer side there’s no launch tweet to embed — we checked the author’s X timeline (@professorragna), which is mostly VGC tournament play and Knicks games, and found no first-party post about the server. We’d rather skip the embed than fake the signal; the GitHub repo and npm package are the primary sources here.
The Verdict
Our Take
Install it if you play competitive Pokémon and use any MCP client — it’s a zero-config, zero-key, one-line install that turns AI teambuilding chats into shareable artifacts, and it pairs beautifully with the same author’s damage-calculator server. Skip it if you wanted an AI that reads pastes or validates legality — it does neither, and pretending otherwise is how you end up registering a Flamethrower Arcanine with an attack nature.
Browse the broader catalog at mcp.directory/servers — if game-adjacent servers are your thing, the Chess MCP server scratches a similar itch for a different board.
FAQ
What is PokePaste?
PokePaste (pokepast.es) is the pastebin of competitive Pokémon. You paste a team in the plain-text format Pokémon Showdown exports — species, item, ability, EVs, nature, four moves — and get a clean, syntax-highlighted URL you can share. It is the standard way VGC and Smogon players publish teams, and most tournament team sheets start life as a paste.
What is the PokePaste MCP server?
An open-source MCP server (jpbullalayao/pokemon-paste-mcp on GitHub, `pokemon-paste-mcp` on npm) that gives AI agents one tool: create_pokepaste. Your agent — Claude Desktop, Claude Code, Cursor, or any MCP client — passes structured Pokémon set data and gets back a live pokepast.es URL. It turns 'Claude drafted me a team in chat' into 'Claude handed me a shareable link.'
Can Claude build a VGC team?
Claude can draft a coherent team — archetype, roles, items, EV spreads — and with this MCP server it can publish the result as a real paste. What it cannot guarantee is legality or meta-currency: models sometimes invent move combinations and lag the current regulation. Pin the regulation in your prompt, feed it current usage data, and always run the paste through Pokémon Showdown's team validator.
Is the PokePaste MCP server free?
Yes, completely. The server is MIT-licensed open source, runs locally over stdio via `npx pokemon-paste-mcp`, needs zero API keys or accounts, and pokepast.es itself is a free service. The only cost is whatever you already pay for your AI client.
Can the MCP server read an existing paste?
No — the server ships exactly one tool, create_pokepaste, and it only writes. There is no fetch-by-URL tool. The practical workaround: a paste is plain text, so open the pokepast.es link, copy the text, and paste it straight into your chat. The format is the interface; Claude parses it natively.
Does it check whether my sets are legal?
No. Neither pokepast.es nor the MCP server validates legality — a paste will happily host a Pokémon with an unobtainable move or a 600-EV spread. Pokémon Showdown's team validator remains the gate. Treat the paste as a draft artifact and validate before you queue.
Which MCP clients does it work with?
Any client that speaks MCP over stdio: Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, and others. The config is a one-liner — `npx pokemon-paste-mcp` with no environment variables. The install card in this guide generates the exact snippet for each client.
Sources
- Server source: github.com/jpbullalayao/pokemon-paste-mcp (MIT) and the pokemon-paste-mcp npm package
- PokePaste format reference: pokepast.es/syntax.html and the site’s source at github.com/felixphew/pokepaste
- Community signal: r/VGC — “I asked chatGPT to build a VGC team”
- Companion server by the same author: /servers/pokemon-vgc-damage-calculator
- Canonical MCP.Directory entry: /servers/pokepaste
- New to the protocol? /blog/what-is-mcp
Companion server
Pokémon VGC Damage Calculator MCP
OpenExplainer
What is the Model Context Protocol?
ReadDirectory
Browse 3,000+ MCP servers
BrowseFound an issue?
If something in this guide goes stale — a new tool on the server, a pokepast.es change, a regulation-aware fork worth covering — email [email protected] or read more on our about page. We keep these guides current.