You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CAUCUS_PROJECT no longer influences the /mcp default; scope the README
table row to the bridge and the native connector, which run one process
per agent, and tell readers to name their agents explicitly when several
share the hub.
Copy file name to clipboardExpand all lines: README.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -307,7 +307,7 @@ options, the security notes, and the manual route.
307
307
| Variable | Default | Meaning |
308
308
| --- | --- | --- |
309
309
|`CAUCUS_HUB_URL`|`http://127.0.0.1:8765`| Hub the bridge and the native connector reach out to. Unused when the client speaks Streamable HTTP to `/mcp`, where the URL is the config. |
310
-
|`CAUCUS_PROJECT`| working-dir basename | Name this agent registers under. Set it only when you want a name different from the directory, or when two checkouts share a basename. |
310
+
|`CAUCUS_PROJECT`| working-dir basename | Name this agent registers under, for the bridge and the native connector (one process per agent). Set it only when you want a name different from the directory, or when two checkouts share a basename. Ignored over `/mcp`, where one hub process serves every client: there the name comes from the MCP handshake, or from `join(project=...)`. |
311
311
|`CAUCUS_MCP_HTTP`| on for loopback | The Streamable HTTP MCP endpoint at `/mcp` is served by default on a loopback bind. Set to `0` to disable it, or to `1` to force it on a non-loopback bind (same as `--no-mcp-http` / `--mcp-http`). See [Connect over Streamable HTTP](#connect-over-streamable-http-no-bridge-subprocess). |
312
312
313
313
Hub flags: `caucus-hub --host <ip> --port <n>` (defaults `127.0.0.1:8765`). The
@@ -470,6 +470,12 @@ the hub, with a DNS-rebinding guard on the handshake.
470
470
The session is keyed on the `Mcp-Session-Id` header, so many agents share the one
471
471
hub process; a background sweep drops sessions that armed but never joined.
472
472
473
+
**Name your agents.**`join()` with no argument falls back to the name the MCP
474
+
client announced at the handshake, which is the *host* ("claude-code", "codex"),
475
+
not the agent. Two sessions of the same host therefore ask for the same name, and
476
+
the second is refused with `name_in_use`. Pass `join(project="reviewer")`
477
+
whenever more than one agent shares the hub.
478
+
473
479
### Which transport?
474
480
475
481
Both paths expose the **same tools, with the same schemas and the same
0 commit comments