Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Look up Pokémon, moves, abilities, items, natures, and type matchups from PokéAPI v2.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
MCP_LOG_LEVEL你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://pokeapi.caseyjhand.com/mcp打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"pokeapi": {
"command": "npx",
"args": [
"-y",
"@cyanheads/pokeapi-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add --transport http pokeapi https://pokeapi.caseyjhand.com/mcpclaude mcp add pokeapi --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/pokeapi-mcp-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"pokeapi": {
"url": "https://pokeapi.caseyjhand.com/mcp"
}
}
}粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"pokeapi": {
"command": "npx",
"args": [
"-y",
"@cyanheads/pokeapi-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"pokeapi": {
"type": "http",
"url": "https://pokeapi.caseyjhand.com/mcp"
}
}
}粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"pokeapi": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/pokeapi-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://pokeapi.caseyjhand.com/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
MCP_LOG_LEVEL env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
工具名称和描述与服务器在 2026年11月7日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。
pokeapi_get_pokemonGet a fully denormalized Pokémon dossier in a single call — base stats, types, abilities (with full English effect text), height/weight, resolved evolution chain, sprite URLs including official artwork, species flavor text, variety list, capture rate, growth rate, gender rate, le
pokeapi_get_type_matchupsGet the full offensive and defensive type effectiveness breakdown. Provide either a type name (e.g. "fire", "psychic") or a Pokémon identifier (name or PokéAPI Pokémon-record ID; a species name resolves to its default variety). For dual-type Pokémon, the defensive multipliers are
pokeapi_get_moveGet move details by name or numeric ID — type, damage class, power, accuracy, PP, priority, target, stat changes, status-effect chance, and full English effect text. Set include_learners=true to include the list of Pokémon that can learn the move. Move names are available from po
pokeapi_get_abilityGet ability details by name or numeric ID — full English effect text, short effect text, generation introduced, and the list of Pokémon that have the ability (including hidden-ability flag and slot). Ability names are returned by pokeapi_get_pokemon in the abilities array.
pokeapi_get_itemGet item details by name or numeric ID — effect text, category, versioned purchase and sell prices, fling power, item attributes (holdable, consumable, etc.), sprite URL, and Pokémon that commonly hold it.
pokeapi_get_natureGet nature details — the stat boosted (+10%), stat reduced (-10%), and preferred/disliked berry flavors. Omit the identifier to list all 25 natures at once. Natures are critical for competitive team-building: every non-neutral nature modifies two stats by ±10%.
pokeapi_find_pokemonFilter Pokémon by generation, type, regional pokédex, or egg group. Returns names and PokéAPI IDs; every returned name works as a pokeapi_get_pokemon identifier, where a species name resolves to its default variety. At least one of generation, type, pokedex, or egg_group is requi
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 cyanheads 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
在 47 毫秒内响应(HTTP 200)
无需登录
已读取 7 个工具描述,未发现针对 AI 的隐藏指令
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
两种方式都可以:安装在你的电脑上,或者连接云端版本。
GitHub 仓库最后更新于–,最新版本(0.3.0)于8天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Dialyne
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Real phone calls in France for AI agents: dial +33 numbers, menus, hold, AI disclosure.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
@cyanheads/pokeapi-mcp-server Look up Pokémon, moves, abilities, items, natures, and type matchups from PokéAPI v2 via MCP. STDIO or Streamable HTTP. 7 Tools • 2 Resources • 1 Prompt
Public Hosted Server: https://pokeapi.caseyjhand.com/mcp
Pokémon game data from PokéAPI: Pokémon, moves, abilities, items, and natures. Get a complete Pokémon profile in one call (stats, abilities, evolution, sprites), filter by generation, type, pokédex, or egg group, and compute dual-type matchups.
| Tool | Description |
|---|---|
pokeapi_get_pokemon | Denormalized Pokémon dossier in one call — stats, types, abilities, evolution chain, sprites, and species data |
pokeapi_get_type_matchups | Computed offensive and defensive type effectiveness for a type or Pokémon, with correctly composed dual-type matchups |
pokeapi_get_move | Move details — type, damage class, power, accuracy, PP, priority, stat changes, and effect text |
pokeapi_get_ability | Ability details — effect text and the Pokémon that have it, with hidden-ability flag and slot |
pokeapi_get_item | Item details — effect text, category, versioned prices, fling power, attributes, and common holders |
pokeapi_get_nature | Nature details — stat boost/penalty and berry flavor preferences; lists all 25 when called without an identifier |
pokeapi_find_pokemon | Filter Pokémon by generation, type, pokédex, or egg group, with name-token matching and pagination |
| Resource | Description |
|---|---|
pokeapi://pokemon/{identifier} | Pokémon dossier by name or PokéAPI Pokémon-record ID — same payload as pokeapi_get_pokemon without moves |
pokeapi://type/{typeName} | Type damage relations — raw multiplier table, offensive and defensive |
All resource data is also reachable via tools.
Request pokeapi_team_builder through your client's prompt picker with required arguments lead, opponent, and opponent_kind (pokemon or type). For example, the MCP prompts/get parameters are:
{
"name": "pokeapi_team_builder", "arguments": { "lead": "charizard", "opponent": "aerodactyl", "opponent_kind": "pokemon" } }
For a type opponent, use "opponent": "electric", "opponent_kind": "type". Retrieval returns instructions; the client then calls the existing tools to propose up to six verified members including the lead. The workflow asks for game/format restrictions and separates type-chart and base-stat observations from recommendations. It does not establish battle turn order, game legality, or guaranteed counters; a type opponent has no individual Speed.
pokeapi_get_pokemon toolidentifier; an unknown entry returns not_found. A species name resolves to its default variety (deoxys returns deoxys-normal, with resolvedFromSpecies: "deoxys").evolutionDetails alternative), varieties, capture and growth rates, gender ratio, and legendary/mythical flags in one dossier.include_moves (default false) adds the move summary; moveCount is always returned. game_version selects flavor text and falls back to the most recent English entry.pokeapi_get_type_matchups tooltype (type name) or pokemon (name or PokéAPI Pokémon-record ID); unknown entries return not_found.deoxys uses deoxys-normal); resolvedPokemon and resolvedFromSpecies report the match and are null for direct type queries.offensiveRelations (null for dual-type Pokémon) and defensiveMatchups, with dual-type defenses composed and immunity taking precedence.composedMultipliers carries 0, 0.25, 0.5, 1, 2, or 4 per attacking type; absent types also deal 1×.pokeapi_get_move toolnot_found.include_learners (default false) adds the list of Pokémon that can learn the move. learnersIncluded distinguishes an unrequested list from a requested list with no known learners.pokeapi_get_ability toolnot_found when the identifier resolves to no abilitypokeapi_get_item toolprices lists every version/currency row (versionGroup, currency, purchasePrice, sellPrice); null means not purchasable/sellable there, and an empty list means no price records. cost is the legacy Pokédollar cost, or null.not_found when the identifier resolves to no itempokeapi_get_nature toolidentifier (name or ID 1–25) is optional — omit it to return all 25 natures at once (isListAll: true)not_found when a provided identifier resolves to no naturepokeapi_find_pokemon toolgeneration, type, pokedex, and egg_group, combined with AND logic; query (at most 100 characters) adds per-token name matching within them. Unrecognized category names return invalid_filter.id and name entries for follow-up pokeapi_get_pokemon calls, with totalCount before paging. Type-only searches include forms; generation, pokédex, and egg-group filters return species. IDs are PokéAPI IDs, not dex numbers.appliedFilters echoes the filters, query tokens, limit, and offset that were applied. A call with no category returns no entries and a notice saying one is required.limit (default 50) and offset (default 0) paginate the filtered set. A page past the last match keeps totalCount and advises offset: 0; zero matches advise relaxing the filters.pokeapi://pokemon/{identifier} resourcepokeapi_get_pokemon with include_moves fixed to falseidentifier is a name or PokéAPI Pokémon-record ID, including form IDs; a species name resolves to its default varietynot_found when the identifier matches no Pokémon record and no speciespokeapi://type/{typeName} resourcetypeName is one of the 18 canonical Pokémon typesnot_found when the type name doesn't exist in PokéAPIBuilt on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
PokéAPI-specific:
pokeapi_get_pokemon fans out across /pokemon, /pokemon-species, /evolution-chain, and N /ability endpoints in two parallel tiers, returning one objectnot_found (invalid_filter for a search filter) without an upstream requesteffect_entries and flavor_text_entries are always filtered to language.name === 'en'; absent entries surface as null rather than a foreign-language stringAgent-friendly output:
pokeapi_get_type_matchups computes the effective matchup matrix from raw damage relations, so agents get a direct answer rather than raw tables to multiplypokeapi_get_pokemon lists all form variants so agents can identify and re-call with specific forms (Alolan, Galarian, Mega, Gigantamax)Connect to the hosted instance, no install:
claude mcp add --transport http pokeapi-mcp-server https://pokeapi.caseyjhand.com/mcp
Or run it locally:
claude mcp add pokeapi-mcp-server -- npx -y @cyanheads/pokeapi-mcp-server
For other clients, add this to the MCP config file:
{
"mcpServers": { "pokeapi-mcp-server": { "command": "npx", "args": ["-y", "@cyanheads/pokeapi-mcp-server"] } } }
No API key is required. For Docker or a source build, see Running the server.
| Variable | Description | Default |
|---|---|---|
POKEAPI_BASE_URL | PokéAPI base URL — override for local mirrors or proxies. | https://pokeapi.co/api/v2 |
POKEAPI_CACHE_TTL_SECONDS | How long to cache PokéAPI responses (seconds). | 21600 (6 h) |
POKEAPI_REQUEST_TIMEOUT_MS | Per-request timeout in milliseconds. | 10000 |
MCP_TRANSPORT_TYPE | Transport: stdio or http. | stdio |
| MCP_SESSION_MODE | HTTP session mode: `
只显示了开头部分;其余内容请在仓库中阅读