Zomboid MCP服务器项目
用于Project Zomboid mod开发的综合模型上下文协议(MCP)服务器,通过人工智能增强工具提供智能脚本验证、生成和上下文辅助。
🚀 特性
智能项目Zomboid集成
- 自动检测 Steam、Epic Games和GOG安装
- 与跨平台支持 (Windows、Linux、macOS、WSL)
- 构建42兼容性 具有现代mod结构支持
- 后备系统 使用本地脚本解析
全面的游戏数据知识
- 完整的香草游戏索引 具有全文搜索功能
- 丰富的元数据提取 包括损坏、耐用性、类别和标签
- 关系映射 在项目、食谱和依赖关系之间
- 实时参考验证 对抗游戏数据库
智能脚本生成
- 基于模板的生成 使用真实的游戏模式
- 平衡分析 将定制项目与香草等效项目进行比较
- 参考验证 确保所有依赖关系都存在
- 多种输出格式 (项目、食谱、修复脚本、声音、车辆)
高级验证引擎
- 实时语法验证 带有详细的错误报告
- 背景调查 用于项目、声音和精灵
- 平衡分析 游戏影响评估
- 最佳实践建议 用于mod开发
部署就绪
- Cloudflare员工 支持无服务器部署
- D1数据库 持久存储集成
- HTTP API 用于与任何MCP客户端集成
- 克劳德桌面 已准备好示例配置
🔧 安装
先决条件
- Node.js 18.0.0或更高版本
- npm或yarn包管理器
地方发展
# Clone the repository
git clone https://github.com/minimax/pz-mcp-server.git
cd pz-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run devCloudflare员工部署
# Install Wrangler CLI
npm install -g wrangler
# Login to Cloudflare
wrangler login
# Create D1 database
wrangler d1 create pz-mcp-prod
# Deploy to Cloudflare Workers
wrangler deploy📖 用法
使用克劳德桌面
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"pz-mcp-server": {
"command": "node",
"args": ["/path/to/pz-mcp-server/dist/index.js"]
}
}
}使用光标/VCode
服务器可以与任何支持MCP协议的IDE集成:
- 为IDE安装MCP扩展
- 配置服务器终结点
- 开始使用Project Zomboid开发工具
🛠️ MCP工具
search_vanilla
通过智能匹配搜索香草Project Zomboid内容。
参数:
query(string):游戏内容搜索查询type(字符串,可选):按内容类型(项目、配方、声音、车辆)过滤category(字符串,可选):按项目类别筛选limit(数字,可选):最大结果(默认值:20)
例子:
// Search for weapons
await mcp.callTool('search_vanilla', {
query: 'katana',
type: 'item',
category: 'Weapon'
});generate_script
使用模板和游戏数据生成平衡的Project Zomboid脚本。
参数:
type(string):脚本类型(项目、配方、进化配方、修复、声音、车辆)name(string):要生成的项目/配方的名称properties(对象):性能和规格module(字符串,可选):模块名称(默认值:“Base”)
例子:
// Generate a custom weapon
await mcp.callTool('generate_script', {
type: 'item',
name: 'SuperKatana',
properties: {
DisplayName: 'Super Katana',
Type: 'Weapon',
MaxDamage: 5.0,
Weight: 2.0,
Categories: 'LongBlade'
}
});validate_script
验证Project Zomboid脚本语法和引用,并提供详细的错误报告。
参数:
content(string):要验证的脚本内容type(字符串,可选):预期的脚本类型strict(boolean,可选):启用严格验证模式
例子:
// Validate mod script
await mcp.callTool('validate_script', {
content: scriptContent,
type: 'item',
strict: true
});check_references
根据游戏数据库验证项目、声音和角色引用。
参数:
references(string\[\]):要验证的引用列表type(字符串,可选):引用类型(项目、声音、角色、全部)
例子:
// Check if items exist
await mcp.callTool('check_references', {
references: ['Base.Katana', 'Base.Apple'],
type: 'item'
});analyze_mod
对mod目录进行全面分析,包括平衡、兼容性和结构验证。
参数:
modPath(string):mod目录的路径checkBalance(布尔值,可选):执行余额分析checkCompatibility(boolean,可选):检查与vanilla的兼容性generateReport(布尔值,可选):生成详细的分析报告
例子:
// Analyze mod quality
await mcp.callTool('analyze_mod', {
modPath: '/path/to/my-mod',
checkBalance: true,
checkCompatibility: true
});parse_game_files
解析并索引Project Zomboid游戏文件以填充数据库。
参数:
gamePath(字符串,可选):Project Zomboid安装路径(如果未提供,则自动检测)forceReparse(boolean,可选):即使数据存在,也强制重新解析
例子:
// Parse vanilla game files
await mcp.callTool('parse_game_files', {
forceReparse: false
});🏗️ 建筑
┌─────────────────────────────────────────────────────┐
│ MCP Server Core │
├─────────────────────────────────────────────────────┤
│ Path Manager │ Enhanced Parser │ Script Gen │
├─────────────────────────────────────────────────────┤
│ SQLite/D1 Database Layer │
├─────────────────────────────────────────────────────┤
│ Game Data │ Templates │ Validation │
│ (Vanilla PZ) │ (JSON-based) │ (Real-time) │
└─────────────────────────────────────────────────────┘核心组件
- 数据库管理器:具有全文搜索功能的SQLite/D1数据库
- ProjectZomboidParser:解析原版游戏文件和模组目录
- 脚本生成器:使用模板和游戏数据生成平衡的脚本
- 验证引擎:实时语法和引用验证
- ModAnalyzer:全面的模块分析和质量指标
- 路径管理器:Zomboid项目安装的自动检测
🌐 Cloudflare员工部署
该服务器包括对无服务器部署的完整Cloudflare Workers支持:
特性
- D1数据库 用于持久存储
- KV存储 用于缓存频繁访问的数据
- HTTP API 所有MCP工具的端点
- 自动缩放 零冷启动
- 全球边缘部署 低延迟
API终点
GET /health-健康检查GET /mcp/info-服务器功能POST /tools/{toolName}-执行MCP工具POST /admin/load-game-data-加载原版游戏数据
配置
更新 wrangler.toml 使用您的数据库ID:
[[env.production.d1_databases]]
binding = "DB"
database_name = "pz-mcp-prod"
database_id = "your-database-id"📋 开发工作流程
Mod开发设置
- 初始化数据库:
npm run dev
# Server will auto-detect Project Zomboid installation- 解析游戏文件:
await mcp.callTool('parse_game_files', {});- 开始开发:
// Search for existing items
const results = await mcp.callTool('search_vanilla', {
query: 'weapon damage > 3'
});
// Generate new item
const script = await mcp.callTool('generate_script', {
type: 'item',
name: 'MyWeapon',
properties: { /* ... */ }
});
// Validate before use
const validation = await mcp.callTool('validate_script', {
content: script
});支持的文件格式
- mod.info:Mod元数据和配置
- 脚本文件(.txt):项目、食谱、车辆、声音、修复脚本
- Lua文件(.Lua):游戏逻辑和事件处理程序
- 资产:纹理、声音、模型和地图
🔍 例子
创建自定义武器
// 1. Search for similar weapons
const similarWeapons = await mcp.callTool('search_vanilla', {
query: 'katana sword blade',
type: 'item'
});
// 2. Generate balanced weapon
const weaponScript = await mcp.callTool('generate_script', {
type: 'item',
name: 'EliteKatana',
properties: {
DisplayName: 'Elite Katana',
Type: 'Weapon',
Weight: 2.5,
MaxDamage: 4.5,
MinDamage: 3.5,
Categories: 'LongBlade',
Icon: 'Katana',
SwingSound: 'KatanaSwing'
}
});
// 3. Validate the script
const validation = await mcp.callTool('validate_script', {
content: weaponScript,
strict: true
});
// 4. Check references exist
await mcp.callTool('check_references', {
references: ['Katana', 'KatanaSwing'],
type: 'all'
});分析模块质量
const analysis = await mcp.callTool('analyze_mod', {
modPath: '/path/to/my-zombie-mod',
checkBalance: true,
checkCompatibility: true,
generateReport: true
});
console.log(`Mod Quality Score: ${analysis.quality.overall}/100`);
console.log(`Issues Found: ${analysis.issues.length}`);
console.log(`Recommendations: ${analysis.recommendations.join(', ')}`);🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 提交拉取请求
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🆘 支持
- GitHub问题:Bug报告和功能请求
- 文档:综合指南和API参考资料
- 社区:用于mod开发人员的Discord服务器
🔮 路线图
v1.1.0-增强功能
- 车辆脚本支持 具有完整的解析和生成功能
- 高级模板 适用于复杂的建模场景
- Lua脚本集成 用于游戏逻辑辅助
- 性能优化 大型mods工具
v1.2.0-协作功能
- 多用户支持 用于团队mod开发
- 版本控制集成 使用Git工作流
- 自动化测试 mod验证管道
- 文档生成 从mod分析
v2.0.0-完整平台
- web界面 对于非技术用户
- 蒸汽车间集成 直接出版
- 市场功能 用于mod发现
- 企业支持 适用于大型模组团队
______________________________________________________________________
内置于❤️ Zomboid项目改装社区
