ArkhamDB MCP服务器

一个为AI助手提供Arkham Horror卡牌游戏数据库访问的MCP服务器。

  • by AdrianMeizoso
  • Kotlin
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 AdrianMeizoso/arkhamdb-mcp-server

使用说明

ArkhamDB MCP服务器

一个模型上下文协议(MCP)服务器,为克劳德等人工智能助手提供对 阿肯色州API 阿卡姆恐怖生活纸牌游戏。

特性

  • 卡片搜索:按姓名、派系、类型和特征搜索和过滤卡片
  • 卡片详情:获取特定卡的详细信息
  • 包装清单:列出所有可用的卡包和扩展
  • 甲板人员通道:从ArkhamDB检索公共甲板名单
  • HTTP缓存:尊重API缓存头以提高性能
  • MCP资源:为AI上下文提供对卡数据库的被动访问

先决条件

  • Java 21或更高版本
  • Gradle(包装内含)
  • Claude Desktop或兼容的MCP客户端

建筑

构建项目并创建一个胖JAR:

./gradlew shadowJar

可执行JAR将在以下位置创建 build/libs/arkhamdb-mcp-server-1.0.0-all.jar

安装

克劳德桌面版

将服务器添加到Claude Desktop配置文件中:

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

视窗: %APPDATA%\Claude\claude_desktop_config.json

Linux: ~/.config/Claude/claude_desktop_config.json

配置:

{
  "mcpServers": {
    "arkhamdb": {
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/arkhamdb-mcp-server-1.0.0-all.jar"
      ]
    }
  }
}

替换 /absolute/path/to/ 使用构建的JAR文件的实际路径。

重新启动克劳德桌面

更新配置后,重新启动Claude Desktop以加载服务器。

可用工具

搜索卡

搜索带有可选过滤器的Arkham Horror LCG卡。

参数:

  • name (可选):卡片名称子字符串搜索(不区分大小写)
  • faction (可选):按派系过滤(守护者、探索者、流氓、神秘主义者、幸存者、中立者)
  • type (可选):卡片类型(资产、事件、技能、调查员等)
  • traits (可选):卡片特征(武器、法术、盟友等)

示例查询:

  • “显示所有守护者卡”
  • “查找具有武器特征的卡片”
  • “搜索名为'Roland'的卡片”

get_card

通过特定卡的代码获取其详细信息。

参数:

  • code (必填):卡代码(例如罗兰银行的“01001”)

示例查询:

  • “01001卡是干什么的?”
  • “获取卡代码02110的详细信息”

list_packs

列出所有可用的卡包和扩展。

示例查询:

  • “列出所有卡包”
  • “有哪些可用的扩展?”

get_decklist

通过ID检索公共甲板清单。

参数:

  • id (必填):行李牌ID号

示例查询:

  • “给我看看甲板清单123”
  • “获取甲板清单456的详细信息”

可用资源

资源提供被动上下文,AI助手可以在没有明确工具调用的情况下引用。

arkhamdb://cards

阿卡姆恐怖LCG的完整卡片数据库。包含所有详细信息的卡片。

arkhamdb://packs

包含元数据的所有卡包和扩展的列表。

arkhamdb://card/{代码}

按卡代码列出的个人卡详细信息。这是一个可以与任何卡代码一起使用的资源模板。

示例: arkhamdb://card/01001 罗兰·班克斯

arkhamdb://rules/pdf

《阿卡姆恐怖:纸牌游戏》的完整规则参考文件摘自官方规则PDF。提供完整的规则文本,供AI助手在回答游戏问题时参考。

arkhamdb://rules/faq

《阿卡姆恐怖:纸牌游戏》的官方常见问题解答和规则澄清。包含常见问题解答、边缘案例裁决以及卡片和游戏机制的官方勘误表。

使用示例

在Claude Desktop中安装后,您可以提出以下问题:

卡数据库查询:

  • “处理伤害的最佳守护者卡是什么?”
  • “给我看看所有2元或以下的神秘咒语卡”
  • “Dunwich Legacy扩展中有哪些卡牌?”
  • “找到具有遗迹特征的卡片”
  • “罗兰·班克斯是做什么的?”
  • “给我看看受欢迎的调查员名单”

规则和常见问题查询:

  • “神话阶段是如何运作的?”
  • “快速卡的时间规则是什么?”
  • “我能在机会攻击时引发反应吗?”
  • “当我把相遇甲板画空时会发生什么?”
  • “胜利点数是如何工作的?”

发展

项目结构

src/main/kotlin/com/arkhamdb/mcp/
├── Main.kt                    # Server entry point
├── ArkhamDbClient.kt          # HTTP client with caching
├── models/                    # Data models
│   ├── Card.kt
│   ├── Pack.kt
│   └── Decklist.kt
├── tools/                     # MCP tool implementations
│   ├── CardTools.kt
│   ├── PackTools.kt
│   └── DecklistTools.kt
└── resources/                 # MCP resource providers
    └── ArkhamDbResources.kt

在发展中奔跑

./gradlew run

MCP检验员测试

您可以使用 MCP检查员:

npx @modelcontextprotocol/inspector java -jar build/libs/arkhamdb-mcp-server-1.0.0-all.jar

日志记录

所有日志都发送到stderr,以避免干扰stdout上的MCP协议。日志级别可以在中调整 src/main/resources/logback.xml.

技术细节

HTTP缓存

服务器使用Ktor内置的HTTP缓存来尊重 Cache-Control 和 ETag 来自ArkhamDB API的头。这个:

  • 减少ArkhamDB服务器上的负载
  • 改善重复查询的响应时间
  • 符合API使用指南

MCP协议

此服务器使用官方Kotlin SDK实现模型上下文协议。它支持:

  • 工具:AI可以调用的活动操作
  • 资源:可用于上下文引用的被动数据
  • STDIO传输:通过标准输入/输出进行通信

API信息

服务器使用 ArkhamDB公用API:

  • 基本URL: https://arkhamdb.com/api/public/
  • 公共终结点不需要身份验证
  • 速率限制是通过HTTP缓存处理的

故障排除

服务器无法启动

  • 检查是否安装了Java 11+: java -version
  • 验证指定路径中是否存在JAR文件
  • 检查Claude Desktop日志中的错误消息

未返回数据

  • 验证互联网连接
  • 检查ArkhamDB.com是否可访问
  • 查看stderr输出中的错误消息

连接错误

  • 确保没有防火墙阻止出站HTTPS连接
  • 验证服务器进程是否正在运行

许可证

该项目是阿卡姆恐怖LCG玩家的社区工具,与幻想飞行游戏或阿卡姆DB没有正式联系。

贡献

欢迎投稿!请随时提交问题或拉取请求。

资源