OpenGame MCP 集成指南:如何连接外部工具扩展 AI 游戏生成能力?
【免费下载链接】OpenGameOpenGame: Open Agentic Coding for Games项目地址: https://gitcode.com/gh_mirrors/op/OpenGame
OpenGame 是一个开源的 AI 游戏智能体框架,能从一句提示词端到端生成可玩的网页游戏。而它的 MCP 集成能力,正是让 AI 游戏生成"长出双手"的关键——通过标准协议连接外部工具、数据库和 API,OpenGame 的 AI 可以在生成游戏时直接查询关卡数据、调用素材服务、对接内部系统,而不只是凭空写代码。
什么是 MCP?为什么 AI 生成游戏需要外部工具?
MCP(Model Context Protocol,模型上下文协议)是一种开放标准,让 AI 智能体能够以统一方式发现并调用外部工具。可以把它理解为AI 的"USB 接口":任何符合协议的服务器插上就能用,无需为每个工具写定制代码。
对 OpenGame 这样的 AI 游戏生成框架来说,MCP 的价值非常直接:
- 📊查询外部数据——把游戏数值表存在数据库里,让 AI 直接查表设计关卡难度曲线
- 🔗对接内部服务——把素材生成、版本管理、发布部署包成 MCP 工具,AI 一句话就能触发
- 🤖自动化工作流——把"跑测试、截图、检查报错"等重复任务暴露为工具,AI 可以自行调用验证游戏
比如让 AI 生成塔防游戏时,你可以接一个数据库 MCP 服务器,让它实时读取平衡性配置:
快速上手:3 条命令连接第一个 MCP 服务器
OpenGame 的 MCP 配置存放在settings.json的mcpServers字段中,最快方式是用 CLI 命令(完整参考见 docs/users/features/mcp.md):
# 1. 添加一个 HTTP 类型的 MCP 服务器 opengame mcp add --transport http my-server http://localhost:3000/mcp # 2. 确认它出现在列表中 opengame mcp list # 3. 重启 OpenGame,然后直接让 AI 使用新工具添加本地脚本类的 stdio 服务器也只需一条命令:
opengame mcp add pythonTools -e API_KEY=$MY_KEY python -m my_mcp_serveropengame mcp命令族(add / list / remove)的实现在 packages/cli/src/commands/mcp/add.ts 中,支持--scope、--timeout、--header等常用选项,免去手写 JSON 的麻烦。
选择传输方式:stdio、SSE 还是 HTTP?
OpenGame 支持三种传输方式,按你的服务器类型对号入座:
| 传输方式 | 适用场景 | 配置关键字段 |
|---|---|---|
| stdio | 本地进程:脚本、CLI 工具、Docker 容器 | command+args |
| http | 远程服务、云端 MCP 服务器(推荐) | httpUrl |
| sse | 只支持 Server-Sent Events 的旧服务器 | url |
更复杂的手动配置(环境变量、工作目录、自定义请求头等)直接编辑settings.json即可,配置文件位置规则见 docs/users/configuration/settings.md。
安全控制:信任设置与工具过滤
连接外部工具不等于放弃控制权,OpenGame 提供两层"刹车":
- 确认提示——默认情况下,每次 AI 调用外部工具都会先征求你的同意,可选择"仅本次 / 始终允许该工具 / 始终允许该服务器"
- 工具过滤——用
includeTools/excludeTools精确限定服务器暴露哪些工具,危险工具(如删除类)可以直接排除 - 全局白名单——在
mcp.allowed/mcp.excluded中定义哪些服务器允许或禁止连接
trust: true可以跳过所有确认提示,但官方明确建议谨慎使用,只给你完全掌控的服务器。
进阶玩法:用 SDK 在同一个进程里自定义工具
如果你要基于 OpenGame 开发自动化游戏流水线,TypeScript SDK 提供了内置式 MCP 服务器——无需启动独立进程,用tool()定义工具、createSdkMcpServer()打包服务器,再传给query()的mcpServers选项即可。
const server = createSdkMcpServer({ name: 'level-data', tools: [myTool] }); const result = query({ prompt: '根据数据库里的难度配置生成第 3 关', options: { mcpServers: { 'level-data': server } }, });工具还能返回富内容(文本 + 图片 + 资源块混合),例如把素材图直接喂给模型参考,这在游戏美术生成场景中非常实用。相关 API 与完整示例见 docs/developers/sdk-typescript.md 和 packages/sdk-typescript/src/mcp/createSdkMcpServer.ts。
幕后原理:工具是如何被发现的?
OpenGame 启动时会执行一套完整的 MCP 发现流程:遍历mcpServers配置 → 按传输方式建立连接 → 拉取工具清单 → 校验并清洗 Schema → 注册到全局工具注册表。多个服务器暴露同名工具时会自动加前缀(serverName__toolName)解决冲突。这套机制的核心代码在:
- 发现层:packages/core/src/tools/mcp-client.ts
- 执行层:packages/core/src/tools/mcp-tool.ts
- 架构详解:docs/developers/tools/mcp-server.md
运行中的状态随时可以用斜杠命令/mcp查看,它会列出每个服务器的连接状态(CONNECTED / DISCONNECTED)和可用工具清单。
常见问题排查
| 症状 | 解决思路 |
|---|---|
mcp list显示 Disconnected | 检查 URL / command 是否正确,适当调大timeout |
| stdio 服务器起不来 | 使用绝对路径的 command,核对cwd与env |
| 环境变量不生效 | 确认变量在 OpenGame 运行环境中存在(GUI 与 shell 环境可能不同) |
| 沙箱模式下连接失败 | 用 Docker 方式打包服务器,确保依赖完整、网络可达 |
写在最后
MCP 是 OpenGame 从"会写代码的 AI"进化为"能连上整个开发工作流的游戏工厂"的关键一步:一条opengame mcp add命令,就能让 AI 游戏生成能力从孤立的代码输出,扩展到查数据库、调 API、跑测试的完整闭环。
延伸阅读:
- 用户向 MCP 指南:docs/users/features/mcp.md
- 开发者向 MCP 深度文档:docs/developers/tools/mcp-server.md
- 通过扩展分发 MCP 服务器:docs/developers/extensions/extension.md
【免费下载链接】OpenGameOpenGame: Open Agentic Coding for Games项目地址: https://gitcode.com/gh_mirrors/op/OpenGame
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考