README
🚀 Civ 5 MCP
Civ 5 MCP 可借助 MCP 将你的《文明 5》游戏与智能体连接起来。此模组会创建一个进程间通信(IPC)通道,将你的实时游戏与 MCP 服务器相连,让智能体能够与之交互。
查看一些示例。
该模组的设计理念是仅提供人类玩家在合理情况下能够知晓的信息。例如,我们会避免泄露奇观的位置或未接触过的玩家的信息。其核心目标是打造一个超级游戏顾问,助力你提升游戏水平。
本项目由两部分构成:游戏模组(即桥梁)和 MCP 服务器。要使用此模组,你必须同时使用这两部分。
⚠️ 重要提示
此模组仅在 Windows 系统的《文明 5:勇敢新世界》版本上进行过测试。
🚀 快速开始
操作步骤
- 下载最新版本并将内容解压到你的 MODS 目录。通常该目录为
%USERPROFILE%\Documents\My Games\Sid Meier's Civilization 5\MODS。- 目录结构应如下所示:
MODS/
Civ5MCP_Bridge (v VERSION)/
Civ5MCP_Bridge.modinfo
... 一堆 .lua 文件 ...
- 启动游戏。
- 选择“MODS”。
- 点击小按钮启用此模组。
- 配置你的游戏。
- 配置你的智能体以运行
server/civ5_mcp_server.py。 - 尽情享受游戏!
🛠️ 开发
构建
模组信息和常量文件会在构建时生成。mod_config.json 描述了模组以及将以《文明 5》所需格式导出的文件。
# 所有目标都有对应的 docker 变体,例如 make docker-lint
# 进行代码检查
make lint
# 运行单元测试
make test
# 生成《文明 5》可读取的目录
make build
# 可选操作:自动部署到你的《文明 5》MODS 文件夹
./tools/deploy.ps1
版本控制
Lua rockspec 和《文明 5》的版本格式有所不同。《文明 5》要求版本号为无点号或破折号的字符串。因此,《文明 5》的版本号会去掉修订号,并将主版本号和次版本号合并为 主版本号 * 10 + 次版本号。
🌉 桥梁模块
游戏状态会在每回合开始时记录,并写入 SQLite 数据库。每个新游戏会作为一个新会话存储。会话和回合数将作为状态的 ID。回合历史和初始游戏配置会使用此会话 ID 进行存储。
⚠️ 重要提示
data字段是一个 JSON 数据块,其格式不稳定!
桥梁模块在 Lua 5.1.4 的沙盒环境中运行,可使用的 API 非常有限。游戏仅暴露了此 API,我们也只能使用这些。
💻 运行服务器
cd server
# 测试服务器是否可以启动
uv run civ5_mcp_server.py
如果没有看到任何错误,你可以使用类似以下的配置将此服务器添加到 Claude 等工具中。如果 uv 启动失败,请尝试直接使用 uv 的虚拟环境 Python 二进制文件。
{
"mcpServers": {
"civ5": {
"command": "uv",
"args": ["run", "path/to/civ5_mcp_server.py"],
}
}
}
微信扫一扫