Skip to main content
Glama
KaiGe7384

e-language-codex-mcp

by KaiGe7384
README.md
# 易语言 Codex MCP

> 项目交流 QQ 群:`262430517` · 企业级云服务器:[迅度云](https://xunduyun.com/)

让 Codex 直接在易语言 5.95 里读代码、写代码、设计窗口并运行程序。

它不是鼠标脚本,也不会修改 `.e` 二进制格式。所有 IDE 操作都走易语言官方支持库 API,界面数据保存为可审查的 UTF-8 `.eui.json`。

![实际运行的星盾安全工具箱](docs/images/demo-security-toolkit.png)

## 能做什么

- 读取和批量修改当前易语言工程代码。
- 新建可直接运行的 `windows-ui` 工程。
- 在易语言内使用 Codex UI 设计窗口,支持拖拽、属性编辑和撤销重做。
- 保存、默认运行、停止程序;只有明确要求时才编译成品。
- 读取编译输出和事件追踪,定位语法错误与无响应按钮。
- 在同一个支持库中提供 222 条 Rust 实现的中文扩展命令。

![Codex 写入的真实易语言代码](docs/images/ide-easy-language-code.jpg)

## 三步安装

前提:Windows 10/11 x64、易语言 5.95、Node.js 20+、Codex CLI。

1. 从 Releases 下载 ZIP,完整解压后双击 `安装.bat`。
2. 打开易语言,在“工具 → 支持库配置”中勾选“Codex MCP IDE桥接支持库”。
3. 重启易语言一次,再重启 Codex或新建任务。

安装支持库时需要关闭易语言一次。安装完成后的日常写代码、运行和调试不需要反复关闭 IDE。

完整步骤和非默认安装目录说明见 [安装文档](docs/INSTALL.md)。

## 怎么用

在 Codex 中直接描述需求,例如:

> 用易语言新建一个 windows-ui 程序,做一个文件哈希工具。先设计界面并写事件代码,完成后默认运行,不要编译成品。

常用 MCP 工具:

| 目标 | 工具 |
| --- | --- |
| 查看连接和活动工程 | `ide_status`、`project_get_active` |
| 新建 UI 工程 | `project_new`,选择 `windows-ui` |
| 读取和修改代码 | `code_read_current`、`code_apply_current`、`code_batch` |
| 修改可视界面 | `ui_get_document`、`ui_apply_batch`、`ui_sync_code` |
| 保存和运行 | `project_save`、`build_run`、`build_stop` |
| 按需编译和读错误 | `build_compile`、`build_get_diagnostics` |

![支持库中的中文分类和编译输出](docs/images/ide-support-library.png)

## Rust 扩展能力

支持库共 223 条命令,其中 222 条为通用扩展能力,按中文前缀分成 21 类:文本、JSON、文件、目录、路径、系统、网络、密码与密钥、压缩、媒体、图片等。

代表能力包括 SHA-256/BLAKE3、Argon2id、AES-GCM、Ed25519、X25519、JWT、MessagePack、CBOR、Zstandard、二维码、图片感知哈希、SimHash 和雪花 ID。完整列表见 [扩展命令说明](docs/扩展命令-使用说明.md)。

## 示例

- [星盾安全工具箱](examples/星盾安全工具箱.e):SHA-256、安全密码和 AES 密钥示例。
- [声律播放器](examples/声律播放器.e):媒体播放和自定义界面示例。

示例的 `.eui.json` 与 `.e` 文件放在同一目录。运行时 MCP 会自动部署 `eui_runtime.dll`。

## 安全边界

- 不使用 `SendInput`、坐标点击或键鼠模拟。
- 不逆向调用 IDE 内部函数。
- 不解析或直接改写 `.e` 二进制工程。
- 工程切换前先调用官方保存接口,避免“是否保存关闭”弹窗。
- 所有写工具带修订号,过期内容会拒绝覆盖。
- 普通旧工程不会被强行注入 UI 脚手架;UI 项目请使用 `windows-ui` 模板。

## 已知限制

- 当前针对易语言 5.95、单个已保存活动工程和单个启动窗口。
- `code_compact_current` 只提供只读预览,不执行不可靠的批量删除。
- IDE 输出控件无法识别时,只返回编译成败,不进行界面自动化兜底。

## 从源码构建

需要 Visual Studio x86 C++ Build Tools、Windows SDK、Rust 和 `i686-pc-windows-msvc` 目标。

```powershell
rustup target add i686-pc-windows-msvc
npm.cmd install
npm.cmd run build:all
npm.cmd run test:all
npm.cmd run check
```

贡献前请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。

## 交流与服务

- 易语言 Codex MCP 项目交流 QQ 群:`262430517`
- 企业级云服务器:[迅度云](https://xunduyun.com/)

## 许可证

[MIT License](LICENSE)