内容
# Overdare MCP
一个 [MCP](https://modelcontextprotocol.io) 服务器,允许 AI 代理(Claude Code / Claude Desktop)驱动 **OVERDARE Studio** — 浏览 DataModel,创建和编辑实例,编写 Luau 脚本,并启动游戏测试。
## 工作原理
OVERDARE Studio 已经托管了一个本地 JSON-RPC 服务器(与其内置的"diligent"代理使用的相同)。这个 MCP 服务器是一个薄桥接器 — 类似于 `unity-mcp` 的连接器,除了 **Studio 自身托管本地服务器**,因此无需安装插件。
```
Claude ──stdio──▶ overdare-mcp ──HTTP POST──▶ Studio RPC (localhost:13377/rpc)
└─ OVERDARE Studio (必须运行)
```
> Studio 必须打开项目才能使工具生效。如果 Studio 未运行,工具会返回一个明确的“无法访问 Studio”的错误,而不是挂起。
## 设置
```bash
npm install
npm run build
```
验证连接(首先打开 OVERDARE Studio):
```bash
npm run probe # 烟雾测试 + level.browse
npm run probe -- instance.read '{"path":"Workspace.Baseplate"}' # 检查任意方法
```
## 在 Claude Code 中注册
在项目中将以下内容添加到 `.mcp.json` 中(此存储库中包含一个示例):
```json
{
"mcpServers": {
"overdare": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/overdare-mcp/dist/index.js"]
}
}
}
```
对于 **Claude Desktop**,在 `claude_desktop_config.json` 中将相同的块添加到 `mcpServers` 下。
### 配置(环境变量)
| 变量 | 默认值 | 目的 |
| --- | --- | --- |
| `STUDIO_RPC_HOST` | `localhost` | Studio RPC 主机 |
| `STUDIO_RPC_PORT` | `13377` | Studio RPC 端口 |
| `STUDIO_RPC_TIMEOUT_MS` | `30000` | 每次调用超时 |
## 工具
| 工具 | RPC 方法 | 目的 |
| --- | --- | --- |
| `overdare_level_browse` | `level.browse` | 浏览 DataModel 树 |
| `overdare_level_save` | `level.save.file` | 保存项目 |
| `overdare_level_apply` | `level.apply` | 应用批量更改集(高级) |
| `overdare_level_publish` | `level.publish` | 发布到 OVERDARE Hub |
| `overdare_instance_read` | `instance.read` | 读取实例属性 |
| `overdare_instance_upsert` | `instance.upsert` | 创建/更新实例 |
| `overdare_instance_move` | `instance.move` | 移动实例 |
| `overdare_instance_delete` | `instance.delete` | 删除实例 |
| `overdare_script_read` | `script.read` | 读取 Luau 源代码 |
| `overdare_script_add` | `script.add` | 创建脚本 |
| `overdare_script_edit` | `script.edit` | 替换脚本源代码 |
| `overdare_script_delete` | `script.delete` | 删除脚本 |
| `overdare_script_grep` | `script.grep` | 跨脚本的正则表达式搜索 |
| `overdare_game_play` | `game.play` | 启动游戏测试 |
| `overdare_game_stop` | `game.stop` | 停止游戏测试 |
| `overdare_game_screenshot` | `game.screenshot` | 捕获视口 |
| `overdare_rpc` | _任意_ | 出口:使用原始参数调用任意 RPC 方法 |
## 状态 / 下一步
RPC 端点、端口和方法名称源自 OVERDARE Studio 运行时。每个方法的确切 **参数/响应字段形状** 仍需要针对实时 Studio 进行确认 — 使用 `npm run probe -- <method> '<json>'` 捕获真实形状,然后在 `src/tools.ts` 中完善 Zod 模式。`overdare_rpc` 工具无论如何都有效,是迭代过程中的安全回退。