Skip to main content
Glama
zzh233-ux

易语言 Universal MCP

by zzh233-ux
README.md
# 易语言 Universal MCP(allmcp)

让**任何兼容 MCP 协议的 AI 工具**直接在易语言 5.95 里读代码、写代码、设计窗口并运行程序。

支持的客户端包括 Claude Code / Claude Desktop、Cursor、Codex CLI、Kimi 以及任何遵循 [Model Context Protocol](https://modelcontextprotocol.io/) 的工具——本服务是标准 stdio MCP 服务,不绑定任何单一 AI 厂商。

> 本项目 fork 自 [KaiGe7384/e-language-codex-mcp](https://github.com/KaiGe7384/e-language-codex-mcp)(MIT),在其基础上做了通用化改造:去除 Codex 专属注册逻辑,安装脚本支持多客户端一键注册,并向任意 MCP 工具输出通用配置。感谢原作者的工作。

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

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

## 能做什么

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

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

## 三步安装

前提:Windows 10/11 x64、易语言 5.95、Node.js 20+,以及**任意一个兼容 MCP 的 AI 工具**。

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

安装脚本默认 `-Client auto`:检测到 Codex 会自动注册;也可以用 `-Client codex,claude,cursor` 同时注册多个客户端,并且**总会打印一段通用 MCP JSON 配置**,可直接粘贴进 Kimi、Claude Code、Continue 等任何其他工具。详见 [安装文档](docs/INSTALL.md)。

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

## 通用 MCP 配置(任意客户端)

如果你的 AI 工具不在自动注册列表里,把下面这段加入它的 MCP 配置即可(路径以实际安装位置为准):

```json
{
  "mcpServers": {
    "e-language": {
      "command": "node",
      "args": ["%LOCALAPPDATA%\\E-Language-Universal-MCP\\server.mjs"],
      "env": {
        "E_LANGUAGE_RUNTIME_DLL": "%LOCALAPPDATA%\\E-Language-Universal-MCP\\eui_runtime.dll"
      }
    }
  }
}
```

## 怎么用

在你的 AI 工具中直接描述需求,例如:

> 用易语言新建一个 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` 模板。

## 多开易语言(多实例)

v0.9.1 起,每个易语言进程使用独立管道 `\\.\pipe\e-language-mcp-<PID>`:

- 勾选支持库启动易语言时,会弹窗显示当前实例的管道名;把这个管道名发给 AI,即可精确操作对应 IDE。
- 新增 `ide_list` 工具:列出所有易语言实例(管道、PID、当前工程路径)。
- 新增 `ide_select` 工具:按管道名切换操作目标;单实例时无需任何操作,自动连接。

## 已知限制

- 当前针对易语言 5.95、每个实例单个已保存活动工程和单个启动窗口。
- `code_compact_current` 只提供只读预览,不执行不可靠的批量删除。
- IDE 输出控件无法识别时,只返回编译成败,不进行界面自动化兜底。
- 易语言支持库内部的命令名(如 `Codex_桥接状态`)保留原标识以兼容预编译二进制,仅是内部命名,不影响任何 AI 工具连接。

## 从源码构建

需要 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)。

## 许可证

[MIT License](LICENSE),保留上游 [KaiGe7384/e-language-codex-mcp](https://github.com/KaiGe7384/e-language-codex-mcp) 的版权声明。