AutoLinker
AutoLinker es la biblioteca de soporte de agente de IA para 易语言. Mediante ingeniería inversa, permite que la IA escriba código de forma totalmente automática: según tus necesidades, busca y lee automáticamente el código relevante, y lo edita, modifica e inserta directamente.
También ofrece un servicio MCP local que permite conectar el IDE de 易语言 con herramientas como Codex, Claude Code, Gemini CLI, etc., para que estas puedan invocar la codificación totalmente automática de 易语言 (ver la explicación de MCP más abajo).
📖 Libro blanco de prácticas de 易语言 × AI Agent · 📖 e-packager: descompone .e en txt, modifica y vuelve a empaquetar
Inicio rápido
Tras descargar la versión Release, coloca AutoLinker.fne en el directorio lib de 易语言 y habilita esta biblioteca de soporte.
📊 Antes de elegir un modelo, puedes consultar la puntuación de referencia de modelos de lenguaje grandes para 易语言 para comparar las respuestas reales y los resultados de compilación sin interfaz.
Related MCP server: ACE-MCP
Funciones principales
⭐ Pestaña de sesión de AI Agent
Dile a la IA lo que quieres hacer y ella buscará, leerá y editará automáticamente el código fuente del proyecto actual.
⭐ Funciones de IA en el menú contextual
Optimizar función con IA — Realiza una optimización equivalente de la función actual
Añadir comentarios con IA — Genera comentarios para la función actual
Traducir función y nombres de variables con IA — Renombra a inglés en
lowerCamelCaseTraducir texto seleccionado con IA
Añadir código con IA según el tipo de página actual — Genera código nuevo basándose en el tipo de página actual, el contexto y tus necesidades
⭐ Archivo de normas del proyecto {nombre de archivo}.AGENTS.md
En el mismo directorio que el archivo fuente .e, crea un .AGENTS.md con el mismo nombre; su contenido se inyecta automáticamente en el prompt del sistema de todas las funciones de IA, actuando como normas del proyecto (similar al CLAUDE.md de Claude Code y al AGENTS.md de Codex).
Archivo fuente | Archivo de normas (mismo directorio) |
|
|
|
|
⭐ Distintos archivos fuente .e usan distintos enlazadores
Ya no necesitas cambiar de enlazador manualmente. Añade varios conjuntos de configuración link.ini en 【Menú Herramientas → Configuración de AutoLinker → Enlazador】, y cambia el enlazador usado por el archivo fuente actual desde 【Menú principal → Compilar】.
⭐ Cambio automático entre módulos ec dinámicos y estáticos al depurar / compilar
Prepara un par de archivos ec para un mismo módulo (versión dinámica / versión estática). AutoLinker reemplaza automáticamente el módulo correspondiente importado en el proyecto al iniciar la depuración y al iniciar la compilación. Ejemplos típicos son VMP SDK y ExDui: la compilación requiere la versión estática declarada en Lib, mientras que la depuración solo puede usar la versión dinámica declarada en Dll.
En el menú «Herramientas» del IDE, abre Configuración de cambio automático de módulos EC de AutoLinker para mantener las reglas. Nota: primero debes añadir manualmente una de las dos variantes (dinámica o estática) del ec, y los dos ec de un par deben estar en la misma carpeta (al reemplazar solo se cambia el nombre del archivo).
⭐ Compilación a nivel de proyecto según configuración
En «Menú Herramientas → Configuración de AutoLinker → Configuración de compilación», puedes mantener varias configuraciones de salida para el proyecto .e/.ec actual, con soporte para
auto, EXE de ventana, EXE de consola, DLL, destino de módulo de 易语言, compilación estática y acciones de PowerShell previas/posteriores a la compilación.
Después de guardar, elige la configuración en «Menú principal → Compilar → Compilar según configuración»; la tarea genera una instantánea del proyecto actual del IDE y se ejecuta de forma asíncrona en una instancia oculta e independiente de
e.exe. La configuración se guarda en <nombre de archivo>.autolinker.json junto al archivo fuente; los campos y variables detallados se encuentran en
docs/project-build-menu-integration.md.
Servicio MCP local
Para conectar el MCP de 易语言 a herramientas como Codex, Claude Code, Gemini CLI, etc., el cliente debe ser compatible con MCP Streamable HTTP.
Dirección del servicio
Los clientes externos se conectan de forma fija a
http://127.0.0.1:19207/mcp; cada instancia del IDE utiliza un puerto de backend interno a partir de19208, y la puerta de enlace es asumida por la instancia superviviente.Tras un inicio correcto, la ventana de salida del IDE y
autolinker.logregistrarán lo siguiente:[AutoLinker][LocalMCP] 本地 MCP 服务已启动:http://127.0.0.1:19207/mcp
Protocolo
JSON-RPC 2.0;initializenegocia2025-11-25/2025-03-26/2024-11-05(las versiones desconocidas retroceden a2025-11-25).Métodos compatibles:
initialize,notifications/initialized,ping,tools/list,tools/call,DELETE /mcp.Límite de seguridad: solo se enlaza a
127.0.0.1, rechaza solicitudes de navegador conOriginno vacío, sin CORS / Bearer Token. Las llamadas externas no muestran una ventana de aprobación, pero siguen aplicando la lista blanca de herramientas, el esquema de parámetros, la actualización del espacio de trabajo y la verificación CAS del hash del código fuente. Cada sesión de cliente nativo debe llamar con éxito arefresh_workspace_mirroruna vez. Hay 4 subprocesos de trabajo fijos, con un máximo de 32 conexiones en cola; en caso de sobrecarga devuelve HTTP 503.
Ejemplos de configuración de cliente
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 — En la página de configuración de MCP añade: Name AutoLinker, Type http / streamable_http, URL http://127.0.0.1:19207/mcp.
Modelo de lectura/escritura del código fuente del proyecto
La IA integrada prepara automáticamente la imagen en modo
fullantes de cada ronda de peticiones; las sesiones MCP externas deben llamar arefresh_workspace_mirrorantes de la primera lectura/escritura. La imagen se descomprime con e-packager en%TEMP%/AutoLinker/workspace-mirror/(incluye cambios no guardados) y no contamina el directorio de código fuente.modeadmiteauto/main_only/full.Solo llama a
e_packagercuando el usuario pida explícitamente analizar, ver, consultar o replicar archivos.e/.ecexternos, y la sesión MCP actual debe haber llamado antes con éxito arefresh_workspace_mirror. El parámetro obligatorio esfile_path(ruta absoluta, o ruta relativa al directorio del proyecto actual; solo se aceptan archivos.e/.ecnormales existentes). El archivo se descomprime en el directorio de solo lecturaunimported_code/{nombre de archivo}/de la imagen actual; usalist_files/search_codepara localizar archivos y luegoread_file/read_filespara leerlos. No usesread_code_itemsobre código no referenciado ni utilices herramientas de escritura para modificarlo. Un directorio con el mismo nombre solo se reemplaza tras una descompresión correcta; en caso de éxito devuelveoperation="unpack",output_directory,file_count, el nuevomirror_generationyread_hint. La descompresión cambia la generación de la imagen, por lo que la lectura paginada debe reiniciarse desde la primera página.Todas las lecturas usan rutas relativas dentro de la imagen (
list_files,search_code,read_file,read_files,read_code_item); para archivos grandes se devuelvenext_source_byte_offsetpara continuar la lectura. Para la página siguiente se recomienda devolver tal cual elmirror_generationno nulo de la página anterior; si se omite, se vincula automáticamente a la generación actual de la imagen, pero los cursores con una generación anterior pasada explícitamente seguirán siendo rechazados.Antes de editar, usa
read_real_filepara obtener la vista paginada ycode_hashcomo línea base CAS. Las herramientas de escritura (edit_file,multi_edit_file,write_file, etc.) se dirigen afile_path, se asignan de nuevo al elemento del programa en el IDE y escriben directamente en el IDE, sin compilar de vuelta.Las escrituras deben incluir el SHA-256
expected_base_hash(para restaurar se usaexpected_current_hash) para evitar que una línea base antigua sobrescriba cambios nuevos; el resultado solo devuelve el hash, la instantánea, la verificación y las estadísticas de cambios; el resultado completo está enstructuredContent.src/*.xmlson los archivos de interfaz de ventana nativos de 易语言, solo para lectura y búsqueda. Las herramientas actuales no admiten ajustar la posición, el tamaño, el nivel o las propiedades de ventanas o controles, ni añadir o eliminar controles, ni crear, eliminar o modificar enlaces de eventos de controles. El código de los módulos de ventana y el código de manejo de eventos existentes en el correspondientesrc/*.txtsiguen siendo editables, pero añadir un subprograma de evento nuevo no significa que se haya establecido el enlace del evento del control. Las tablas fijas (constantes, variables globales, declaraciones DLL, tipos de datos) pueden editarse a través de la ruta correspondiente; la reescritura de variables de módulo se procesará en un formato aceptable para el IDE.Cuando hay varios IDEs abiertos a la vez, llama primero a
list_instancespara ver el proyecto de destino y luego usaselect_instancepara elegir la instancia; la selección queda aislada porMcp-Session-Idy no cambia silenciosamente cuando una instancia se cierra.
Herramientas públicas (tools/list)
Categoría | Método | Descripción |
Lectura |
| Refresca la imagen desde el proyecto en memoria del IDE ( |
Lectura |
| Descomprime otros |
Lectura |
| Lista los archivos de la imagen mediante glob |
Lectura |
| Busca archivo por archivo dentro de la imagen; admite patterns múltiples, glob, contexto y paginación |
Lectura |
| Lee uno o varios archivos o intervalos, con números de línea |
Lectura |
| Lee el subprograma o bloque de declaración completo por nombre de elemento de código de nivel superior |
Lectura |
| Devuelve la vista paginada y |
Edición |
| Reemplazo de texto exacto (individual / múltiple) |
Edición |
| Sobrescribe por completo el código fuente en la página real; admite |
Edición |
| Previsualiza las diferencias estructuradas sin escribir |
Edición |
| Restaura la instantánea anterior a la escritura |
Página actual |
| Nombre, tipo y origen de análisis de la página actual |
Página actual |
| Ruta del código fuente, ruta del proceso del IDE, puerto MCP, etc. |
Enrutamiento |
| Lista las instancias del IDE de AutoLinker en ejecución y la selección de la sesión actual |
Enrutamiento |
| Enruta la sesión MCP actual a la instancia especificada |
Compilación |
|
|
Interacción |
| Ejecuta PowerShell tras confirmación; termina el árbol de procesos si hay tiempo de espera |
Red |
| Busca páginas web en línea |
Red |
| Obtiene texto HTTP(S) de la red pública; bloquea bucle local / red privada / redirecciones |
Red |
| Extrae el cuerpo de la página web y un resumen de enlaces absolutos |
Otras funciones
⭐ Compilación por línea de comandos sin interfaz (headless)
Se recomienda usar AutoLinkerTest headless-compile para iniciar e.exe: cierra automáticamente los diálogos de inicio, oculta el IDE, llama a compile_with_output_path y muestra el JSON resultante en la consola. Este lanzador admite que varios procesos lo invoquen a la vez: para el mismo proyecto .e, las llamadas se ponen en cola en orden de invocación; proyectos distintos pueden compilarse en paralelo; la ruta de salida debe seguir siendo única por parte de quien invoca.
.\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 admite auto, win_exe, win_console_exe, win_dll, ecom; --static solo es aplicable a EXE/DLL. Si se omite --result, cada invocación genera un archivo independiente <archivo de salida>.headless.<invocation-id>.json y actualiza de forma atómica el archivo compatible <archivo de salida>.headless.json. {directorio de 易语言}\AutoLinker\Log\headless_compile_last.json también es el «último resultado» actualizado de forma atómica; los invocadores concurrentes no deben depender de él para distinguir sus respectivos resultados. Cuando se pasa explícitamente --result, los invocadores concurrentes deben usar rutas diferentes para cada uno.
También se puede iniciar directamente el programa principal (solo se encarga de la compilación headless; para los diálogos iniciales y la coordinación del arranque concurrente del mismo proyecto se sigue recomendando el lanzador):
"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"⭐ Reescritura de funciones de la biblioteca principal
Sustituir funciones de la biblioteca principal con C++ moderno puede mejorar significativamente el rendimiento y aporta efectos de protección contra el descifrado por características de funciones e y evasión de antivirus; también es aplicable a bibliotecas de terceros.
Método de uso
Determina la
firma de funcióncorrecta en IDA (la mayoría de las funciones de la biblioteca principal están enLibFn.objdekrnln_static.lib); puedes consultar la implementación de código abierto de la biblioteca principal de BlackMoon.Implementa la función en tu propia lib (consulta el proyecto
TestCore) y compila en Release como lib de 32 bits. Ejemplo:
// 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;
}En el menú «Herramientas» del IDE, abre Configuración de reescritura de funciones de la biblioteca principal de AutoLinker para mantener la lista de
.libque se deben enlazar de forma forzada:Ruta de Lib: el
.libque se añade al enlazador (se coloca antes dekrnln_static.libpara sobrescribir símbolos del mismo nombre)Coincidencia de enlazador: si se deja vacío, se aplica a todos los enlazadores; si se rellena con texto, solo se aplica cuando el nombre del enlazador seleccionado contiene ese texto (p. ej.,
vc2022+pf)Interruptor de activación: permite desactivar temporalmente una regla
Tras guardar, la compilación estática aplica el cambio; aparecerán advertencias como
LNK4006/LNK4088, que no afectan a la ejecución.
Nota
Este método activa automáticamente
/FORCEdel enlazador para ignorar conflictos.Tu propia lib debe tener
/GLdesactivado; de lo contrario, el segundo enlazado ignorará el orden de libs ajustado por AutoLinker.El ejemplo
TestCoreusa C++20 y requiere el enlazador VC2022; la página de configuración está basada en WebView2, así que asegúrate de tener el runtime instalado.
⭐ La tecla de retroceso del ratón vuelve a la modificación anterior
Una función común en otros IDEs, por preferencia personal.
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