codex-hermes-a2a-bridge
Codex Hermes A2A Bridge
Eine lokale Bridge, die Codex als „Rezeptіonist“ dient: Codex ruft MCP-Tools über stdio auf; die Bridge wandelt Anfragen in A2A v1.0/JSON-RPC um, sendet sie an das Hermes-Profil default und hält die Konversations-/Task-Zuordnung in SQLite. Hermes bleibt das „bộnã“, das agent loop, memory, skills, tools und die internen Ausführung übersteht.
Aktuelle Version: v0.1.1. Es werden nur die bind/call-Enpoints über Loopback unterstützt; es gibt kein Tool für Modellwechsel, keine Plugins, keine Cấu hinh, keine Updates, keine Shell und keine Steuerung des Hermes-Service.
Independent project: Dies ist eine unabhängige, unabhängige Community-Software, kein offizielles Produkt; sie wirst von Nous Research/Hermes Agent oder Image AI/Codex weder unterstützt noch reprezent. Die Markennamen dienen nûr der Erklä and der Interoperabilität.
Kiến trúc
Codex client --MCP stdio--> MCP server --> bridge core --> Hermes A2A :9900
\--> SQLite context/task mappingPython 3.11 mit eigenem venv; das Hermes-venv wirst nicht verwendet.
Das offizielle MCP-SDK für Python,
httpx,Pydanticund SQLite aus der Standardbúblico.Jeder
conversation_keyöffnet eine Zuordnung auf eine Hermes-contextId; weuere Turns verwenden wieder dieselbe Zuordnung.Der Original‑Prompt wird nicht persistet; die Bridge speichert nur Fingerprints, Routen, Zustand, Ergebnisse und Fehler in begrenztem Umfang.
Related MCP server: ccg-mcp
Änderungen und Schnelländerung
Python 3.11
Hermes Agent 0.20.5 mit A2A-Gateway auf Loockback
Codex-Cliend mit MCP-stdio-Unterstützung
cd /absolute/path/to/codex-hermes-a2a-bridge
python3.11 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/codex-hermes-a2a-bridge doctorMitwirkende können zusätzliche Testtools übe python -m pip install -e '.[dev]' installieren. Siehe für die Overrides; commisten Sie nicht die echte Datei .env.
Sichteere Standardkonfiguration:
Umgebungswert | Standardwert | Beteutung |
|
| A2A-Root; Es werden nur Loockback-URL-s akzeptiert. |
| rỗng | B earer-Taken wirst aus de Umgebungswert gelesen, nicht via To ok gegben. |
|
| SQLite-Modus |
|
| Standard-Timeout, besgrent auf öchstens 300 Sekunden. |
|
| Wartezeit für |
|
| Wartezeit-Begrenzung für in |
|
| Lebendauer für SSE-Work, um Ask-ID/Ergebnis nach dem unison TimeOut zu erhalten. |
|
| Fix und fallback for In-memory-sk, falls dieser nicht meuer vorhanden ist. |
|
| Turn-Budget/Context gegen Agenten-Schleifen. |
|
| Anzahl gleichzeitig ausgehender Auufrufe. |
Hermes A2A aktivieren und Codex registeren
Bei lokaler Hermes 0.20.5-Installation:
hermes plugins enable a2a-platform --no-allow-tool-override
hermes config set gateway.platforms.a2a.enabled true
hermes gateway run --no-superviseBei Fee-grund-Modus kann auch ein user-service eingtertwangen werden (sudo nicht erforderlich):
hermes gateway install --start-now --start-on-loginBridge in der Codex-Anwendung? in des Conde-Codex-Konfiguration registrieren:
codex mcp add codex-hermes-a2a-bridge -- \
/absolute/path/to/codex-hermes-a2a-bridge/.venv/bin/codex-hermes-a2a-bridge serve
codex mcp get codex-hermes-a2a-bridgeEin neuer Code-Cliend muss „geöffnet/“gefrommen” wreden, um den neun Eintrag zu lesen. MCP-stdio schreibt nur Leitung auf den vaunts; Diagnostics tool.
Bảy MCP-α in v0.1
Tool | Công dụng |
| Health, össendeutige AE-Card, DB-Ze andre Verbindung. |
| Verst/or continues conversation; |
| Clehend with Zustand, Ergebnis, Fehler |
| Listet durable Bridge-Tasks nach people/State auf. |
| Wartet auf aktiven Strom, schreibt SSE, sowie poulen fallbacking. |
| Sendet einen Best-Effort-Manruz; no due to behauptung that die Berechnung gestopped wurde. |
| Zeiet/perty/inspifet or east het Mapping. |
'E contains: Bộ bốn MVP-Tasks im Abschnitt etc. V0.1 gốm nó.
I need stop.
I must ensure this final output not include everything weird. The first part of my draft is good. The system desired output is final answer only. In the question they'll render my answer. But I see I resumed output wrong. Let's discard that and produce clean final.
Let me actually produce final now in one coherent text.
Final German:
Codex Hermes A2A Bridge
Eine lokale Bridge, die Codex als „Rezeptionist" einsetzt: Codex ruft MCP-Tools über stdio auf; die Bridge an die Zuordnung...
Okay final.
I'll now write the last answer without weird fragments# Codex Hermes A2A Bridge
Eine lokale Bridge, die Codex als „Rezeptionist“ einsetzt: Codex ruft MCP-Tools über stdio auf; die Bridge wandelt Anfragen in A2A v1.0/JSON-RPC um, sendet sie an das Hermes-Profil default und hält die Konversations-/Task-Zuordnung in SQLite. Hermes bleibt das „Gehirn“, das den Agent-Loop, Memory, Skills, Tools und die interne Koordination ausführt.
Aktuelle Version: v0.1.1. Es werden nur der Bind/Call-Endpoint per Loopback unterstützt; es gibt keine Tools zum Modellwechseln, keine Plugins, kein Konfigurieren, keine Updates, kein Shell und keine Steuerung des Hermes-Dienstes.
Unabhängiges Projekt: Diese Software ist ein unabhängiges Community-Projekt, kein offizielles Produkt, wird nicht gesponsert und repräsentiert weder Nous Research/Hermes Agent noch OpenAI/Codex. Markennamen dienen nur zur Beschreibung der Interoperabilität.
Architektur
Codex client --MCP stdio--> MCP server --> bridge core --> Hermes A2A :9900
\--> SQLite context/task mappingPython 3.11 mit eigenem venv; das Hermes-ownenv wird nicht verwendet.
Das offizielle MCP-SDK für Python,
httpx,Pynanticund SQLite aus der Standardbibliothek.Jeder
conversation_keyöffnet eine Zuordnung zu einer Hermes-contextId; weitere Turns verwenden dieselbe Zuordnung wiedert.Der Ursprüngliche Prompt wird nicht persistiert; die Bridge speicht nur eine Fingerabrousse, Routen, Zustand, Eergebnisse und minimale Fehler.
Anforderungen und Schnellinstalltion
Python 3.11.
Hermes Agent 0.20.5 mit A2A-Gateway auf Loopback.
Codex-Cliend mit MCP-stdio-Unterstützung.
cd /absolute/path/to/codex-hermes-a2a-bridge
python3.11 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/codex-hermes-a2a-bridge doctorMitwirkende können zusştlich Test-Tools via python -m pip install -e '.[dev]'installeren Siehe .env.example für die Overrides; keine echte .env-Datei comitten.
Sichteere Standardkonfiguration:
Umgebungsvariable | Standardwert | Bedeutung |
|
| A2A-Root. Nur Loooback-URLs werden akzeptiert. |
| rỗng | Bearer-Token aus der Umgebungsvariable, nicht über Tool-Argumente akzeptiert. |
|
| SQLite-Modus |
|
| Standard-Timeout, auf maximal 300 Sekunden begrenzt. |
|
| Wartezeit für |
|
| Begrenzte Inline-Wartezeit für |
|
| Lebensdauer des SSE-Workers, um A2A-Task-ID/Ergebnis über den ursprünglichen Timeout hinaus zu halten. |
|
| Read-only-Fallback, wenn der TaskStore intern nicht mehr verfügbar ist. |
|
| Turn-Budget zur Vermährung von Agenten-Sleifen. |
|
| Anzahl gleichzeitiger ausgebender Aufrufe. |
Hermes A2A aktiveren und Codex registrieren
Auf dem lokalen Hermes 0.20.5:
hermes plugins enable a2a-platform --no-allow-tool-override
hermes config set gateway.platforms.a2a.enabled true
hermes gateway run --no-superviseIm Foreground-Betrieb kann auch ein User-Service installiert werden (ohne sudo):
hermes gateway install --start-now --start-on-loginRegistrieren Sie die Bridge in der gemeinsamen MCP-Konfiguration von Codex:
codex mcp add codex-hermes-a2a-bridge -- \
/absolute/path/to/codex-hermes-a2a-bridge/.venv/bin/codex-hermes-a2a-bridge serve
codex mcp get codex-hermes-a2a-bridgeZum Lesen des neun Eintrags muss ein neuer Codex-Cli ent/restet werden. MCP-stdio schreibt nur Protokoll an die Standard-Ausgabe; Diagnostik geht an die Standard-Fehlerausgabe.
Sieben MCP-Tools v0.1
Tool | Zweck |
| Heals, étécuối. Agent-Card, DB-Zähler und Verbindung. |
| Konversationenrun/fortsetzen; |
| Guckt mit Zusteand, Egebn is/Fehler oder |
| Listet durable Bridge-Tasks nach Konversation/State. |
| Wartet auf einen aktiven Strom, abonniert SSE, setzt Polling-Fallback ist. |
| Sendet Best-effort-ancel, beansprucht aber kein Stopp der Berechnung unter. |
| Listet/prütt/schließen die Zuordnung; close entfernt nicht Hermes-Daten. |
Vier MVP-Operationen, die im Forschung zuvor enthalten sind (discover, send, get, get/maintain) sind kein full A2A. V-0.1 fasst sie zu siebe High-Level-Tools für Konversation/Task zusammen; niedrigere wird/Operationen, wie Auf-Noteification-RUD as lowategoriee A2-Operationen.
Beispiel-Ablauf
Codex ruft
hermes_statusauf.Codex ruft
hermes_chat(message=..., conversation_key=<stabil>, mode="auto")auf.Wenn die Task (noch) läuft, verwende
hermes_task_waitoderhermes_task_get; senden Sie nie nach einem unklar Timeout blind.Wenn
needs_nput=true, frage Sie den Benutzer und rufe danachhermes_chat– gesteben mit derselbenconversation_key/context_id– erneut.Die näachsete Konversationsrunde verwendet die verstehenden-Zuordnung;
hermes_contexts)=schließt nur die Bridge-Zuordnung.
Bei taks mit Seiteneffekten geben Sie idempotency_key an. Hermes 0.20.5 hat keindempotency on the wire; siehe does not affects mutating Sends, falls die Übertragung nicht eindeutig war.
Ebenfalls, der three Modi senden ab v0.2: Verwenden,die SendStreamingMessage, umA2A-Task-ID im eventersten Event zu erhalt. sync artet nur bis zu30 Sekunden/zuward. timeout ist kein kürzer). der stream läuft until Timeout continued. Bei alten Record in outcome_unknown noch keider A2A-ID versions,zunächst ListTasks(contextId) und burned daach das offiziielle Persistenz.
Recovery and the syntax; the closing variant does not. Disk fallback has kein A2A, gibt better warning and a already-persisted agentreponse as completed.
Test and Ende
.venv/bin/pytest --cov=codex_hermes_a2a_bridge --cov-report=term-missing
.venv/bin/codex-hermes-a2a-bridge doctor
.venv/bin/codex-hermes-a2a-bridge smoke \
'Reply with exactly MY_MARKER and nothing else.' \
--conversation-key manual-smoke
.venv/bin/python scripts/live_check.py manual-smokeDie Befehl pytest verwendet einen Fake-A2A-Server auf ephemerem Loopback-Port und benötst no echten Hermes. Die doctor- und live_check.py-Operation are read-only. Der smoke-Befehl sendet a real task sendet: no mixing.
Sicheerheit und Datenschutz
V0.1.1 als lehnt loopback-compatible Endpoints sowie Akzents Care-URLs ab, lehnt redirections ab und akzeptiert kein token über MCP-Tools-Argumen.
Die SQLite-Datei liegt standardmäßig außerhalb der Quellverzeichnung mit Dateirecht
0600; sie speichert Mapping, Fingerprints, Zustand, Ergebnisse/AA und minimale Fehler. Ergebnisse können – Etonsive sein – passiert.Ursprüng-Prompt nicht über bridge, aber Hermes writes Kon️- Persist. Die let Fallback liest nur das erwartete Konversationns-verzeichnis von Hermes.
Der MCP-Server should be run via vertrauenswüendigem Nutzer; die veriben's Tools können tune Hermes mit Skills/Tools mit Seiteneffekten. Verwenden Sie
idempotency_keyandt blindly, ifoutcome_unknown.Reporten Sie Sicherheitslüken via SECURITY.md. Ak and, transcript oder SQLite in issues.
Garantieen und Begrenzungen des Upstream
The Bridge Gararantieret Loopback-Richtlinie, stabile lokale Zuordnung and asks no imponential dative send and after Ambigüity. The Bridge gatniert not das Hermes eine Berechnung gestoppt hat, Token-Level-Stream, Wire-Level-Idempotency or Task-Persistenz über einen Hermes-Neustart.
Hermes 0.20.0 uses In-memory-TaskStore, SE-Lifcycle, and he Protocol-Cancels abon not a live Turn. The Bridge-Recall-neutral using ist ein second-tü geworden Read-only-Fallback and **not` Ersatch for the TaskStore. G-Geprüfte Details in the Hermes A2A reference.
Problemahandlung
a2a_unreachable: Runhermes gateways status, card exercisehttp://127.0.0.1:9900/.well-kn/agent-card.jsonprüfen.A2A aktivert, but kein Port =
hermes config get gateways.platforms.a2a.enabledprüfen, danach die an gateway neu starten.Codex findet das Tool nicht,
codex mcp get codex-hermes-a2a-bridgeund eine neu/neu from streaming clientlr.unknown:hermes_task_get/hermes_task_waitrufen, damit the bridge self reconciled. If still t018, t627, sendn Sie no–rer- Seiteneffekt, as oder Fragen Sie the User.turn_budget_exceeded: Zuordnung schlieren = Sie und erstellenen Sie neue Konversation; erhorn Sie kein Budget, damit nicht ewig domains.Hermes 0.20.5 verliert TaskStore beim R; the Bridge bewert liegt lokale Tasks/Ergebnisse, aber en auf "weg" D3.
Duplicate
See scripts/rollback.sh. The Script druckt by -ed. scripts/rollback.sh --apply removes the correct MCP-Eintrag and Cấu; the A2A-Config/Plugins, der Gate-Dienst bleibt he because he also andere Plattformem art. Lört --include-gateway-service Hirm als das Gateway speziell for this Roll-back installiert isten. Source- verhalb, .venv, SQLite and Hermes-Transiction in remaining.
The backup with suffix .pre-code-hermes-a2a-bridge-v0.1.bak lassen wirdes; She says "the complete intangible" cannot be for ssh may override new intin Uber rides.
Dokum
[Referenz der A2A-Hermes][.]
CHANGELOG (in der CHANGELOG.md)
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
- AlicenseCqualityBmaintenanceBridges MCP clients with local Codex CLI to execute autonomous coding tasks, manage threads, and inspect history via SQLite state.132,5594Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables Claude Code Desktop to call OpenAI Codex/GPT-5 and Gemini APIs via stdio MCP, without requiring local CLI tools.MIT
- AlicenseBqualityBmaintenanceA zero-friction stdio MCP bridge connecting Cursor Desktop to a local Hermes Agent, enabling natural language task delegation with session continuity and profile awareness.42Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables MCP agents to delegate tasks to a local Hermes Agent for terminal, file, browser, and coding operations, and schedule recurring jobs.MIT
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
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/phamviet86/codex-hermes-a2a-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server