Destiny 2 MCP 服务器

为《命运2》提供的生产级模型上下文协议(MCP)服务器,支持玩家查找、活动追踪、物品/特性解析、氏族成员访问和首日成就评分。

  • by Nadiar
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 Nadiar/destiny2-mcp-server

使用说明

Destiny 2 MCP服务器

《命运2》的生产就绪模型上下文协议(MCP)服务器,通过本地清单缓存提供玩家查找、活动跟踪、物品/福利解析、部落名册访问和第一天胜利信心评分。

特性

区域 能力
玩家 模糊/精确的Bungie名称搜索、个人资料、角色、设备
活动 具有自动名称解析、PGCR、生命周期统计的历史记录
物品 全套插座/福利、插头组、活动定义、图像(base64)
氏族 通过缓存的groupId、精英排名评分直接查找名册
胜利 第一天/比赛突袭检测,加权评分
提示 常见查询的指导工作流程

快速开始

安装

选项1:npm(需要Node.js)

npm install -g destiny2-mcp-server

选项2:Docker(推荐用于生产环境)

docker pull ghcr.io/nadiar/destiny2-mcp-server:latest

看 Docker部署指南 了解详细的Docker设置。

配置

1.创建Bungie API应用程序

首选 Bungie开发者门户 并创建新应用程序:

所需设置:

  • 应用程序名称: MCP Server for LLM (或您喜欢的名字)
  • 申请状态: Private
  • OAuth客户端类型: Not applicable
  • 重定向URL:留空
  • 范围:不适用(服务器仅使用API密钥,没有OAuth)
  • 原点标题: *

创建后,复制您的 API密钥 (32个字符的十六进制字符串)。

2.创建.env文件

BUNGIE_API_KEY=your-32-character-hex-key

跑步

# Global install
destiny2-mcp-server

# Or from source
npm install
npm run build
npm start

MCP客户端配置

克劳德桌面(npm安装)

添加到claude_desktop_config.json:

{
  "mcpServers": {
    "destiny2": {
      "command": "destiny2-mcp-server",
      "env": {
        "BUNGIE_API_KEY": "your-api-key"
      }
    }
  }
}

克劳德桌面(Docker)

对于Docker部署,请使用:

{
  "mcpServers": {
    "destiny2": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "BUNGIE_API_KEY=your-api-key-here",
        "ghcr.io/nadiar/destiny2-mcp-server:latest"
      ]
    }
  }
}

Docker MCP网关(推荐)

对于 Docker MCP网关 用户,此服务器可在Docker MCP官方目录中找到:

备注:这需要 产品编号883 待合并。使用这些命令之前,请检查PR状态。

# Enable the server from the official catalog
docker mcp server enable destiny2-mcp-server

# Set your Bungie API key as a secret
docker mcp secret set destiny2-mcp-server.api_key=your-32-character-hex-key

# Verify installation
docker mcp server ls

就是这样!Docker MCP网关将自动拉取映像并配置服务器。

正在更新:

# Pull the latest image
docker pull ghcr.io/nadiar/destiny2-mcp-server:latest

# Restart your MCP client to use the new version

示例用法

配置后,您可以向AI助手提出以下问题:

玩家查询

“找到一个名为Guardian的玩家”

Found 3 players matching "Guardian":

1. Guardian#1234 (Confidence: 92/100 - Very High)
   ⚡ PRIMARY ACCOUNT: Steam (type: 3, id: 4611686018XXXXXXXXX)
   All Platforms:
   - Steam: 4611686018XXXXXXXXX ⚡ PRIMARY
   - Xbox: 4611686018YYYYYYYYY (linked)
   - PlayStation: 4611686018ZZZZZZZZ (linked)
   
   - Playtime: 4,521 hours
   - Last Played: 12/12/2025 (0 days ago)
   - Triumph: 25,340 active / 489,230 lifetime
   - Clan: Math Class [MATH] ⭐ Elite
   - Day-One Clears: 8 🏆

2. Guardian#5678 (Confidence: 23/100 - Low)
   ⚡ PRIMARY ACCOUNT: PlayStation (type: 2, id: 4611686018XXXXXXXXX)
   - Playtime: 12 hours
   - Last Played: 03/15/2024 (633 days ago)
   - No clan

活动历史和统计

“他们在《深海幽灵》中花了多少时间?”

# Activity Statistics Summary

Analyzed 500 activities, sorted by time played

## By Activity

### Ghosts of the Deep
- Activities: 145 (127 completed, 87% completion rate)
- Total Time: 47h 23m
- Total Kills: 18,940
- Efficiency: 2.34
- Date Range: 02/15/2025 - 12/11/2025

### Warlord's Ruin
- Activities: 98 (94 completed, 96% completion rate)
- Total Time: 38h 12m
- Date Range: 11/03/2024 - 12/10/2025

