mcpField
T
TCG MCP

TCG MCP

本地服务
github.com/seanlok游戏娱乐125 周前更新

关于 TCG MCP

TCG MCP 是面向宝可梦集换式卡牌收藏者的 MCP 服务,可查询 PSA 鉴定与市场价格,并在本地管理收藏、关注列表和价格历史。

主要功能

  1. 01PSA 证书与评级查询
  2. 02本地收藏管理及估值
  3. 03多来源价格查询与历史快照
  4. 04目标价格关注列表
  5. 05PSA 人数趋势快照

适用场景

  1. 01查询 PSA 卡牌证书及图片
  2. 02记录卡牌或密封产品收藏
  3. 03比较价格并查看历史趋势
  4. 04按目标买入价追踪卡牌

MCP 相关

向 MCP 客户端提供 25 个工具,涵盖 PSA 数据、收藏、定价、目录和关注列表。CGC 与 BGS 工具目前为未实现的占位项。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"seanlok-tcg": {
"command": "uvx",
"args": [
"tcg-mcp"
],
"env": {
"PSA_API_TOKEN": "<PSA_API_TOKEN>",
"POKEMONTCG_API_KEY": "<POKEMONTCG_API_KEY>",
"PRICECHARTING_TOKEN": "<PRICECHARTING_TOKEN>",
"TCG_DB_PATH": "<TCG_DB_PATH>"
}
}
}
}
启动命令uvx tcg-mcp
需要配置的环境变量
PSA_API_TOKEN密钥PSA Public API bearer token. Get one at https://www.psacard.com/publicapi. If unset, PSA tools are disabled but other tools (Pokemon TCG API, collection, watchlist) still work.
POKEMONTCG_API_KEY密钥Pokemon TCG API key (optional). Without it the provider still works at a lower rate limit. Free key: https://dev.pokemontcg.io/
PRICECHARTING_TOKEN密钥PriceCharting API token (paid subscription required). Enables graded-card pricing.
TCG_DB_PATHWhere to put the local SQLite database. Default: ~/.tcg-mcp/tcg.db

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypitcg-mcp0.4.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

tcg-mcp

一款 Pokemon TCG MCP 服务。可查询经过评级的卡牌(目前支持 PSA,CGC/BGS 尚未实现),在本地 SQLite 数据库中管理已拥有的收藏,查询定价服务(Pokemon TCG API + PriceCharting),通过目标价格追踪关注列表,并记录 PSA 人数统计快照,以便查看随时间变化的趋势。

PyPI Python Downloads CI License: MIT

tcg-mcp 是一个 Model Context Protocol 服务。只需安装一次,将其接入 Claude Desktop / Claude Code / Cursor / 任何 MCP 客户端,即可让你的助手获得 25 个工具,用于处理 PSA 证书 数据、个人收藏和实时市场价格。


功能介绍 — 25 个工具,按命名空间划分

PSA 评级(tcg_psa_*) — 查询证书、获取卡牌正反面图片、记录并查看 随时间变化的人数统计快照;还提供一个工作流工具,可一次调用完成证书查询 并将卡牌记录为已拥有。

CGC / BGS(tcg_cgc_*、tcg_bgs_*) — 在 v0.2 中为占位工具;这两家评级机构均没有公开 API。为保持路由一致性而列出;如果任一机构发布 API,将可直接路由。

收藏(tcg_collection_*) — 添加未评级或已评级卡牌(或密封产品:ETB、补充包盒、UPC、铁盒),按筛选条件列出、更新成本基础、软删除(标记为已售出)或硬删除、将卡牌关联到定价条目、获取成本基础摘要,或获取实时市场估值(与最新定价快照进行关联)。

定价(tcg_pricing_*) — 搜索服务、获取完整报价(Pokemon TCG API 提供顶层市场价/低价/高价及各变体明细;PriceCharting 提供各评级等级的价格),将快照保存到本地数据库,一次调用批量记录所有已关联卡牌的快照(并考虑各服务的速率限制),以及将历史快照作为时间序列查询,用于趋势分析。

关注列表(tcg_watchlist_*) — 添加附带理由文本的目标买入价,按持有周期(翻转 / 持有 / 密封)列出、更新,并填写原因后关闭(已买入 / 理由失效 / 手动关闭)。

元数据(tcg_list_providers) — 用于发现的工具,可显示启用的评级和定价服务、各服务所需的环境变量,以及命名空间中的工具。

如需查看完整工具列表,请在安装后运行 tcg_list_providers,或阅读 架构文档。


前置条件

  1. Python 3.10 或更高版本(推荐 3.13)。
  2. MCP 客户端 — Claude Desktop、Claude Code、Cursor、Continue 等。
  3. (可选,仅用于 PSA 工具) PSA Public API 令牌 — 免费,可在 psacard.com/publicapi 注册获取。

无需任何令牌即可运行服务——全新安装且无需凭据,也能使用 Pokemon TCG API 查询、收藏和关注列表工具。


安装

选项 A — uvx(推荐,无需安装)
# install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh

# run the server (auto-installs the package on first use)
uvx tcg-mcp --help
选项 B — pipx
pipx install tcg-mcp
tcg-mcp --help
选项 C — pip
python3 -m pip install tcg-mcp
选项 D — 从源码安装(适用于贡献者)
git clone https://github.com/seanlok/tcg-mcp.git
cd tcg-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest        # run the test suite

配置

将 .env.example 复制为 .env,并填写你拥有的令牌:

cp .env.example .env
$EDITOR .env

也可以根据客户端支持的方式设置环境变量(大多数客户端允许在配置中为每个 MCP 服务指定 env)。

环境变量用途说明
PSA_API_TOKENPSA 工具获取令牌 — 免费
POKEMONTCG_API_KEY提高 Pokemon TCG API 速率限制(可选)获取密钥 — 免费
PRICECHARTING_TOKENPriceCharting 工具需要付费订阅
TCG_DB_PATH本地数据库位置默认值为 ~/.tcg-mcp/tcg.db

将其接入 MCP 客户端

Claude Desktop

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)、 %APPDATA%\Claude\claude_desktop_config.json(Windows)或 ~/.config/Claude/claude_desktop_config.json(Linux):

{
  "mcpServers": {
    "tcg-mcp": {
      "command": "uvx",
      "args": ["tcg-mcp"],
      "env": {
        "PSA_API_TOKEN": "your-token-here",
        "TCG_DB_PATH": "~/Documents/tcg-mcp.db"
      }
    }
  }
}

完全退出 Claude Desktop(macOS 上按 ⌘Q——仅关闭窗口还不够), 然后重新启动。

Claude Code
claude mcp add tcg-mcp -- uvx tcg-mcp

然后在运行 claude 的 shell 中导出你拥有的令牌。

Cursor / Continue / 等

格式相同——将客户端指向:

command: uvx
args:    ["tcg-mcp"]
env:     PSA_API_TOKEN=...    # optional

冒烟测试

接入客户端后,向它提问:

“使用 tcg-mcp 列出提供方。”

你应该会看到 pokemontcg 已启用;如果设置了令牌,psa 也会启用,其他提供方则显示为存根。

然后尝试实际查询:

“在 Pokemon TCG API 中搜索 Obsidian Flames 系列的 Charizard ex。”

“将一张 1999 Pokemon Base Set Charizard #4(未评级)添加到我的收藏中——于 2026-04-15 以 $250 购入。”

“将 Charizard ex Surging Sparks 添加到我的关注列表,目标买入价为 $180。”

“我的收藏成本是多少?”


架构简介

+----------------------+
|     MCP client       |  Claude Desktop, Cursor, etc.
+----------+-----------+
           | stdio (JSON-RPC)
+----------v-----------+
|     server.py        |  FastMCP — tool registration, validation
+----------+-----------+
           |
   +-------+-------+----------------+
   |               |                |
+--v--+         +--v--+        +----v----+
| psa |  ...    |pricing|      | storage |  SQLite — collection,
+--+--+         +--+----+      +----+----+  watchlist, pop trends,
   | httpx         | httpx          |       pricing snapshots
+--v---------------v----+      +----v----+
|  PSA / Pokemon TCG    |      | tcg.db  |
|  API / PriceCharting  |      +---------+
+-----------------------+

提供方抽象(providers/base.py、 pricing/base.py)使添加新的评级服务 或定价来源只需修改一个文件。请参阅 docs/adding-a-provider.md。


本地 SQLite 数据库

你的所有个人数据——收藏、关注列表、价格快照、流通量 快照——都存放在一个 SQLite 文件中。默认位置为 ~/.tcg-mcp/tcg.db。将 TCG_DB_PATH 指向你偏好的任意路径。

文件格式为标准 SQLite,因此你可以直接检查或备份数据:

sqlite3 ~/.tcg-mcp/tcg.db
.tables
SELECT subject, grade, acquisition_price FROM owned_cards WHERE status='owned';

数据库架构见 src/tcg_mcp/storage/schema.sql。 迁移仅向前进行且具备幂等性(可在每次启动时安全运行)。


已知限制

  • PSA 图片仅适用于 2021 年 10 月之后评级的卡牌。更早的 卡砖会返回空图片列表——这是上游 API 的限制,并非程序错误。
  • PSA 的 Brand 字段是其架构中最接近规范“系列名称”的字段。我们将其显示为 set_name;如需更细致地解析系列信息, 请查看原始数据。
  • CGC / BGS 提供方在 v0.2 中是存根。它们会列出以供发现, 但调用时会抛出 NotSupportedError。具体实现取决于评级机构是否发布公共 API,或是否明确决定支持适度抓取。
  • PSA 免费套餐的速率限制没有公开说明。如果你看到“PSA API rate limit exceeded”,请稍候或升级套餐。
  • PriceCharting 仅提供付费服务。未设置 PRICECHARTING_TOKEN 时,该提供方会注册为 disabled,无法获取评级卡牌价格——但 Pokemon TCG API 仍会提供未评级卡牌的市场价格。

路线图

持续约束:以下每个里程碑都以免费路径为默认方案。付费提供方(GemRate、eBay Marketplace Insights 等)仍为可选附加项,仅在配置相应密钥后启用。

  • ✅ v0.3 — 已发布:tcg_pricing_snapshot_collection、 tcg_pricing_get_history、按单件取整估值、更清晰的 PSA 429 错误消息、CHANGELOG.md。
  • ✅ **v0.4 — 已发布:**由 Pokemon TCG API 提供支持的目录工具(tcg_catalog_*)、支持与关注列表求交的 tcg_collection_set_completion、更丰富的 tcg_collection_search、智能路由的 tcg_pricing_get_card。
  • v0.5 — 支持 CGC(免费路径:适度抓取;可选付费 GemRate)。
  • v0.6 — 支持 BGS(免费路径:适度抓取;可选付费 GemRate)。
  • v0.7 — eBay 已售商品对比(免费路径:eBay Browse API + 抓取;可选付费 Marketplace Insights API)。

完整版本历史请参阅 CHANGELOG.md。


贡献

欢迎贡献。要添加新的评级或定价提供方,请参阅 docs/adding-a-provider.md。约定刻意保持精简:实现一个 Protocol 方法,根据凭据有条件地注册,并编写一个 mock-httpx 测试。

# Run tests + lint locally
pytest
ruff check .

免责声明

本项目独立运营,与 PSA、CGC、Beckett、The Pokemon Company、Nintendo、TCGPlayer、Cardmarket、PriceCharting 或任何其他组织均无关联。每次调用外部 API 均须遵守相应服务提供商的服务条款。


许可证

MIT — 详见 LICENSE。


来源 / 延伸阅读

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。