魔兽世界数据查询服务

一款基于DuckDB的MCP服务器,为AI编程助手提供即时SQL访问魔兽世界所有数据表(如法术、物品、生物等)的能力。

  • by VoxCore84
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 VoxCore84/wago-db2

使用说明

Wago DB2 MCP服务器

DuckDB供电 主控程序 查询服务器 Wago DB2 CSV表格。为AI编码助手提供即时SQL访问所有1097+魔兽世界数据表的功能,包括法术、物品、生物、区域、派系、传输日志等。

运作原理

  1. 从下载CSV导出 wago.tools 使用附带的下载器
  2. 将MCP服务器指向CSV目录
  3. 表在第一次查询时延迟加载到DuckDB(内存中)
  4. 完全支持SQL:JOIN、聚合、ILIKE、子查询

快速开始

# Install
pip install -e .

# Download tables for WoW 12.x (latest build auto-detected)
wago-db2-download --major 12 --tables-file tables.txt --out csv

# Start the MCP server
WAGO_CSV_DIR=./csv/major_12/<build>/enUS wago-db2

MCP配置

添加到您的MCP客户端配置(Claude Code、Antigravity等):

{
  "mcpServers": {
    "wago-db2": {
      "command": "python",
      "args": ["-m", "wago_db2_server"],
      "env": {
        "WAGO_CSV_DIR": "/path/to/csv/major_12/12.0.1.66337/enUS",
        "PYTHONUTF8": "1"
      }
    }
  }
}

工具

工具 说明
db2_lookup 按ID(主键)查找行。支持批量查找和列选择
db2_search 不区分大小写的文本搜索。自动检测名称列(*_lang, Name,第一个VARCHAR)
db2_validate_ids 检查哪些ID存在或缺失。退货 {existing: [...], missing: [...]}
db2_query 带有JOIN、聚合等的原始SELECT查询。非SELECT语句被拒绝
db2_tables 列出所有具有可选名称筛选器的可用表
db2_describe 显示架构(列名+类型)和示例行

下载器

附带的下载器通过并行下载从wago.tools获取CSV导出:

# Download specific tables
wago-db2-download --major 12 --tables SpellName,ItemSparse,Creature

# Download from a list file
wago-db2-download --major 12 --tables-file tables.txt --out csv

# Force re-download, 16 threads
wago-db2-download --major 12 --tables-file tables.txt --force --threads 16

# Specific build + locale
wago-db2-download --major 12 --build 12.0.1.66337 --locale deDE --out csv

下载器选项

标志 默认值 描述
--major (必填) 扩展主版本(午夜12,TWW 11等)
--build 自动检测 覆盖构建字符串(例如。 12.0.1.66337)
--locale enUS CSV数据的区域设置
--out wago_csv 输出目录
--tables 逗号分隔的表名
--tables-file 带有表名的文本文件的路径(每行一个)
--threads 8 并发下载线程
--force false 重新下载现有文件
--timeout 60 HTTP超时(秒)

环境变量

变量 默认值 用途
WAGO_CSV_DIR ./csv 包含DB2 CSV文件的目录

丰富的餐桌

将其他CSV文件放入 enriched/ CSV目录旁边的子目录。这些表与标准DB2表一起加载,可以自由加入。适用于预先计算的交叉引用(例如,具有外观ID的项目、具有名称的传输日志集)。

安全

  • 只允许SELECT查询——INSERT、UPDATE、DELETE、DROP等被拒绝
  • SQL注释在关键字验证之前被剥离,以防止绕过
  • 所有ID参数都被验证为整数
  • 在没有明确LIMIT的查询上强制执行默认LIMIT 1000

需求

许可证

麻省理工学院