Skip to main content
Glama

Pokédex MCP Server

A local Model Context Protocol server that exposes a public, read-only Gen I Pokédex knowledge base (National Pokédex #001–#025) to Claude Desktop.

It fetches plain Markdown directly from the public GitHub repository alexverdin/llm-pokedex-demo over raw.githubusercontent.comno authentication, no tokens, no git clone, no database. Downloaded files are held in an in-memory cache (default TTL: 10 minutes) so repeated queries don't re-download.

What it does

Tools (7):

Tool

Description

list_pokedex_entries

All 25 entries [{ id, name, types, file }]. Optional type filter (case-insensitive substring).

search_by_name

Entries whose name contains query (case-insensitive).

get_pokemon

Get one entry by id ("025") or name ("pikachu"). format: "parsed" (default), "markdown", "both".

get_base_stats

{ hp, attack, defense, spAtk, spDef, speed, total } as numbers.

compare_pokemon

Compare 2–6 ids; returns a Markdown table of types + all base stats.

rank_by_stat

Rank all 25 by stat (hp|attack|defense|spAtk|spDef|speed|total), order (asc|desc, default desc), limit (default 5).

get_evolution_chain

Evolution section text for an id/name + related entries resolved by scanning other files.

Resources (2):

  • pokedex://index — raw INDEX.md.

  • pokedex://pokemon/{id} — raw entry Markdown for a 3-digit id.

Related MCP server: Pokemon MCP Server

Requirements

  • Node.js ≥ 20 (node --version).

  • An MCP client — Claude Desktop and/or OpenCode.

Installation

git clone https://github.com/alexverdin/mcp-pokedex-demo.git
cd mcp-pokedex-demo
npm install
npm run build

Verify it starts (Ctrl+C to stop — it waits for a client on stdio):

npm start
# stderr: pokedex-mcp running on stdio (repo: alexverdin/llm-pokedex-demo@main)

Claude Desktop config

Add the server to claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Use an absolute path to the built entry point (dist/index.js):

{
  "mcpServers": {
    "pokedex": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/mcp-pokedex-demo/dist/index.js"]
    }
  }
}

Windows example (note the doubled backslashes):

{
  "mcpServers": {
    "pokedex": {
      "command": "node",
      "args": ["C:\\Users\\you\\mcp-pokedex-demo\\dist\\index.js"]
    }
  }
}

Restart Claude Desktop (fully quit and reopen) after editing the config. The server and its tools appear once Claude Desktop relaunches.

Optional flags

Point the server at a fork or tune the cache by adding flags to args:

"args": [
  "/ABSOLUTE/PATH/TO/dist/index.js",
  "--repo", "your-user/your-fork",
  "--branch", "main",
  "--ttl", "600000"
]
  • --repo accepts owner/repo or a full github.com URL. Default: alexverdin/llm-pokedex-demo.

  • --branch default: main.

  • --ttl cache lifetime in ms. Default: 600000 (10 min).

OpenCode config

OpenCode reads MCP servers from an opencode.json file. Add the server under the mcp block as a local (stdio) server, pointing command at the built entry point (dist/index.js).

Config file locations (project config overrides global):

  • Global: %USERPROFILE%\.config\opencode\opencode.json

  • Project: opencode.json in the repo root

Use an absolute path with doubled backslashes on Windows:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pokedex": {
      "type": "local",
      "command": ["node", "C:\\ABSOLUTE\\PATH\\TO\\mcp-pokedex\\dist\\index.js"],
      "enabled": true
    }
  }
}

macOS / Linux example:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pokedex": {
      "type": "local",
      "command": ["node", "/ABSOLUTE/PATH/TO/mcp-pokedex/dist/index.js"],
      "enabled": true
    }
  }
}

Restart the OpenCode session after editing. The server's tools then appear in the agent's tool list.

Optional flags (same as above) go in the command array after the script path:

