AutoLinker
AutoLinker 是易语言的 AI Agent 支持库,通过逆向让 AI 全自动编写代码:根据你的需求自动查找、读取相关代码,并直接编辑、修改、插入。
同时提供本地 MCP 服务,可将易语言 IDE 接入 Codex、Claude Code、Gemini CLI 等工具,让它们调用易语言全自动编码(见下方 MCP 说明)。
快速开始
下载 Release 后,将 AutoLinker.fne 放入易语言 lib 目录并启用该支持库。
🔧 AI / MCP 功能配置指南(API Key、中转站、各平台配置)
📊 选择模型前,可查看易语言大模型基准评分,对比真实回包与无头编译成绩。
Related MCP server: ACE-MCP
核心功能
⭐ AI Agent 会话页签
告诉 AI 你要做什么,它会自动搜索、读取、编辑当前工程源码。
⭐ 右键菜单 AI 功能
AI 优化函数 — 对当前函数做等价优化
AI 添加注释 — 为当前函数生成注释
AI 翻译函数 + 变量名 — 重命名为英文
lowerCamelCaseAI 翻译选中文本
AI 按当前页类型添加代码 — 依据当前页类型、上下文和你的需求生成新增代码
⭐ 项目规范文件 {文件名}.AGENTS.md
在 .e 源文件同目录下创建同名 .AGENTS.md,其内容会自动注入所有 AI 功能的系统提示词,作为项目规范(类似 Claude Code 的 CLAUDE.md、Codex 的 AGENTS.md)。
源文件 | 规范文件(同目录) |
|
|
|
|
⭐ 不同 .e 源文件使用不同链接器
再也不用手动来回切换链接器。在【工具菜单 → AutoLinker 设置 → 链接器】中添加多组 link.ini 配置,并在【主菜单 → 编译】下切换当前源文件所用的链接器。
⭐ 调试 / 编译时动静态 ec 模块自动切换
为同一模块准备一对 ec 文件(动态版 / 静态版),AutoLinker 会在开始调试和开始编译时自动替换工程中已导入的对应模块。典型场景如 VMP SDK、ExDui:编译需 Lib 声明的静态版,调试只能用 Dll 声明的动态版。
在 IDE「工具」菜单打开 AutoLinker EC 模块自动切换设置 维护规则。注意:需先自行引用动/静任一 ec,且成对的两个 ec 必须放在同一文件夹中(替换时只改文件名)。
⭐ 项目级按配置编译
在“工具菜单 → AutoLinker 设置 → 编译配置”中为当前 .e/.ec 工程维护多套输出配置,支持
auto、窗口 EXE、控制台 EXE、DLL、易模块目标、静态编译,以及编译前/后 PowerShell 动作。
保存后从“主菜单 → 编译 → 按配置编译”选择配置;任务会生成当前 IDE 工程快照,在独立隐藏的
e.exe 实例中异步执行。配置保存在源文件旁的 <文件名>.autolinker.json,详细字段和变量见
docs/project-build-menu-integration.md。
本地 MCP 服务
将易语言 MCP 接入 Codex、Claude Code、Gemini CLI 等工具,需客户端支持 MCP Streamable HTTP。
服务地址
外部客户端固定连接
http://127.0.0.1:19207/mcp;各 IDE 实例使用19208之后的内部后端端口,网关由存活实例接管。启动成功后 IDE 输出窗口和
autolinker.log会记录:[AutoLinker][LocalMCP] 本地 MCP 服务已启动:http://127.0.0.1:19207/mcp
协议
JSON-RPC 2.0,initialize协商2025-11-25/2025-03-26/2024-11-05(未知版本回退2025-11-25)。支持方法:
initialize、notifications/initialized、ping、tools/list、tools/call、DELETE /mcp。安全边界:仅绑定
127.0.0.1,拒绝带非空Origin的浏览器请求,无 CORS / Bearer Token。外部调用不弹审批窗,但仍执行工具白名单、参数 Schema、工作区刷新与源码哈希 CAS 校验。原生客户端每个会话须先成功调用一次refresh_workspace_mirror。固定 4 个工作线程,最多排队 32 个连接,过载返回 HTTP 503。
客户端配置示例
Claude Code — ~/.claude.json;Gemini CLI — ~/.gemini/settings.json
{
"mcpServers": {
"AutoLinker": {
"transport": "streamable_http",
"url": "http://127.0.0.1:19207/mcp"
}
}
}Codex — ~/.codex/config.toml
[mcp_servers.AutoLinker]
url = "http://127.0.0.1:19207/mcp"Cursor / Windsurf / IDE — MCP 设置页添加:Name AutoLinker,Type http / streamable_http,URL http://127.0.0.1:19207/mcp。
工程源码读写模型
内置 AI 每轮请求前以
full模式自动准备镜像;外部 MCP 会话首次读写前须调用refresh_workspace_mirror。镜像由 e-packager 解包到%TEMP%/AutoLinker/workspace-mirror/(含未保存改动),不污染源码目录。mode支持auto/main_only/full。仅当用户明确要求解析、查看、参考或复刻外部
.e/.ec文件时,才调用e_packager,且当前 MCP 会话必须先成功调用refresh_workspace_mirror。参数为必填的file_path(绝对路径,或相对当前工程目录的路径;只接受已存在的普通.e/.ec文件),会将文件解包到当前镜像的只读目录unimported_code/{文件名}/;使用list_files/search_code定位文件,再用read_file/read_files读取,不对未引用源码使用read_code_item,也不得使用写工具修改。同名目录仅在解包成功后替换;成功返回operation="unpack"、output_directory、file_count、新的mirror_generation和read_hint。解包会改变镜像代次,分页读取须从第一页重新开始。读取统一走镜像相对路径(
list_files、search_code、read_file、read_files、read_code_item);大文件返回next_source_byte_offset用于续读。续页建议原样回传上一页的非零mirror_generation;漏传时自动绑定当前镜像代次,显式传入的旧代次游标仍会被拒绝。编辑前用
read_real_file取分页视图和code_hash作为 CAS 基线。写工具(edit_file、multi_edit_file、write_file等)以file_path为目标,映射回 IDE 程序项后直接写回 IDE,不回包编译。写入须带 SHA-256
expected_base_hash(恢复用expected_current_hash)防止旧基线覆盖新改动;结果仅返回哈希、快照、验证与变更统计,完整结果在structuredContent。src/*.xml为易语言原生窗口界面文件,仅供读取搜索。当前工具不支持调整窗口或控件的位置、大小、层级和属性,不支持添加、删除控件,也不支持新增、删除或修改控件事件绑定。对应src/*.txt中的窗口程序集代码和已有事件处理代码仍可编辑,但新增事件子程序不代表已经建立控件事件绑定。固定表(常量、全局变量、DLL 声明、数据类型)可经对应路径编辑,程序集变量写回会按 IDE 可接受格式处理。同时打开多个 IDE 时,先调用
list_instances查看目标工程,再用select_instance选择实例;选择按Mcp-Session-Id隔离,实例退出后不会静默切换。
公开工具(tools/list)
类别 | 方法 | 说明 |
读取 |
| 从 IDE 内存工程刷新镜像( |
读取 |
| 在刷新后的镜像中解包其它 |
读取 |
| 按 glob 列出镜像内文件 |
读取 |
| 镜像内逐文件搜索,支持批量 patterns、glob、上下文、分页 |
读取 |
| 读取单个 / 批量文件或区间,带行号 |
读取 |
| 按顶层代码项名读取完整子程序 / 声明块 |
读取 |
| 从 IDE 真实页返回分页视图与 |
编辑 |
| 精确文本替换(单个 / 批量) |
编辑 |
| 完整源码覆盖真实页,支持 |
编辑 |
| 预览结构化差异,不写回 |
编辑 |
| 恢复写入前快照 |
当前页 |
| 当前页名称、类型与解析来源 |
当前页 |
| 源码路径、IDE 进程路径、MCP 端口等 |
路由 |
| 列出运行中的 AutoLinker IDE 实例和当前会话选择 |
路由 |
| 将当前 MCP 会话路由到指定实例 |
编译 |
|
|
交互 |
| 经确认后执行 PowerShell,超时终止进程树 |
联网 |
| 联网搜索网页 |
联网 |
| 抓取公网 HTTP(S) 文本,拦截回环 / 私网 / 重定向 |
联网 |
| 提取网页正文与绝对链接摘要 |
其他功能
⭐ 无头命令行编译
推荐用 AutoLinkerTest headless-compile 启动 e.exe:自动关闭启动期弹窗、隐藏 IDE、调用 compile_with_output_path,并把结果 JSON 输出到控制台。该启动器支持多个进程同时调用:同一 .e 工程按调用顺序排队,不同工程可并行编译;输出路径仍应由调用方自行保持唯一。
.\bin\fne_release\AutoLinkerTest.exe headless-compile `
"C:\path\to\e571.exe" "D:\demo\demo.e" "D:\demo\build\demo.exe" `
--target auto --static --result "D:\demo\build\compile-result.json" --timeout 120target 支持 auto、win_exe、win_console_exe、win_dll、ecom;--static 仅适用于 EXE/DLL。省略 --result 时,每次调用生成独立的 <输出文件>.headless.<invocation-id>.json,并原子更新兼容文件 <输出文件>.headless.json。{易语言目录}\AutoLinker\Log\headless_compile_last.json 也是原子更新的“最近一次结果”,并发调用方不应依赖它区分各自结果。显式传入 --result 时,并发调用方应分别使用不同路径。
也可直接启动主程序(仅负责无头编译,早期弹窗和同一工程的并发启动协调仍建议用启动器):
"C:\path\to\e571.exe" "D:\demo\demo.e" `
--autolinker-headless-compile `
--autolinker-output "D:\demo\build\demo.exe" `
--autolinker-target auto `
--autolinker-result "D:\demo\build\compile-result.json" `
--autolinker-invocation-id "compile-001"⭐ 重写核心库函数
用现代 C++ 替换核心库函数,可大幅提升性能,并具备防 e 函数特征破解与免杀效果,同样适用于第三方库。
使用方法
在 IDA 中确定正确的
函数签名(核心库函数大多在krnln_static.lib的LibFn.obj),可参考黑月核心库开源实现。在自己的 Lib 中实现函数(参考
TestCore项目),Release 编译为 32 位 lib。示例:// C++20(需 VC2022)重写核心库「寻找文本」,约为核心库 300% 速度 extern "C" void __cdecl krnln_fnInStr(PMDATA_INF pRetData, INT nArgCount, PMDATA_INF pArgInf) { std::string_view inputString = pArgInf[0].m_pText; std::string_view searchString = pArgInf[1].m_pText; if (inputString.empty() || searchString.empty()) { pRetData->m_int = -1; return; } size_t start = (pArgInf[2].m_dtDataType == _SDT_NULL || pArgInf[2].m_int <= 1) ? 0 : pArgInf[2].m_int - 1; auto r = (pArgInf[3].m_bool) ? std::search(inputString.begin() + start, inputString.end(), searchString.begin(), searchString.end(), [](char a, char b) { return std::tolower(a) == std::tolower(b); }) : std::search(inputString.begin() + start, inputString.end(), searchString.begin(), searchString.end()); pRetData->m_int = (r != inputString.end()) ? std::distance(inputString.begin(), r) + 1 : -1; }在 IDE「工具」菜单打开 AutoLinker 核心库函数重写设置 维护要强制链接的
.lib列表:Lib 路径:追加链接的
.lib(排在krnln_static.lib之前以覆盖同名符号)链接器匹配:留空对所有链接器生效;填文本则仅当所选链接器名称包含该文本时生效(如
vc2022+pf)启用开关:可临时停用某条规则
保存后进行静态编译即生效,会出现
LNK4006/LNK4088等告警,不影响运行。
注意
此方法自动开启链接器
/FORCE忽略冲突。自己的 Lib 需关闭
/GL,否则二次链接会忽略 AutoLinker 调整的 Lib 顺序。示例
TestCore使用 C++20,须用 VC2022 链接器;设置页基于 WebView2,请确保已安装运行时。
⭐ 鼠标后退键回退到上个修改
其他 IDE 常见的功能,个人喜好。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEmpower any MCP-compatible AI Agent(MCP Client) with engineering-grade capabilities to understand, modify, run, and deliver real-world code repositories.941Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to perform local code search, indexing, and analysis across Java, JavaScript/TypeScript, .NET/C#, and Python projects through the MCP protocol.2Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables LLM-powered code analysis, generation, debugging, and context management through MCP integration with IDEs like Cursor and Claude Desktop.
- AlicenseNot gradedqualityAmaintenanceEnables compatible MCP AI tools to read, write, design windows, and run programs in the E-Language IDE.MIT
Related MCP Connectors
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/giaosang8888-cmd/AutoLinker-5.1.2-Local'
If you have feedback or need assistance with the MCP directory API, please join our Discord server