CET-MCP-赛博朋克2077 AI桥
MCP服务器,将克劳德代码连接到赛博朋克2077中的赛博引擎调整(CET)。执行Lua代码、查询游戏状态、操纵TweakDB、管理库存和观察游戏事件——所有这些都是在游戏运行时从您的终端完成的。
运作原理
Claude Code → stdio/JSON-RPC → MCP Server → TCP (RedSocket) → CET Bridge Mod → Game Engine
MCP服务器作为Claude Code子进程运行。它在上打开一个TCP服务器 localhost:27010CET桥接模块(Lua)通过以下方式连接到它 RedSocket 并在游戏的Lua VM中执行命令。如果未安装RedSocket或TCP端口已在使用中(支持多个会话),则自动回退到基于文件的IPC。
与配对 WolvenKit MCP 完整的人工智能辅助建模管道。
需求
设置
# 1. Clone and build
git clone https://github.com/y4rd13/cyber-engine-tweak-mcp.git
cd cyber-engine-tweak-mcp
npm install
npm run build
# 2. Copy CET mod to game directory
cp -r cet-mod/CETBridge "/path/to/Cyberpunk 2077/bin/x64/plugins/cyber_engine_tweaks/mods/CETBridge"
# 3. Add to Claude Code globally
claude mcp add cet-bridge -s user \
-e "CET_BRIDGE_DIR=/path/to/cyber_engine_tweaks/mods/CETBridge" \
-e "CET_TRANSPORT=tcp" \
-- node /path/to/cyber-engine-tweak-mcp/build/index.js
工具(37)
执行
| 工具 | 说明 |
|---|
execute_lua | 在CET控制台中运行Lua代码 |
evaluate_expression | 计算Lua表达式并返回结果 |
batch_execute | 在一次往返中执行多个Lua语句 |
游戏状态
| 工具 | 说明 |
|---|
get_player_info | 玩家等级、健康状况、街头信誉、位置 |
get_game_state | 游戏时间、场景级别、天气、区域类型 |
add_item | 按TweakDB ID将商品添加到库存 |
teleport | 将玩家传送到世界坐标 |
set_time | 更改游戏时间 |
set_weather | 天气变化(晴、雨、雾、沙尘暴等) |
库存
| 工具 | 说明 |
|---|
get_inventory | 使用类型筛选列出玩家库存 |
remove_item | 从库存中删除项目 |
get_equipped | 显示当前装备的武器、服装、网络软件 |
玩家
| 工具 | 说明 |
|---|
set_stat | 修改玩家属性(生命值、护甲、等级等) |
apply_status_effect | 为玩家应用增益/去增益 |
remove_status_effect | 删除状态影响 |
get_active_effects | 列出玩家的所有活动状态效果 |
toggle_god_mode | 打开/关闭抗毁性 |
set_level | 直接设置玩家等级和/或街头信誉 |
get_appearance_info | 获取玩家当前的视觉外观 |
get_vehicle_list | 列出玩家车库中的所有车辆 |
世界
| 工具 | 说明 |
|---|
spawn_vehicle | 在玩家附近制造车辆 |
get_nearby_entities | 扫描附近的NPC、车辆、物品 |
kill_nearby_npcs | 杀死半径内的敌方(或所有)NPC |
show_notification | 显示游戏内UI通知 |
play_sound | 在游戏中播放声音事件 |
get_scanner_info | 获取您正在查看的实体的信息 |
任务
| 工具 | 说明 |
|---|
get_quest_fact | 读取任务进度标志 |
set_quest_fact | 设置任务进度标志 |
TweakDB
| 工具 | 说明 |
|---|
get_tweakdb_value | 读取TweakDB平面图或记录 |
set_tweakdb_value | 写入TweakDB平面值 |
search_tweakdb | 按模式搜索TweakDB记录 |
dump_type | 反思游戏RTTI类型(方法、属性) |
观察
| 工具 | 说明 |
|---|
observe_events | 通过CET Observe订阅游戏活动 |
get_observations | 读取缓冲事件观察结果 |
开发工具
| 工具 | 说明 |
|---|
get_connection_status | 检查网桥连接和传输类型 |
read_log | 阅读CET脚本.log |
list_mods | 列出已安装的CET模组 |
配置
| 变量 | 默认值 | 描述 |
|---|
CET_BRIDGE_DIR | (参见.mcp.json) | CETBridge mod目录的路径 |
CET_TRANSPORT | tcp | 运输: tcp (RedSocket)或 file (回退) |
CET_TCP_PORT | 27010 | TCP服务器端口 |
多会话支持
可以使用多个Claude Code会话 cet-bridge 同时:
- 第一次会议:绑定TCP端口27010(快速,约1ms)
- 额外会议:自动回退到基于文件的IPC(~16-33ms)
- 没有会话崩溃——回退是无缝的
建筑
看 docs/architecture.md 查看详细图表。
| 组件 | 语言 | 角色 |
|---|
| MCP服务器 | TypeScript | 克劳德代码的stdio传输,游戏网桥的TCP服务器 |
| CET Bridge Mod | Lua | 在游戏中运行,向CET Lua VM发送命令 |
发展
npm run build # Compile TypeScript
npm run dev # Watch mode
npm run inspect # Test with MCP Inspector
更改Lua文件后,将其复制到游戏目录:
cp cet-mod/CETBridge/*.lua "/path/to/cyber_engine_tweaks/mods/CETBridge/"
安全
- TCP绑定到
localhost 只是——没有网络曝光 - 所有用户代码都在中运行
pcall() --错误被发现,永远不要让游戏崩溃 - 这是一个 开发工具 --不适用于多人游戏或制作用途
- Lua中的无限循环 将冻结游戏 (没有本机代码就无法缓解)
许可证
麻省理工学院