"command": [
  "node",
  "C:\\ABSOLUTE\\PATH\\TO\\mcp-pokedex\\dist\\index.js",
  "--repo", "your-user/your-fork",
  "--branch", "main",
  "--ttl", "600000"
]

Example prompts

  • "List all Pokédex entries that are Fire type."

  • "Get the base stats for Pikachu."

  • "Compare Bulbasaur, Charmander, and Squirtle."

  • "What are the three fastest Pokémon in the Pokédex?"

  • "Show me the evolution chain for Charmander."

  • "Search for Pokémon whose name contains 'saur'."

Troubleshooting

  • Server not showing up: confirm the path in args is absolute and points at dist/index.js (not src/), and that you ran npm run build. Fully restart Claude Desktop.

  • node: command not found: Claude Desktop must find node on PATH. Use an absolute path to the node binary in command if needed (e.g. /usr/local/bin/node or the output of which node / where node).

  • Wrong Node version: requires Node ≥ 20 (node --version). ESM + global fetch depend on it.

  • Logs:

    • macOS: ~/Library/Logs/Claude/mcp*.log

    • Windows: %APPDATA%\Claude\logs\mcp*.log

    • The server writes its own diagnostics to stderr (stdout is reserved for the MCP protocol).

  • Network: the only outbound host is raw.githubusercontent.com. A 404 for an entry usually means an out-of-range id (valid ids are 001025).

Development

npm run dev     # tsx watch mode (rebuild-free)
npm run build   # compile to dist/
npm start       # run compiled server

Testing with MCP Inspector

MCP Inspector lets you call tools and read resources directly, no Claude Desktop / OpenCode needed.

npm run build
npx @modelcontextprotocol/inspector node dist/index.js

Terminal prints a URL with an auth token, e.g.:

http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=<token>

Open it in browser. Transport preset to stdio, command node dist/index.js. Click Connect, then:

  • Tools tab — pick a tool (e.g. get_pokemon), fill args (id: "025"), Run.

  • Resources tab — read pokedex://index or pokedex://pokemon/001.

To test against a fork or non-default flags, append them after the script path:

npx @modelcontextprotocol/inspector node dist/index.js --repo your-user/your-fork --ttl 600000

Ctrl+C in the terminal stops both Inspector and the server.

License

MIT — see LICENSE.

Available Tools

7 tools
compare_pokemonCompare PokémonA

Compare 2–6 entries. Returns a Markdown table of types + all base stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes3-digit ids, e.g. ["001","004","007"].

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose the output format (Markdown table with types and all base stats) and the valid input count, which is useful. However, it does not mention behavior for missing/invalid IDs, ordering of results, or whether all base stats includes hidden stats or just visible ones.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the core purpose and immediately followed by the output format. Every word earns its place; no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter schema and the absence of an output schema, the description adequately conveys both purpose and return format. It covers the range of inputs and the content of the returned table. Minor gaps like ordering or missing-entry behavior prevent a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single 'ids' parameter (pattern, min/max, description). The description adds no new parameter-level information beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action (compare), target (Pokémon entries), valid input count (2–6), and output (Markdown table). This distinguishes it from siblings like get_pokemon (single entry) and rank_by_stat (ranking, not direct comparison).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by 'Compare 2–6 entries', suggesting it is for multi-entry comparison rather than single-entry lookup. However, it does not explicitly contrast with alternatives like get_base_stats or rank_by_stat, nor does it state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_base_statsGet base statsA

