Koskamo

PokeInvest MCP

Official MCP server providing Pokemon card market data including median prices from completed sales, PSA population reports, price history, and card identification tools for agents.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

PokeInvest MCP logo, by PokeInvestVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by PokeInvest
You need:A free key, issued instantly, 1,000 calls a month on every endpointSend it as the X-API-Key header
MCP endpoint (Streamable HTTP)
https://www.pokeinvest.io/mcp
Vendor documentation

What its tools do

8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

8 of 8 have a description · 8 of 8 declare behavior hints · 8 of 8 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to pokeinvest.io ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for Pokemon cards by name or set
  • Retrieve median prices for specific grades
  • Access PSA population and gem rate data
  • Identify cards from uploaded images

Source and maintenance

Vendor evidenceRegistry 1.0.1

Protocol and capabilities

Server
pokeinvest 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Pokemon card prices (median of completed sales per grade), PSA/CGC populations, price and population history, the sales behind each price, and verified eBay deals. Start with search_cards to get an ID, then get_card_prices. Quote the grade, median, sale count and date, and link page_url. buy_url and deal links are PokeInvest affiliate links.

Tools

8 advertised

search_cards
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find Pokemon cards by name, set or number. Returns PokeInvest IDs to pass to the other tools, with the ungraded and PSA 10 price when known. Example: "Charizard base set 4", "Umbreon VMAX 215".

search_cards input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 8,
      "maximum": 25,
      "minimum": 1,
      "description": "How many cards to return, 1-25 (default 8)"
    },
    "query": {
      "type": "string",
      "description": "Card name, optionally with set and/or number"
    }
  }
}
search_cards annotations
{
  "title": "Search cards",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_card_prices
Advertised by the server during the last successful anonymous check.
Advertised read-only

What a card sells for: the median of completed sales for ungraded copies and for every grade at PSA, CGC, BGS, TAG, ACE and SGC, with sale counts, window, low/high, the newest sale, PSA and CGC population totals, the card page, a buy link, and the cheapest verified live eBay copy when one exists.

get_card_prices input schema
{
  "type": "object",
  "required": [
    "card"
  ],
  "properties": {
    "card": {
      "type": "string",
      "description": "PokeInvest ID (pi_16322), the numeric ID from a PokeInvest card URL, or a card name like \"Gengar ex 108 FireRed LeafGreen\" (best match is used)"
    }
  }
}
get_card_prices annotations
{
  "title": "Get card prices",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_population
Advertised by the server during the last successful anonymous check.
Advertised read-only

PSA population report for a card: copies graded at each grade, total, gem rate and when it was last updated.

get_population input schema
{
  "type": "object",
  "required": [
    "card"
  ],
  "properties": {
    "card": {
      "type": "string",
      "description": "PokeInvest card ID (pi_16322, from search_cards), the numeric ID in a PokeInvest card URL, or a card name such as \"Umbreon Gold Star POP Series 5\" (best match is used)"
    }
  }
}
get_population annotations
{
  "title": "Get population",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_price_history
Advertised by the server during the last successful anonymous check.
Advertised read-only

Weekly price per grade back to 2022: date, median, sale count, window.

get_price_history input schema
{
  "type": "object",
  "required": [
    "card"
  ],
  "properties": {
    "card": {
      "type": "string",
      "description": "PokeInvest card ID (pi_16322, from search_cards), the numeric ID in a PokeInvest card URL, or a card name such as \"Umbreon Gold Star POP Series 5\" (best match is used)"
    }
  }
}
get_price_history annotations
{
  "title": "Get price history",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_population_history
Advertised by the server during the last successful anonymous check.
Advertised read-only

PSA population over time for a card (total, PSA 10, PSA 9 by date).

get_population_history input schema
{
  "type": "object",
  "required": [
    "card"
  ],
  "properties": {
    "card": {
      "type": "string",
      "description": "PokeInvest card ID (pi_16322, from search_cards), the numeric ID in a PokeInvest card URL, or a card name such as \"Umbreon Gold Star POP Series 5\" (best match is used)"
    }
  }
}
get_population_history annotations
{
  "title": "Get population history",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_sales
Advertised by the server during the last successful anonymous check.
Advertised read-only

The completed sales behind a price: date, price, grader and grade, platform, listing title. Up to 500 newest; filter by grade ("PSA 10", "RAW") and days.

get_sales input schema
{
  "type": "object",
  "required": [
    "card"
  ],
  "properties": {
    "card": {
      "type": "string",
      "description": "PokeInvest card ID (pi_16322, from search_cards), the numeric ID in a PokeInvest card URL, or a card name such as \"Umbreon Gold Star POP Series 5\" (best match is used)"
    },
    "days": {
      "type": "integer",
      "maximum": 1095,
      "minimum": 1,
      "description": "Only sales from the last N days, 1-1095; omit for all on file"
    },
    "grade": {
      "type": "string",
      "description": "Only this grade, e.g. \"PSA 10\", \"CGC 9.5\", \"BGS 9.5\", or \"RAW\" for ungraded; omit for all"
    }
  }
}
get_sales annotations
{
  "title": "Get sales",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
identify_card_photo
Advertised by the server during the last successful anonymous check.
Advertised read-only

Identify a Pokemon card from a photo URL (raw card or slab, any angle): the top candidates with PokeInvest IDs, prices and population. 91% right card on 1,000 real eBay photos, 95% in the top 3. Same-art variants (1st Edition, reverse holo) cannot be told apart; show the top 3.

identify_card_photo input schema
{
  "type": "object",
  "required": [
    "image_url"
  ],
  "properties": {
    "image_url": {
      "type": "string",
      "description": "public https URL of the photo"
    }
  }
}
identify_card_photo annotations
{
  "title": "Identify card photo",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_deals
Advertised by the server during the last successful anonymous check.
Advertised read-only

Today's best verified eBay deals across every card: live listings priced under what the card sells for at that grade (title, photo and price all checked), with the saving and a buy link.

get_deals input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 30,
      "minimum": 1,
      "description": "How many deals to return, 1-30 (default 10)"
    },
    "min_total_usd": {
      "type": "number",
      "default": 25,
      "description": "Skip listings cheaper than this many US dollars including shipping (default 25)"
    }
  }
}
get_deals annotations
{
  "title": "Get deals",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
990 ms
95th percentile latency
990 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 990 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http pokeinvest-mcp https://www.pokeinvest.io/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add pokeinvest-mcp --url https://www.pokeinvest.io/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable pokeinvest-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "pokeinvest-mcp": {
      "url": "https://www.pokeinvest.io/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "pokeinvest-mcp": {
      "type": "streamableHttp",
      "url": "https://www.pokeinvest.io/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start pokeinvest-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "pokeinvest-mcp": {
      "type": "http",
      "url": "https://www.pokeinvest.io/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http pokeinvest-mcp https://www.pokeinvest.io/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.pokeinvest.io/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "pokeinvest-mcp": {
      "serverUrl": "https://www.pokeinvest.io/mcp"
    }
  }
}

Let your agent find its tools

Find servers like PokeInvest MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run PokeInvest MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing