mcpField
T
tabletopdb

tabletopdb

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

关于 tabletopdb

tabletopdb 为使用 BoardGameGeek 的 Agent 提供桌游目录、用户收藏和交易查询等功能,并通过 XML API2 获取数据。它同时提供命令行和 stdio MCP 服务;推荐结果基于类别启发式,而非学习模型。

主要功能

  1. 01搜索桌游并获取详情
  2. 02查询用户收藏与资料
  3. 03查看当前热门榜单
  4. 04查找待交易的收藏游戏
  5. 05按类别启发式推荐游戏

适用场景

  1. 01查找某款桌游及其详情
  2. 02检查用户收藏和交易列表
  3. 03浏览 BoardGameGeek 热门游戏
  4. 04按类别寻找其他游戏

MCP 相关

提供 stdio MCP 服务,将 BoardGameGeek XML API2 的搜索、详情、收藏、热门榜单、交易及推荐等操作作为工具开放给 MCP 客户端;调用需要 BGG_API_KEY。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-tabletopdb": {
"command": "npx",
"args": [
"-y",
"@reneturcios/tabletopdb"
]
}
}
}
启动命令npx -y @reneturcios/tabletopdb

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

安装包
npm@reneturcios/tabletopdb0.1.0
ocighcr.io/cloudcorprecords/tabletopdb:0.1.0

工具

10

收录的工具列表 · 更新于 1 周前

参数类型必填说明
typestring否要搜索的 BGG 项目类型;默认值为 boardgame。
querystring是要搜索的游戏标题。

详细介绍

tabletopdb

面向 Agent 的桌游工具:搜索 BGG 目录、获取游戏详情和收藏、查看热门榜单、查找交易和获取推荐——全部通过公开的 BoardGameGeek XML API2 实现。

tabletopdb 是基于文档中列出的 bgg-mcp 工具集(最初由 kkjdaniel 编写)进行的洁净室重建,完全根据其公开 README 中的工具列表重新编写。它复现了工具接口,以及针对 BGG XML API2 的请求和响应处理;未复制原项目的代码。

一个可执行文件提供两种用法:

  • 小型 CLI:tabletopdb <tool-name> '<json-arguments>'
  • stdio MCP 服务:tabletopdb mcp

要求

  • Node.js 20 或更高版本。
  • 环境中需要有 BoardGameGeek API 密钥:
export BGG_API_KEY="your-bgg-api-key"

每次调用都会发送 Authorization: Bearer $BGG_API_KEY。如果密钥缺失或为空,调用会在发出任何请求之前报错,并指出 BGG_API_KEY。

可选环境变量:

  • BGG_API_URL — 覆盖 API 基础地址(默认值为 https://boardgamegeek.com/xmlapi2)。
  • BGG_USERNAME — 你的 BGG 用户名;仅用于丰富 bgg-price 的身份信息输出。

CLI 用法

工具名称使用连字符,完全遵循文档中的写法:

tabletopdb bgg-search '{"query":"Catan"}'
tabletopdb bgg-details '{"id":13}'
tabletopdb bgg-collection '{"username":"someuser"}'
tabletopdb bgg-hot '{}'
tabletopdb bgg-user '{"username":"someuser"}'
tabletopdb bgg-price '{"id":13}'
tabletopdb bgg-trade-finder '{"username":"someuser","maxResults":10}'
tabletopdb bgg-recommender '{"id":13,"limit":5}'
tabletopdb bgg-rules '{"id":13}'
tabletopdb bgg-thread-details '{"threadId":123456}'
tabletopdb --version

退出代码:0 表示成功,1 表示 API/验证错误,2 表示用法错误(未知命令或 JSON 参数格式错误)。

MCP 用法

npx -y @reneturcios/tabletopdb mcp

MCP 客户端配置:

{
  "mcpServers": {
    "tabletopdb": {
      "command": "npx",
      "args": ["-y", "@reneturcios/tabletopdb", "mcp"],
      "env": { "BGG_API_KEY": "your-bgg-api-key" }
    }
  }
}

Docker:

docker run -i -e BGG_API_KEY="your-bgg-api-key" ghcr.io/cloudcorprecords/tabletopdb
docker run --rm -e BGG_API_KEY="your-bgg-api-key" ghcr.io/cloudcorprecords/tabletopdb bgg-hot '{}'

工具

BGG 以 XML 格式返回数据;内置的小型解析器会将响应转换为 JSON(属性会变为字段,重复元素会变为数组,混合内容中的元素文本会保留在 value 键下)。

工具参数功能
bgg-searchquery(必需)、type按名称搜索 BGG。type 默认为 boardgame。
bgg-detailsid(数字,必需)、type获取完整游戏详情和统计数据(/thing?id=&stats=1)。
bgg-collectionusername(必需)获取用户拥有的收藏(own=1&stats=1)。如果 BGG 返回 HTTP 202(正在准备收藏数据),则返回 {status: "accepted", note},而非报错——请稍后重试。
bgg-hottype获取当前 BGG 热门榜单。type 默认为 boardgame。
bgg-userusername(必需)获取 BGG 用户资料。
bgg-priceid(数字,必需)通过 BGG 解析游戏身份信息,并返回 {id, name, price_sources: [], note}。实时价格查询需要单独的价格数据提供方;请参阅“差距”。
bgg-trade-finderusername(必需)、maxResults获取状态标记为 fortrade 的收藏项目,返回 {username, for_trade, count}。
bgg-recommenderid(数字,必需)、limit按类别启发式推荐:获取游戏的第一个类别,搜索该类别,并返回最多 limit 款其他游戏(默认值为 10)。请参阅“差距”。
bgg-rulesid(数字,必需)返回 {id, name, description, bgg_url, note}——游戏的 BGG 描述和页面链接。完整规则可在 BGG 文件/维基中找到。
bgg-thread-detailsthreadId(数字,必需)获取论坛主题及其解析后的文章。

差距

  • bgg-price 提供的是身份信息,而非价格数据:原项目通过外部价格来源解析价格,但其 README 未说明这些来源,因此本次重建返回 BGG 解析出的身份信息、空的 price_sources 列表以及明确说明。
  • 出于相同原因,bgg-rules 提供的是信息,而非完整规则:它返回游戏描述和 BGG 官方页面;完整规则位于该页面的文件和维基中。
  • bgg-recommender 是基于类别的启发式推荐(共享第一个类别,排除源游戏),并非经过训练的推荐模型。
  • 收藏数据的 HTTP 202 语义被简化为单个 {status: "accepted", note} 对象;调用方可通过重试来轮询。
  • 构建此软件包时未调用实时 BGG;其行为仅通过 fake-fetch 测试样例验证。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, fake fetch only, no network
npm run dev     # run the CLI from source via tsx

许可证

MIT — 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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