### Grasp of Avarice
- Activities: 62 (61 completed, 98% completion rate)
- Total Time: 19h 47m

---

## Overall Totals

- Activities: 500
- Total Time: 115h 32m
- Date Range: 11/20/2021 - 12/11/2025

赛后屠杀报告(PGCR)

“获取救世军边缘跑步的详细信息”

Post-Game Carnage Report
Activity: Salvation's Edge (Master)
Date: 2025-11-28 19:32:15 UTC
Duration: 1h 23m 47s

Fireteam (6 players):
┌─────────────────┬───────┬────────┬─────────┬──────────┐
│ Player          │ Kills │ Deaths │ Assists │ K/D      │
├─────────────────┼───────┼────────┼─────────┼──────────┤
│ [REDACTED]#XXXX │   187 │      1 │      42 │   187.00 │
│ [REDACTED]#XXXX │   156 │      0 │      38 │      ∞   │
│ [REDACTED]#XXXX │   142 │      2 │      51 │    71.00 │
│ [REDACTED]#XXXX │   138 │      1 │      44 │   138.00 │
│ [REDACTED]#XXXX │   121 │      0 │      39 │      ∞   │
│ [REDACTED]#XXXX │   118 │      0 │      47 │      ∞   │
└─────────────────┴───────┴────────┴─────────┴──────────┘

Total Team Kills: 862
Total Team Deaths: 4
Completion: ✓ Success

物品/武器查找

“法特布林格能得到什么好处?”

Fatebringer (Adept)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Type: Hand Cannon (Kinetic)
Tier: Legendary
Source: Vault of Glass

Perk Columns:
├── Column 1: Explosive Payload, Firefly, Opening Shot, Frenzy
├── Column 2: Tunnel Vision, Rewind Rounds, Kill Clip
├── Barrel: Hammer-Forged, Smallbore, Corkscrew, Full Bore
└── Magazine: Accurized Rounds, Tactical Mag, Appended Mag

Curated Roll: Explosive Payload + Firefly

项目图片

“显示Fatebringer屏幕截图”

这 get_item_image 工具可以返回以下任一结果:

  • 截图 (默认):大检查图像(~200KB)-非常适合详细的武器视图
  • 图标:小库存图标(~3KB)-可用于快速参考
# Fatebringer
*Screenshot*

[High-resolution weapon image displayed inline]

使用 imageType: "icon" 改为小库存图标的参数。

部落名册

“给我看我氏族的名册”

Clan: Example Clan [EXMP]
Members: 87/100

Online Now (3):
  • Player#0001 - Titan (Last: Tower)
  • Player#0002 - Hunter (Last: Salvation's Edge)
  • Player#0003 - Warlock (Last: Crucible)

Top by Playtime:
  1. Player#0004 - 6,234 hours
  2. Player#0005 - 5,891 hours
  3. Player#0006 - 5,122 hours

可用工具

玩家和个人资料工具