Return { hp, attack, defense, spAtk, spDef, speed, total } as numbers for an id or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
nameNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the burden of behavioral disclosure. It states the return format (numbers) and input modes (id or name), which is minimal but functional for a simple read operation. It does not address edge cases like 'not found' or precedence when both id and name are provided, nor explicitly confirm read-only behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler words or redundant detail. It efficiently communicates the tool's purpose and output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup tool, the description covers the essential purpose and return shape. It lacks edge-case behavior, such as not-found handling or parameter precedence, and does not explicitly state if the operation is read-only (since no annotations are present). The output schema is also absent, so the return structure in the description is the only guide.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero description coverage, so the description must compensate. It adds that either 'id' or 'name' can be used, which clarifies the parameter usage. However, it does not specify name matching semantics (exact vs partial) or what happens if both are given, leaving room for ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Return { hp, attack, defense, spAtk, spDef, speed, total } as numbers for an id or name,' which is a specific verb ('return') and resource ('base stats'), distinguishing it from siblings like get_pokemon or compare_pokemon. It also scopes the input to an id or name, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used by providing an id or name, which is the core usage context. However, it does not explicitly mention alternatives or when to prefer this over get_pokemon, search_by_name, or compare_pokemon. The guidance is clear but not exclusionary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_evolution_chainGet evolution chainA

Return the Evolution section text for an id or name, plus related entries (other Pokémon whose Evolution text mentions this one, and any names this entry mentions).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
nameNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavior. It accurately describes the read-only return of text and related entries, but does not explain how invalid/missing inputs are handled or what happens when both id and name are provided. The core behavior is disclosed, but not exhaustively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose and includes necessary detail about related entries. It is concise and free of extraneous content, though the trailing clause adds slight complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool's return value is described at a high level, covering the text and related entries. However, without an output schema, the structure of the returned data is vague, and there is no mention of error behavior or preferred parameter. The simplicity of the tool makes this acceptable, but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description states 'for an id or name', which adds that either parameter can be used, but this is already implied by the schema having both properties. With 0% schema description coverage, this minimal clarification does not compensate for the lack of parameter-level detail. It does not explain mutual exclusivity, format of name, or precedence.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the Evolution section text for an id or name, plus related entries. This specific verb and resource distinguish it from sibling tools like get_pokemon or list_pokedex_entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving evolution-related text, but it does not explicitly state when to use it over alternatives. No exclusions or alternative tool references are provided, leaving usage context somewhat implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pokemonGet PokémonA

Get an entry by id (e.g. "025") or name (e.g. "pikachu"). Returns parsed data by default; use format to include raw Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
nameNo
formatNo"parsed" (default), "markdown", or "both".parsed

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the default return behavior ('parsed data') and the option to include raw Markdown, but does not cover error handling, exact response shape, or whether both id and name can be used together.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first delivers the core action and examples, second explains the format option. Zero wasted words, information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers the essential usage for a simple lookup tool: identification methods, return format expectations. However, without an output schema, the description does not explain what 'parsed data' actually contains, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only format has a description). The description adds practical meaning by giving id/name examples and explaining format's effect. It does not clarify whether id and name are mutually exclusive, but the 'or' phrasing implies it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specifically says 'Get an entry by id (e.g. "025") or name (e.g. "pikachu")' – a clear verb+resource with identification methods that distinguishes it from siblings like get_base_stats or get_evolution_chain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: this is for fetching a single Pokémon entry by id or name, with a format option. It does not explicitly mention exclusions or alternative tools, but the context leaves little ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_pokedex_entriesList Pokédex entriesA

Parse INDEX.md and return all entries as [{ id, name, types, file }]. Optional case-insensitive substring filter on type.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by type, e.g. "fire" (case-insensitive substring).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description discloses the source (INDEX.md), the exact return format, and the filtering behavior (case-insensitive substring). It does not mention error handling but is sufficient for a read-only listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with core action, no filler words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one optional parameter and no output schema; description covers the return shape and filter behavior. Missing edge-case handling but adequate for intended use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already includes a description for the 'type' parameter with 100% coverage. The tool description reiterates the same filter info without adding new meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description says 'Parse INDEX.md and return all entries as [{ id, name, types, file }]' which clearly states the action and output structure. This distinguishes it from siblings that focus on specific lookups or stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context: use when you need the full list of Pokédex entries, optionally filtered by type. It does not explicitly mention alternatives or when not to use, but the purpose is evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rank_by_statRank by statA

