如何使用 MCP 连接 AI
MCP(Model Context Protocol,模型上下文协议)可以让支持 MCP 的 AI 客户端调用 CCProject 对外开放的工具。CCProject 提供的是本机 MCP 服务,连接地址只使用 127.0.0.1,不会对局域网或互联网开放监听。
当前版本提供 42 项顶层 MCP 工具和 112 项可发现 DLL 业务命令,覆盖项目生命周期、全量结构化查询、计划与工作修改、双代号和横道图、PDCA、资源优化、窗口、预览、撤销、保存及正式输出。所有业务修改都调用 CCProject 自己的规则和计算服务,不模拟鼠标、键盘或窗口句柄。
1. 打开需要操作的项目
- 在 CCProject 中打开一个或多个需要操作的项目。
- 连接后先调用
ccproject_list_projects,取得目标项目的projectId和revision。 - 后续查询、预览、执行、撤销、导出和单项修改都传入同一个
projectId;不要依赖调用时哪个项目窗口恰好处于活动状态。 - 修改网络图标题时,目标项目应使用单代号或双代号网络图;修改横道图标题时应使用横道图。报表页面不能使用这两项标题工具。
一个 MCP 地址只属于一个正在运行的 CCProject 进程,但该进程可以同时打开多个项目。主程序会按每次请求中的 projectId 绑定目标项目;目标不存在、已经关闭或 revision 已变化时会返回错误,不会自动改到另一个项目。
2. 打开 MCP 服务管理
在主菜单中选择 **“MCP 服务 → MCP 服务管理…”**。
“MCP 服务管理”窗口显示以下内容:
- **状态**:未启动、DLL 已加载、正在启动、已启动、正在停止、已停止或错误。
- **MCP 地址**:AI 客户端连接 CCProject 时使用的完整带临时 token 地址。
- **DLL 文件**:
CCProjectAutomation.dll的实际位置。 - **端口**:默认端口为
18360;也可勾选“自动选择端口”,由 Windows 分配当前可用的本机端口。
窗口下方提供“启动服务”“停止服务”“复制地址”和“关闭”按钮。
3. 启动 MCP 服务
一般保留默认端口 18360,直接单击 **“启动服务”**。如果同时运行多个 CCProject 实例,应在管理窗口中勾选 **“自动选择端口”**,或为每个实例明确设置不同端口。也可以在主菜单的“MCP 服务”中直接选择“启动 MCP 服务”,但该快捷命令固定使用默认端口。
启动成功后:
- 状态显示“已启动”。
- 连接地址类似
http://127.0.0.1:18360/mcp?token=本次启动生成的临时token。 - 服务开始等待本机 AI 客户端连接。
每次启动服务都会生成新的临时 token。停止服务或退出 CCProject 后,当前 token 和实例文件自动失效;重新启动后必须重新复制连接配置。
如果需要修改端口,应在服务停止状态下输入 1 至 65535 之间的端口号。修改后,AI 客户端中的连接地址也必须使用相同端口。
4. 复制连接信息
可以使用以下两种命令:
- **复制 MCP 地址**:只复制当前连接地址。
- **复制接入信息**:复制地址、传输方式、接口版本、当前 MCP 工具名称和命令行示例。
“复制 MCP 地址”和“复制接入信息”位于主菜单的“MCP 服务”中;管理窗口内也可以使用“复制地址”。
5. 在 AI 客户端中添加 CCProject
不同 AI 客户端的界面名称可能不同,但需要填写的核心内容相同:
| 设置项 | 填写内容 |
|---|---|
| 连接名称 | CCProject,也可以使用便于识别的其他名称 |
| MCP 类型或传输方式 | Streamable HTTP 或 HTTP MCP |
| MCP 地址 | http://127.0.0.1:18360/mcp?token=临时token,必须以软件本次启动后复制的完整地址为准 |
Codex 推荐使用 **“MCP 服务 → 复制 Codex 配置”**,把复制出的 Streamable HTTP 配置加入 Codex,然后重新加载 MCP。其他客户端也可使用完整带 token 地址;支持请求头的客户端还可以用 Authorization: Bearer TOKEN 传递同一个 token。不要把 token 地址发到其他机器、网站或日志。
保存设置后,让 AI 客户端重新连接或刷新 MCP 工具。连接成功时,tools/list 当前应返回 42 项顶层工具。除项目、查询、预览、执行、窗口、资源优化和输出工具外,常用单项修改工具包括以下十一项:
ccproject_set_network_title;ccproject_set_gantt_title;ccproject_set_drawing_paper;ccproject_set_project_start;ccproject_set_work_name_by_nodes;ccproject_set_work_duration_by_nodes;ccproject_move_work_by_nodes;ccproject_move_node;ccproject_delete_work_merge_nodes;ccproject_delete_work_disconnect_nodes;ccproject_delete_all_blank_rows。
其中两项 delete 工具会删除工作。只有用户明确指定节点对并选择节点处理方式后,AI 才能调用;项目文件仍不会自动保存。
如果实际工具列表与帮助文档不一致,以 AI 客户端从 MCP tools/list 发现的内容为准。
6. 测试连接
可以向 AI 输入类似下面的要求:
> 请使用 CCProject MCP,把当前网络图标题改为“附属学校及基础设施配套工程项目进度网络图”。
AI 调用 ccproject_set_network_title 后,CCProject 会修改当前活动网络图的标题。标题必须包含 1 至 200 个字符。
执行成功后应检查:
- 返回的
projectId是否仍是指定项目。 - 网络图标题是否已经改变。
- 返回的 revision 是否按预期变化,项目是否进入已修改状态。
- 重新查询或导出预览核对结果。
- 确认结果正确后,再明确调用保存工具或手工保存项目文件。
7. 使用结束后停止服务
不再使用 AI 连接时,可以选择 **“MCP 服务 → 停止 MCP 服务”**,也可以在管理窗口中单击“停止服务”。停止后,AI 客户端将不能继续调用 CCProject 工具。
常见问题
启动服务失败
检查 CCProjectAutomation.dll 是否位于 CCProject 主程序目录。若提示“端口无法使用”,通常是另一个 CCProject/MCP 实例已经占用该端口;先停止另一个实例的 MCP 服务,或打开“MCP 服务管理”勾选“自动选择端口”后重新启动。启动成功后必须重新复制完整带 token 地址,AI 客户端不能继续使用旧端口或旧 token。
AI 看不到 CCProject 工具
依次检查:MCP 服务状态是否为“已启动”、AI 客户端填写的地址是否包含本次启动生成的 token,以及 AI 客户端是否已经重新连接或刷新工具列表。服务重启后旧 token 不再有效。
AI 提示当前页面不是网络图
先在 CCProject 中切换到单代号或双代号网络图,再重新执行标题修改操作。报表页面不支持该工具。