local-agent-mcp
Local Agent MCP
English · Berechtigungshinweise · Architektur
Lass ChatGPT Pro direkt auf deinem lokalen Computer arbeiten
Du gibst ChatGPT einen Auftrag, und es kann lokale MCP-Tools aufrufen: Projekte lesen, Dateien ändern, Tests ausführen, Git-Diff prüfen, Commits erstellen.
Komplexe Aufgaben kannst du an lokales Codex übergeben. ChatGPT übernimmt weiterhin das Aufteilen in Schritte, das Prüfen des Fortschritts, das Ergänzen von Anforderungen und die abschließende Kontrolle.
ChatGPT Pro
→ Local Agent MCP
→ 本地文件 / 测试 / Git / CodexKein wiederholtes Kopieren von Code, und nicht jede Aufgabe muss über Codex laufen.
Dies ist ein inoffizielles Community-Projekt. Es ist kein OpenAI-Produkt und steht nicht für OpenAI.
Related MCP server: chatgpt-codex-tools-mcp
Schnellstart
Voraussetzungen
Halte Folgendes bereit:
macOS oder Linux
Python 3.11 oder höher
Git
Offizielles
tunnel-clientvon OpenAIEine ChatGPT-Umgebung, die benutzerdefinierte MCP-Apps unterstützt
Eine Tunnel-ID
Einen passenden Tunnel-Runtime-Key
Auf macOS kannst du zuerst die Basistools installieren:
brew install uv tmux
brew install openai/tools/tunnel-clientIn einem Satz an die KI übergeben
Sende diesen Satz an eine KI, die ein lokales Terminal bedienen kann:
Installiere https://github.com/ezra-y/local-agent-mcp auf meinem Computer und führe die Konfiguration, den Start und die Verifizierung gemäß der README durch.
Manuelle Installation siehe: Installation in ChatGPT.
Highlights
Highlight | Beschreibung |
ChatGPT bedient lokale Projekte direkt | Häufige Datei-, Test- und Git-Operationen werden von ChatGPT direkt über lokale Tools ausgeführt. |
ChatGPT übernimmt die Gesamtleitung | Einfache Aufgaben werden direkt erledigt, komplexe Aufgaben können an lokales Codex übergeben werden. |
Agenten sind erweiterbar | Codex ist der erste Adapter; weitere Agenten kommen in dieselbe Steuerungsebene. |
Aufgabenstatus abfragbar | Workflow, Step und Job werden in lokalem SQLite gespeichert und sind nach einem Neustart weiterhin einsehbar. |
Verhindert doppelte Ausführung | Gleiche |
Git-Ablauf klar | Zuerst Status und Diff prüfen, dann explizit gelistete Dateien committen; kein automatisches Push. |
Transparente Berechtigungen | Tool und Resource können die aktuellen Berechtigungsinformationen zurückgeben. |
28 Tools
Kategorie | Tools | Zweck |
Berechtigungen |
| Aktuelles Stammverzeichnis, harte Grenzen und Einstiegspunkte mit hohen Rechten anzeigen. |
Dateien |
| Textdateien auflisten, lesen, erstellen, überschreiben oder teilweise ändern. |
Befehle und Tests |
| Befehle oder Tests ausführen und Hintergrund-Jobs anzeigen oder stoppen. |
Git |
| Status anzeigen, Diff anzeigen, explizit gelistete Dateien committen; sicherer Commit deaktiviert Hooks und Signaturen und lehnt Git-Filter ab. |
Workflows |
| Workflow anlegen, Step erstellen, Job starten, Gesamtstatus abfragen. |
Einmaliges schreibgeschütztes Codex |
| Lokales Codex eine einmalige schreibgeschützte Prüfung durchführen lassen. |
Codex-Threads / Turns |
| Alte Threads lesen, Turns starten, fortsetzen, ergänzen, stoppen und prüfen. |
Health-Check |
| Dienststatus, Anzahl aktiver Jobs und Artifact-Kapazitätswarnungen anzeigen. |
Ein direktes delete_file-Tool ist nicht verfügbar. apply_patch lehnt außerdem das Löschen ganzer Dateien ab.
git_commit deaktiviert standardmäßig Repository-Hooks und Commit-Signaturen. Wenn clean- / process-Git-Filter erkannt werden, wird der Commit abgelehnt, damit strukturierte Commits nicht implizit Repository-Programme ausführen. git_diff deaktiviert gleichzeitig externe Diffs und textconv.
Berechtigungs-Resource
Neben dem get_permissions-Tool stellt der Dienst außerdem bereit:
local-agent://permissionsDer Inhalt umfasst:
当前允许访问哪里
哪些目录和文件被禁止
读写是否开启
有没有直接删除工具
高权限入口有哪些get_permissions bleibt erhalten, damit Clients, die MCP-Resources noch nicht anzeigen, es weiterhin nutzen können.
Berechtigungen und Rechteeinschränkung
Standardbereich
Strukturierte Datei- und Git-Tools können standardmäßig auf das Home-Verzeichnis des aktuellen Benutzers zugreifen:
$HOMEDas umfasst in der Regel Desktop, Downloads, Documents und andere Projekte in persönlichen Verzeichnissen.
Vom Code hart verbotene Inhalte
Strukturierte Datei-Tools lehnen Folgendes ab:
.ssh
.aws
.azure
.codex
.docker
.gnupg
.kube
.Trash
Library
.env 和 .env.*
常见凭据文件
.pem / .key / .p12 / .pfx 私钥文件
符号链接路径Außerdem:
Es gibt kein direktes Dateilösch-Tool.
apply_patchkann keine ganze Datei löschen.Es gibt kein Git-Push-Tool.
git_commitcommittet nur explizit gelistete Pfade.
Strukturierten Bereich einschränken
Vor dem Start festlegen:
export LOCAL_AGENT_MCP_ROOT="$HOME/Projects"Der alte Konfigurationsname CODEX_MCP_ROOT bleibt kompatibel.
Danach können diese Tools nur noch auf $HOME/Projects zugreifen:
list_files
read_file
write_file
apply_patch
git_status
git_diff
git_commitBeispiel für den Start im Vordergrund:
export LOCAL_AGENT_MCP_ROOT="$HOME/Projects"
./scripts/run_tunnel.shEinstiegspunkte mit hohen Rechten
Fähigkeit | Tatsächlicher Bereich |
| Führt Projektcode aus. Testcode kann Dateien erstellen, ändern oder löschen. |
| Das aufgerufene lokale Programm kann auf Orte außerhalb des strukturierten Stammverzeichnisses zugreifen. |
Vollständiger Codex-Turn | Kann lesen, schreiben, Befehle ausführen und online gehen; kann auch auf Orte außerhalb des strukturierten Stammverzeichnisses zugreifen. |
LOCAL_AGENT_MCP_ROOT ist die harte Grenze für strukturierte Datei- und Git-Tools, nicht eine System-Sandbox für den gesamten Prozess.
Wenn Repository-Hooks, Git LFS oder andere Filter benötigt werden, committe bitte manuell oder verwende das hochprivilegierte run_command, nachdem du die Repository-Konfiguration ausdrücklich geprüft hast.
v0.5.1 bietet derzeit keine Konfiguration zum Ausblenden oder Deaktivieren einzelner Tools. Für stärkere Isolation kannst du einen separaten Systembenutzer, eine VM, einen Container oder eine Version mit reduzierten Tools verwenden.
Vollständige Hinweise siehe docs/permissions.md.
Installation in ChatGPT
1. Herunterladen und testen
git clone https://github.com/ezra-y/local-agent-mcp.git
cd local-agent-mcp
uv sync --locked --all-groups
uv run pytest -qDie Suchreihenfolge für lokales Codex:
Pfad, der über
CODEX_BINangegeben ist.codexinPATH.Das in der macOS-ChatGPT-App integrierte Codex.
2. Runtime-Key speichern
macOS:
./scripts/save_tunnel_key.shLinux:
export CONTROL_PLANE_API_KEY="<你的 Runtime Key>"3. Tunnel-Konfiguration erzeugen
export CONTROL_PLANE_TUNNEL_ID="tunnel_<32位小写十六进制>"
./scripts/configure_tunnel.shDie lokale Konfiguration wird gespeichert unter:
.runtime/profiles/4. Tunnel starten
Vordergrund:
./scripts/run_tunnel.shHintergrund:
tmux new-session -d \
-s local-agent-mcp-tunnel \
-c "$PWD" \
./scripts/run_tunnel.shAuf die Bereitschaft des Dienstes warten:
for i in {1..30}; do
curl -fsS http://127.0.0.1:8741/readyz && break
sleep 1
doneBei Erfolg wird zurückgegeben:
readyLokale Statusseite:
http://127.0.0.1:8741/ui5. In ChatGPT verbinden
Öffne Einstellungen → Apps.
Aktiviere den Entwicklermodus.
Erstelle oder verbinde die entsprechende benutzerdefinierte MCP-App.
Klicke nach dem Start des Tunnels auf Refresh / Scan tools.
Öffne einen neuen Chat und wähle
@Local Agent.
6. Verifizieren
Sende in einem neuen Chat:
@Local Agent
调用 get_permissions。
报告当前工具总数、版本和 allowed_root。Erwartetes Ergebnis für v0.5.1:
工具总数:28
版本:0.5.1
allowed_root:你的 Home,或你设置的 LOCAL_AGENT_MCP_ROOTWenn der Client Resources unterstützt, versuche zusätzlich zu lesen:
local-agent://permissionsNur lokales stdio-MCP ausführen
Ohne ChatGPT-Tunnel:
./scripts/run_mcp.shDu kannst es auch als globalen Befehl installieren:
uv tool install .
local-agent-mcpDer alte Befehl local-codex-mcp bleibt weiterhin verfügbar.
Tägliche Nutzung
Der Parameter project in den Tools wird in der Regel als Pfad relativ zu $HOME angegeben:
Documents/Codex/local-agent-mcp
Downloads/my-project
Desktop/example-projectAbsolute Pfade innerhalb des Home-Verzeichnisses werden ebenfalls unterstützt. project="." steht für das gesamte strukturierte Stammverzeichnis; in der Standardeinstellung ist das das gesamte Home-Verzeichnis.
Eine häufige Aufgabe
@Local Agent
在 Downloads/my-project 修复登录失败问题。
检查相关代码和 Git 状态,完成修改、测试、Diff 和 Commit。Häufiger Ablauf:
get_permissions
→ git_status / list_files / read_file
→ write_file / apply_patch
→ run_tests
→ git_diff
→ git_commitBei komplexen Aufgaben kannst du zusätzlich einen expliziten Workflow oder lokales Codex einbinden.
Wie Workflows ablaufen
Fünf Konzepte
Konzept | Bedeutung |
Workflow | Die gesamte Aufgabe, die der Benutzer übergeben hat. |
Step | Eine stabile, klar definierte Aktion innerhalb des Workflows. |
Job | Eine tatsächliche Ausführung eines Steps. |
Codex-Thread | Der von Codex gespeicherte Chat- und Arbeitskontext. |
Codex-Turn | Eine Arbeitsrunde innerhalb des Threads. |
Ausführungsreihenfolge
create_workflow
→ create_step
→ start_step
→ get_job / get_workflowcreate_step unterstützt derzeit vier Ausführungstypen:
| Zweck |
| Tests ausführen. |
| Lokale Befehle in Form eines Argumentarrays ausführen. |
| Codex eine einmalige schreibgeschützte Prüfung durchführen lassen. |
| Einen kontinuierlich arbeitenden Codex-Turn starten. |
Dateilesen und -ändern erfolgen weiterhin direkt über read_file, write_file und apply_patch.
Beispiel: Test-Step erstellen
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)Die Ausführungsidentität ist:
workflow_id + step_id + attemptEin erneuter Start mit derselben Nummer gibt den ursprünglichen Job zurück und führt nicht doppelt aus. Für eine ausdrückliche Wiederholung verwende eine neue attempt, z. B. attempt=2.
Parallelitätsregeln
同一个 Codex Thread:同一时间一个活动 Turn
同一个 Worktree:同一时间一个写入者
同一个仓库:不同 Worktree 可以并行Wenn ein aktiver Turn zusätzliche Anforderungen benötigt, verwende steer_codex_turn; zum Stoppen verwende interrupt_codex_turn.
Lokaler Status und Logs
Beim Ausführen aus dem Quellcode:
.runtime/state.sqlite3
.runtime/artifacts/<job_id>/Der installierte Befehl verwendet standardmäßig:
$HOME/.local/state/local-agent-mcp/state.sqlite3Benutzerdefinierter Speicherort:
export LOCAL_AGENT_MCP_STATE_PATH="/自定义位置/state.sqlite3"Der alte Konfigurationsname CODEX_WORKFLOW_STATE_PATH bleibt kompatibel. Vorhandene alte Statusdatenbanken werden weiterhin gelesen.
Lange Logs werden in Artifact-Dateien abgelegt. SQLite speichert Pfad, Größe und SHA-256.
Artifacts werden nicht automatisch gelöscht. Wenn die Gesamtmenge 1 GiB überschreitet, gibt ping eine Warnung zurück.
Aktualisierung
git pull
uv sync --locked --all-groups
uv run pytest -qDanach den Tunnel neu starten und in ChatGPT auf Refresh / Scan tools klicken.
Projektstruktur
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 启动脚本Testdateien bleiben im Repository. Sie dienen der Verifizierung von Berechtigungsgrenzen, plattformübergreifendem Betrieb, Paketierung und Kompatibilität; das installierte Wheel enthält nur den ausführenden Code.
Entwicklungsprüfungen
uv run pytest -q
uv run python scripts/check_public_release.py
zsh -n scripts/*.sh
uv buildDer Haupt-MCP-Einstiegspunkt ist src/local_agent_mcp/server.py. src/codex_bridge.py bleibt als kompatibler Alias für alte Importe und alte Startmethoden erhalten.
Deinstallation und lokale Daten
Das Deinstallationsprogramm löscht SQLite, Artifacts, Tunnel-Profile oder das Quellverzeichnis nicht automatisch. Bitte prüfe zuerst und entscheide, welche Daten du behalten möchtest.
Lizenz
MIT, siehe LICENSE.
⚠️ Die Standardkonfiguration gewährt umfangreiche lokale Berechtigungen: ChatGPT kann die meisten Projekte im Home-Verzeichnis des aktuellen Benutzers lesen und beschreiben sowie Tests, Befehle und lokale Agenten ausführen; verwende dies nur auf Computern, Konten und Projekten, denen du vertraust.
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