Rank all 25 entries by a base stat. order defaults to desc, limit defaults to 5.

ParametersJSON Schema
NameRequiredDescriptionDefault
statYesStat to rank by.
limitNoHow many to return (default 5).
orderNo"asc" or "desc" (default desc).desc

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavior. It mentions the fixed scope ('all 25 entries') and default values for order and limit, which is useful. However, it does not describe the output format, tie-breaking behavior, or whether it is a read-only operation, leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the primary action and followed by essential defaults. Every word adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple ranking tool with full parameter schema coverage and no output schema, the description adequately covers purpose and defaults. It does not explain the exact return shape, but this is a minor gap given the tool's simplicity and the context provided by sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides complete parameter descriptions and defaults (stat enum, limit default 5, order default desc). The description's mention of defaults duplicates schema information, adding no new semantic insight. Baseline of 3 applies due to 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Rank') and resource ('all 25 entries by a base stat'). This differentiates it from sibling tools like search_by_name or get_pokemon, which serve other purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case (ranking entries by a stat) but does not explicitly state when to prefer it over alternatives or provide exclusions. There is no mention of competing tools or circumstances where another tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_by_nameSearch by nameA

Return entries whose name contains the query (case-insensitive substring).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSubstring to match against names.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are given, so the description must relay behavioral traits. It discloses the case-insensitive substring matching, but does not mention return format, edge cases (e.g., no matches), sorting, or explicit read-only assurance. Since it uses 'Return,' it implies a non-mutating operation, but additional behavioral details would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that immediately communicates the action, resource, and matching constraint. There is no filler or unnecessary detail, exemplifying concise structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the core matching behavior well. However, it omits information about return value format, result limits, and pagination, which are relevant for an agent consuming the output. This leaves a noticeable gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the only parameter 'query' as a substring to match, and the description enriches this by specifying case-insensitivity and that matching targets the 'name' field. This adds value beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's action ('Return entries'), the target resource ('whose name'), and the matching behavior ('contains the query (case-insensitive substring)'). This distinguishes it from siblings like get_pokemon (exact lookup) and list_pokedex_entries (full list), making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly defines when to use this tool: when you need entries matching a case-insensitive substring of the name. It does not explicitly state alternatives or exclusions, but the distinct matching semantics provide clear context for appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: search by substring, retrieve full entry, retrieve stats, compare multiple, rank by stat, get evolution chain, and list entries with optional type filter. No two tools target the same operation, so selector confusion is unlikely.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (search_by_name, get_pokemon, get_base_stats, compare_pokemon, rank_by_stat, get_evolution_chain, list_pokedex_entries). Naming is uniform and predictable across the entire set.

Tool Count5/5

Seven tools is well-scoped for a focused Pokedex server, covering the core data access needs without unnecessary bloat. Each tool provides a distinct useful capability, fitting comfortably within the ideal 3–15 range.

Completeness5/5

The tool surface covers the full read-only lifecycle of the Pokedex domain: listing, searching, retrieving, detailed stats, comparisons, rankings, and evolution chains. There are no obvious dead ends or missing fundamental operations for the apparent scope (a 25-entry dataset).

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables users to retrieve Pokémon statistics, sprite images, and complete information using the PokeAPI. Supports querying by Pokémon name or ID number to get base stats, various sprite URLs including shiny variants, and comprehensive Pokémon data.
    5
    13
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides Pokemon information from PokeAPI including stats, types, height, and weight. Enables looking up Pokemon by name/ID, getting random Pokemon by type, and comparing Pokemon side-by-side.
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
  • A
    license
    A
    quality
    D
    maintenance
    Enables querying Pokemon information from PokeAPI, including Pokemon details, types, moves, abilities, evolution chains, and search functionality, through natural language.
    2
    8
    13
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexverdin/mcp-pokedex-demo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server