Civ6 MCP Server
使用说明(简要、易操作版)
-
项目简介
- Civ6 MCP Server 是一个完整的后台服务器,专门把文明6的游戏信息通过 MCP 标准暴露给各类 LLM 客户端(如 Claude Code、Codex、Gemini CLI 等)。它实现了资源托管、工具执行、提示(Prompts)渲染等核心能力,并通过 JSON-RPC 形式和客户端通信。服务器端负责会话管理、能力声明、以及安全/可扩展的上下文服务框架。附带网页仪表盘、 diary/空间追踪等辅助组件,方便分析和调试。
-
主要功能点
- MCP 核心协议支持:通过 stdio 的 MCP 端口接收请求,执行相应的工具,并返回规范的 JSON-RPC 响应。 -resources/tools/prompts:托管资源、注册工具、渲染并提供可自定义的 Prompt 模板,支持多种交互模式。
- Civ6 FireTuner 集成:服务器与 Civ6 的 FireTuner 协议对接,生成 Lua 代码在游戏中执行,并解析返回。
- 会话与能力声明:服务器维护会话信息、能力声明,确保多客户端环境下的并发与隔离。
- 多传输与扩展:支持标准 IO 传输(stdio),并在服务器上内置 Web API、日记、地图快照等扩展,用于可观测性与分析。
- 背景服务与工具:地图快照、空间追踪、日记记录、日志系统,以及对 UI/弹窗进行观测/处理的辅助工具。
- 运行与测试:内置 runner、测试连接、以及多场景的示例用法,便于本地验证。
-
安装与运行(简要步骤)
- 克隆仓库
- 安装并使用 uv(Astral 的 uv 库)作为运行后端的入口工具
- 以 CP/MCP 的入口启动服务器(下述示例配置给出具体启动参数格式)
- 启动 Civ6(确保 FireTuner 启用并能连接到端口 4318)
- 使用 MCP 客户端连接服务器,开始对 Civ6 的对话式控制和上下文服务
-
服务器配置(MCP 客户端需要的启动信息) 下面给出一个准确的服务器启动配置示例,便于 MCP 客户端(Claude Code、Codex、Gemini 等)通过配置文件连接到服务器。请将 path/to/civ6-mcp 替换为仓库实际所在路径。
{ "server_name": "civ6", "command": "uv", "args": ["run", "--directory", "/path/to/civ6-mcp", "civ-mcp"], "notes": "启动 Civ6 MCP 服务器的命令。服务器通过 stdio 与客户端通信,并在后台启动了网页仪表盘、 diary、地图捕获等服务。" }
说明
- server_name: 服务器的标识名称,便于客户端在多服务器场景下区分。
- command 与 args: MCP 服务器的启动命令与参数。本仓库的服务器入口通过 uv run --directory <仓库路径> civ-mcp 启动。
- 备注字段(notes)仅作说明用途,帮助理解连接方式与后台服务。
-
基本使用方式
- 客户端连接后,可以调用如 get_game_overview、get_units、get_map_area、end_turn 等工具,获得游戏状态并下达指令。
- 服务器还内置了网页仪表盘(http://localhost:8000/)用于查看当前游戏状态和观测数据,便于调试与分析。
- 日记、空间追踪、地图快照等工具用于记录和回放,帮助评测与研究。
-
运行环境与依赖
- Python 3.8+(仓库中使用 asyncio/uv 等特性)
- uv(Astral 的 uv 库,用于启动与调度 MCP 服务)
- Civ 6 及 FireTuner
- 操作系统:macOS、Windows(需相应的 GUI 自动化支持)
-
典型工作流
- 启动 Civ6 与 FireTuner
- 启动 Civ6 MCP 服务器
- 使用 MCP 客户端(Claude/Codex/Gemini 等)连接并发起会话
- 通过标准工具集读取状态,调用工具执行操作,结束回合,,并通过 diary/地图/空间追踪等扩展进行分析