工具 说明
search_player 精确的Bungie名称查找(需要#代码)
find_players 基于置信度分数的部分名称模糊搜索+交叉保存初级检测
get_profile 完整的玩家档案,包括角色、部落、胜利分数
get_character 详细的角色信息和装备
get_activity_history 最近的活动和玩过的时间
get_activity_stats 具有分页(最多1000个)、可自定义字段和活动筛选的聚合活动统计信息
get_pgcr 带有时间数据的赛后大屠杀报告
get_historical_stats 按活动划分的终身PvE/PvP统计数据
get_clan_roster 具有在线状态的完整部落成员列表

项目工具

工具 说明
search_items 按名称搜索武器/盔甲
get_item_details 完整的物品信息,包括福利、统计数据和插头套件
get_item_image 项目截图或图标(支持imageType参数)
get_activity_definition 清单中的活动/遭遇详情
get_plug_set 特定武器/护甲插槽的可用福利

世界上第一个排行榜工具

工具 说明
list_leaderboards 列出所有可用的World First比赛排行榜
get_leaderboard 获得突袭/地牢比赛前100名
get_worlds_first 获取活动的世界第一获奖者详细信息
search_leaderboard_player 在所有活动中查找玩家的比赛完成情况
get_leaderboard_pgcr 获取特定排行榜条目的详细玩家统计数据
compare_leaderboard_players 比较两名球员的世界第一成就
get_leaderboard_stats 所有排行榜的汇总统计数据
filter_leaderboard_entries 按活动、排名或玩家姓名筛选排行榜条目

示例:筛选排行榜条目

“向我展示Datto在消防队中的所有前10名救世军边缘跑”

{
  activity: "Salvation's Edge",
  minRank: 1,
  maxRank: 10,
  player: "Datto"
}

返回与筛选器匹配的排行榜条目列表,包括排名、玩家姓名和完成时间。

发布和更新

最新发布

Docker镜像和npm包在每次发布时都会自动发布:

  • 码头工人: ghcr.io/nadiar/destiny2-mcp-server:latest 或 :1.2.4
  • npm: npm install -g destiny2-mcp-server@latest

查看所有版本: GitHub发布

更新

npm安装:

npm update -g destiny2-mcp-server

Docker安装:

# Pull latest version
docker pull ghcr.io/nadiar/destiny2-mcp-server:latest

# Or pull specific version
docker pull ghcr.io/nadiar/destiny2-mcp-server:1.2.4

更新后,重新启动MCP客户端(Claude Desktop等)。

文档

发展

看 贡献.md 用于开发设置、测试和贡献指南。

CI/CD

本项目使用GitHub Actions进行持续集成和部署:

  • 持续集成:对每个推送和拉取请求运行

    • Node.js 18、20和22的测试
    • 过梁和格式检查
    • 安全审计
    • Docker镜像构建
    • 代码覆盖率报告
  • 发布:版本标签上的自动发布

    • 发布到npm注册表
    • 构建Docker镜像并将其推送到GitHub容器注册表
    • 使用自动生成的注释创建GitHub版本
  • 依赖机器人:自动依赖关系更新

    • 每周检查npm、GitHub Actions和Docker基础镜像
    • 分组次要/补丁更新
    • 安全漏洞警报

添加到MCP工具包注册表

要使此服务器在 MCP工具包注册表:

1.分叉MCP服务器存储库

# Fork https://github.com/modelcontextprotocol/servers on GitHub
git clone https://github.com/YOUR_USERNAME/servers.git
cd servers

2.添加服务器条目

在中创建新条目 src/servers.json:

{
  "name": "destiny2-mcp-server",
  "description": "Destiny 2 API integration with player lookup, activity tracking, item/perk resolution, clan management, and day-one triumph scoring",
  "repository": "https://github.com/Nadiar/destiny2-mcp-server",
  "icon": "https://www.bungie.net/img/theme/destiny/icons/icon_d2.png",
  "categories": ["gaming", "api"],
  "installation": {
    "npm": "destiny2-mcp-server",
    "docker": "ghcr.io/nadiar/destiny2-mcp-server"
  },
  "configuration": {
    "required": {
      "BUNGIE_API_KEY": "Your Bungie API key from https://www.bungie.net/en/Application"
    },
    "optional": {
      "LOG_LEVEL": "Logging level (debug, info, warn, error)",
      "CACHE_TTL_HOURS": "Manifest cache TTL in hours (1-168)",
      "API_RATE_LIMIT_MS": "Minimum ms between API requests (50-1000)"
    }
  },
  "features": [
    "Fuzzy player search by Bungie name",
    "Activity history with automatic name resolution",
    "Post-game carnage reports (PGCR)",
    "Item/weapon perk lookups via local manifest cache",
    "Clan roster management",
    "Day-one raid completion detection",
    "Item images (screenshots and icons)",
    "Lifetime statistics tracking"
  ]
}

3.提交拉取请求

git checkout -b add-destiny2-mcp-server
git add src/servers.json
git commit -m "Add destiny2-mcp-server to registry"
git push origin add-destiny2-mcp-server

# Create PR on GitHub: https://github.com/modelcontextprotocol/servers

4.公关指南

  • 确保所有测试通过
  • 服务器必须公开可用(npm/Docker)
  • 文件应完整
  • 跟随 贡献指南

替代方案:使用MCP配置生成器

用户还可以使用MCP工具包手动添加此服务器:

# Using npm
mcp install destiny2-mcp-server

# Or add to Claude Desktop config manually (see MCP Client Configuration above)

许可证

MIT-有关详细信息,请参阅许可证文件。

排行榜数据

来自raid.report和dungen.report的预先抓取的世界第一排行榜数据包含在 leaderboard-data/:

  • 排行榜-丰富的.json -包含玩家Bungie ID、角色类别和统计数据的完整数据
  • 排行榜.json -仅包含PGCR ID的基本数据

包括的活动

突袭(11): 《最后的愿望》、《救赎花园》、《深石地穴》、《玻璃库》、《弟子的誓言》、《国王的堕落》、《噩梦的根源》、《克罗塔的终结》、《拯救的边缘》、《沙漠永恒》(竞赛+史诗竞赛)

地牢(11): 破碎的宝座,异端的坑,预言,贪婪的把握,二元性,守望者的灵魂,深渊的幽灵,军阀的废墟,韦斯珀的宿主,混乱的教义,平衡

每个条目包括:

  • 排名和完成时间
  • 用于验证的PGCR ID
  • 有Bungie名字和会员ID的完整消防队
  • 角色等级和光级
  • 每位玩家的杀伤/死亡/助攻统计数据