local-agent-mcp
Local Agent MCP
English · Permisos · Arquitectura
Haz que ChatGPT Pro trabaje directamente en tu ordenador local
Le das una tarea a ChatGPT y puede invocar las herramientas MCP locales: leer proyectos, modificar archivos, ejecutar pruebas, revisar el Git Diff y crear Commits.
Las tareas complejas se pueden delegar al Codex local. ChatGPT sigue encargándose de dividir los pasos, revisar el progreso, añadir requisitos y hacer la comprobación final.
ChatGPT Pro
→ Local Agent MCP
→ 本地文件 / 测试 / Git / CodexNo hace falta copiar y pegar código repetidamente, ni desviar cada tarea a Codex.
Este es un proyecto comunitario no oficial. No es un producto de OpenAI ni representa a OpenAI.
Related MCP server: chatgpt-codex-tools-mcp
Inicio rápido
Requisitos previos
Prepara lo siguiente:
macOS o Linux
Python 3.11 o superior
Git
El
tunnel-clientoficial de OpenAIUn entorno de ChatGPT compatible con MCP Apps personalizadas
Un Tunnel ID
Una Tunnel Runtime Key correspondiente
En macOS puedes instalar primero las herramientas básicas:
brew install uv tmux
brew install openai/tools/tunnel-clientEntrégaselo a la IA en una frase
Envía esta frase a una IA que pueda operar un terminal local:
Instala https://github.com/ezra-y/local-agent-mcp en mi ordenador y completa la configuración, el arranque y la verificación según el README.
Instalación manual: Instalación en ChatGPT.
Características destacadas
Característica | Descripción |
ChatGPT opera directamente proyectos locales | Las operaciones habituales de archivos, pruebas y Git las realiza ChatGPT invocando directamente las herramientas locales. |
ChatGPT actúa como director general | Las tareas sencillas se completan directamente; las complejas se pueden delegar al Codex local. |
El Agent se puede ampliar | Codex es el primer Adapter; los futuros Agents se integran en la misma capa de control. |
Estado de tareas consultable | Workflow, Step y Job se guardan en SQLite local y se pueden consultar tras reiniciar. |
Evita la ejecución duplicada | El mismo |
Proceso de Git claro | Primero se consulta el estado y el Diff, luego se confirman los archivos listados explícitamente; no se hace Push automático. |
Permisos transparentes | Tanto Tool como Resource pueden devolver la información de permisos actual. |
28 herramientas
Categoría | Herramientas | Uso |
Permisos |
| Consulta el directorio raíz actual, los límites estrictos y los puntos de entrada con privilegios elevados. |
Archivos |
| Listar, leer, crear, sobrescribir o modificar parcialmente archivos de texto. |
Comandos y pruebas |
| Ejecutar comandos o pruebas, y consultar o detener Jobs en segundo plano. |
Git |
| Consultar el estado, ver el Diff, confirmar los archivos listados explícitamente; el Commit seguro desactiva Hooks y firmas, y rechaza Git Filters. |
Workflow |
| Crear un Workflow, crear un Step, iniciar un Job, consultar el estado general. |
Codex de solo lectura puntual |
| Hacer que el Codex local realice una comprobación de solo lectura. |
Threads / Turnos de Codex |
| Leer Threads antiguos, iniciar, continuar, complementar, detener y comprobar Turnos de Codex. |
Comprobación de salud |
| Consultar el estado del servicio, el número de Jobs activos y las advertencias de capacidad de Artifacts. |
No se expone una Tool delete_file directa. apply_patch también rechaza eliminar archivos completos.
git_commit desactiva por defecto los Hooks del repositorio y las firmas de confirmación. Si detecta Git Filters clean / process, rechaza la confirmación para evitar que un Commit estructurado ejecute programas del repositorio de forma implícita. git_diff también desactiva los Diff externos y textconv.
Recurso de permisos
Además de la Tool get_permissions, el servicio ofrece:
local-agent://permissionsEl contenido incluye:
当前允许访问哪里
哪些目录和文件被禁止
读写是否开启
有没有直接删除工具
高权限入口有哪些get_permissions se mantendrá para los clientes que aún no muestran MCP Resources.
Permisos y reducción de privilegios
Alcance por defecto
Las herramientas de archivos estructurados y Git pueden acceder por defecto al Home del usuario actual:
$HOMENormalmente incluye Desktop, Downloads, Documents y otros proyectos en directorios personales.
Contenido prohibido por código
Las herramientas de archivos estructurados rechazarán:
.ssh
.aws
.azure
.codex
.docker
.gnupg
.kube
.Trash
Library
.env 和 .env.*
常见凭据文件
.pem / .key / .p12 / .pfx 私钥文件
符号链接路径Además:
No hay una Tool de eliminación directa de archivos.
apply_patchno puede eliminar archivos completos.No hay Tool de Git Push.
git_commitsolo confirma las rutas listadas explícitamente.
Reducir el alcance estructurado
Configura antes de iniciar:
export LOCAL_AGENT_MCP_ROOT="$HOME/Projects"El nombre de configuración antiguo CODEX_MCP_ROOT sigue siendo compatible.
Después, estas herramientas solo pueden acceder a $HOME/Projects:
list_files
read_file
write_file
apply_patch
git_status
git_diff
git_commitEjemplo de inicio en primer plano:
export LOCAL_AGENT_MCP_ROOT="$HOME/Projects"
./scripts/run_tunnel.shPuntos de entrada con privilegios elevados
Capacidad | Alcance real |
| Ejecuta el código del proyecto. El código de prueba puede crear, modificar o eliminar archivos. |
| El programa local invocado puede acceder a ubicaciones fuera del directorio raíz estructurado. |
Turno completo de Codex | Puede leer, escribir, ejecutar comandos y conectarse a la red; también puede acceder a ubicaciones fuera del directorio raíz estructurado. |
LOCAL_AGENT_MCP_ROOT es el límite estricto para las herramientas de archivos estructurados y Git, no un sandbox de sistema para todo el proceso.
Si necesitas Hooks de repositorio, Git LFS u otros Filters, haz el Commit manualmente o usa run_command con privilegios elevados tras comprobar explícitamente la configuración del repositorio.
v0.5.1 no tiene por ahora una configuración para ocultar o desactivar Tools individualmente. Si necesitas un aislamiento más fuerte, puedes usar un usuario de sistema independiente, una máquina virtual, un contenedor o mantener una versión con Tools recortadas.
La documentación completa está en docs/permissions.md.
Instalación en ChatGPT
1. Descargar y probar
git clone https://github.com/ezra-y/local-agent-mcp.git
cd local-agent-mcp
uv sync --locked --all-groups
uv run pytest -qEl orden de búsqueda del Codex local:
La ruta especificada por
CODEX_BIN.codexenPATH.El Codex integrado en la App de ChatGPT para macOS.
2. Guardar la Runtime Key
macOS:
./scripts/save_tunnel_key.shLinux:
export CONTROL_PLANE_API_KEY="<你的 Runtime Key>"3. Generar la configuración del Tunnel
export CONTROL_PLANE_TUNNEL_ID="tunnel_<32位小写十六进制>"
./scripts/configure_tunnel.shLa configuración local se guarda en:
.runtime/profiles/4. Iniciar el Tunnel
En primer plano:
./scripts/run_tunnel.shEn segundo plano:
tmux new-session -d \
-s local-agent-mcp-tunnel \
-c "$PWD" \
./scripts/run_tunnel.shEspera a que el servicio esté listo:
for i in {1..30}; do
curl -fsS http://127.0.0.1:8741/readyz && break
sleep 1
doneEn caso de éxito devuelve:
readyPágina de estado local:
http://127.0.0.1:8741/ui5. Conectar en ChatGPT
Abre Settings → Apps.
Activa Developer Mode.
Crea o conecta la MCP App personalizada correspondiente.
Tras iniciar el Tunnel, haz clic en Refresh / Scan tools.
Abre un chat nuevo y selecciona
@Local Agent.
6. Verificar
Envía en un chat nuevo:
@Local Agent
调用 get_permissions。
报告当前工具总数、版本和 allowed_root。Resultado esperado en v0.5.1:
工具总数:28
版本:0.5.1
allowed_root:你的 Home,或你设置的 LOCAL_AGENT_MCP_ROOTSi el cliente admite Resources, intenta también leer:
local-agent://permissionsEjecutar solo el MCP stdio local
Sin usar el Tunnel de ChatGPT:
./scripts/run_mcp.shTambién se puede instalar como comando global:
uv tool install .
local-agent-mcpEl comando antiguo local-codex-mcp sigue disponible.
Uso diario
El parámetro project de las herramientas suele rellenarse con una ruta relativa a $HOME:
Documents/Codex/local-agent-mcp
Downloads/my-project
Desktop/example-projectTambién se admiten rutas absolutas dentro del Home. project="." representa todo el directorio raíz estructurado; con la configuración por defecto, todo el Home.
Una tarea habitual
@Local Agent
在 Downloads/my-project 修复登录失败问题。
检查相关代码和 Git 状态,完成修改、测试、Diff 和 Commit。Flujo habitual:
get_permissions
→ git_status / list_files / read_file
→ write_file / apply_patch
→ run_tests
→ git_diff
→ git_commitPara tareas complejas se puede añadir un Workflow explícito o el Codex local.
Cómo funciona el Workflow
Cinco conceptos
Concepto | Significado |
Workflow | Todo el asunto que el usuario encarga. |
Step | Una acción estable y concreta dentro del Workflow. |
Job | Una ejecución real de un Step. |
Codex Thread | El chat y el contexto de trabajo guardados por Codex. |
Codex Turn | Una ronda de trabajo dentro del Thread. |
Orden de ejecución
create_workflow
→ create_step
→ start_step
→ get_job / get_workflowcreate_step admite actualmente cuatro tipos de ejecución:
| Uso |
| Ejecutar pruebas. |
| Ejecutar un comando local en forma de array de argumentos. |
| Hacer que Codex realice una comprobación de solo lectura. |
| Iniciar un Codex Turn de trabajo continuo. |
La lectura y modificación de archivos se sigue haciendo directamente con read_file, write_file y apply_patch.
Ejemplo: crear un Step de prueba
create_workflow(
project="Downloads/my-project",
title="验证登录修复"
)
→ workflow_idcreate_step(
workflow_id=workflow_id,
position=1,
name="运行测试",
executor_kind="tests",
spec={
"argv": ["uv", "run", "pytest", "-q"],
"cwd": ".",
"timeout_seconds": 900
},
write_scope="worktree"
)
→ step_idstart_step(
workflow_id=workflow_id,
step_id=step_id,
attempt=1
)
→ job_idget_job(job_id)
get_workflow(workflow_id)La identidad de ejecución es:
workflow_id + step_id + attemptSi se inicia de nuevo con el mismo número, devuelve el Job original y no se ejecuta de nuevo. Para una repetición explícita, usa un attempt nuevo, por ejemplo attempt=2.
Reglas de paralelismo
同一个 Codex Thread:同一时间一个活动 Turn
同一个 Worktree:同一时间一个写入者
同一个仓库:不同 Worktree 可以并行Cuando un Turn activo necesite requisitos adicionales, usa steer_codex_turn; para detenerlo, usa interrupt_codex_turn.
Estado local y registros
Al ejecutar desde el código fuente:
.runtime/state.sqlite3
.runtime/artifacts/<job_id>/El comando instalado usa por defecto:
$HOME/.local/state/local-agent-mcp/state.sqlite3Ubicación personalizada:
export LOCAL_AGENT_MCP_STATE_PATH="/自定义位置/state.sqlite3"El nombre de configuración antiguo CODEX_WORKFLOW_STATE_PATH sigue siendo compatible. Los estados antiguos existentes también se siguen leyendo.
Los registros largos se guardan en archivos Artifact. SQLite guarda la ruta, el tamaño y el SHA-256.
Los Artifacts no se eliminan automáticamente. Cuando el total registrado supera 1 GiB, ping devuelve una advertencia.
Actualización
git pull
uv sync --locked --all-groups
uv run pytest -qDespués, reinicia el Tunnel y haz clic en Refresh / Scan tools en ChatGPT.
Estructura del proyecto
src/local_agent_mcp/
├── server.py MCP 入口与公共 Tool / Resource
├── adapters/ 本地 Agent Adapter;当前包含 Codex
├── workflow_*.py Workflow、Step、Job、锁和 SQLite
├── command_jobs.py 后台命令与测试
├── workspace_tools.py 文件读写与 Patch
└── git_tools.py Git 状态、Diff 和 Commit
tests/ 单元测试与集成测试
docs/ 权限和架构说明
scripts/ MCP 与 Tunnel 启动脚本Los archivos de prueba se conservan en el repositorio. Se usan para verificar los límites de permisos, la ejecución multiplataforma, el empaquetado y la compatibilidad; el wheel instalado solo contiene el código de ejecución.
Comprobaciones de desarrollo
uv run pytest -q
uv run python scripts/check_public_release.py
zsh -n scripts/*.sh
uv buildLa entrada principal del MCP es src/local_agent_mcp/server.py. src/codex_bridge.py se mantiene como alias de compatibilidad para importaciones y formas de inicio antiguas.
Desinstalación y datos locales
El programa de desinstalación no elimina automáticamente SQLite, Artifacts, el perfil del Tunnel ni el directorio del código fuente. Revisa primero y decide qué datos quieres conservar.
Licencia
MIT, ver LICENSE.
⚠️ La configuración por defecto abre permisos locales amplios: ChatGPT puede leer y escribir en la mayoría de los proyectos del Home del usuario actual, y puede ejecutar pruebas, comandos y Agents locales; úsalo solo en ordenadores, cuentas y proyectos de confianza.
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 gradedqualityCmaintenanceEnables ChatGPT to remotely orchestrate local Codex and Claude Code agents for file editing and command execution via a secure Cloudflare tunnel, bridging cloud AI planning with local execution.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables ChatGPT to inspect and edit local projects through a secure MCP interface, offering workspace management, file operations, git integration, and safe command execution.4MIT
- AlicenseNot gradedqualityAmaintenanceBridges ChatGPT with local computer for controlled file and project management, featuring session-based collaboration and diff tracking.4Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT to securely control a local workstation via an MCP tunnel, exposing 44 tools for file/project editing, git, process supervision, browser automation, and Office document handling across macOS, Linux, and Windows.MIT
Related MCP Connectors
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Git-backed platform for skills, tools, and context for AI agents
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
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/ezra-y/local-agent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server