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
The optional --http / MCP_HTTP=1 transport listened on all interfaces
with no Authorization check, so any LAN client could initialize a
session and invoke master-key-only tools (setup_email_relay,
delete_agent, cleanup_agents, etc.) using the server's own master key.
Fix:
- Default-bind /mcp to 127.0.0.1 (override with --host= or MCP_HTTP_HOST)
- Require Authorization: Bearer <token> on every /mcp request
- Token auto-minted to ~/.agenticmail/mcp-http-token (chmod 600), or
supplied via --token= / MCP_HTTP_TOKEN
- --insecure opt-out for sandboxed test environments only, with a loud
warning at startup
- /health stays open (returns only session count)
- Stdio mode (the default) was never affected
Release: mcp 0.9.27, claudecode 0.2.32, codex 0.1.26, cli 0.9.101
Copy file name to clipboardExpand all lines: packages/claudecode/package.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "@agenticmail/claudecode",
3
-
"version": "0.2.31",
3
+
"version": "0.2.32",
4
4
"description": "Claude Code integration for AgenticMail — surfaces every AgenticMail agent as a native Claude Code subagent so any Claude Code session can delegate to them with the Agent tool",
Copy file name to clipboardExpand all lines: packages/codex/package.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "@agenticmail/codex",
3
-
"version": "0.1.25",
3
+
"version": "0.1.26",
4
4
"description": "OpenAI Codex CLI integration for AgenticMail — surfaces every AgenticMail agent as a native Codex subagent and wires the dispatcher daemon to the Codex SDK",
Copy file name to clipboardExpand all lines: packages/mcp/README.md
+26Lines changed: 26 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,18 @@ The MCP (Model Context Protocol) server for [AgenticMail](https://github.com/age
8
8
9
9
When connected, your AI agent can send emails and texts, check inboxes, reply to messages, receive verification codes, manage contacts, schedule emails, assign tasks to other agents, and more — all through natural language. The server provides 100 tools that cover every email, SMS, and agent management operation.
10
10
11
+
## ✨ Security — 0.9.27
12
+
13
+
**Fixes [GHSA-63gr-g7jc-v8rg](https://github.com/agenticmail/agenticmail/security/advisories/GHSA-63gr-g7jc-v8rg)** — missing authentication on the optional Streamable HTTP transport (`--http` / `MCP_HTTP=1`).
14
+
15
+
-`--http` mode now **binds to `127.0.0.1` by default** and **requires `Authorization: Bearer <token>`** on every `/mcp` request.
16
+
- The bearer token is auto-minted on first start and persisted to `~/.agenticmail/mcp-http-token` (chmod 600). Override with `MCP_HTTP_TOKEN` env or `--token=<value>`.
17
+
- Bind to other interfaces with `--host=0.0.0.0` or `MCP_HTTP_HOST=...` — startup logs an explicit warning when the endpoint is reachable from the network.
18
+
-`--insecure` brings back the old no-auth behavior for sandboxed test environments only. Startup prints a loud warning.
19
+
- Stdio mode (the default) was never affected.
20
+
21
+
If you weren't using `--http` / `MCP_HTTP=1`, no action is needed.
22
+
11
23
## ✨ What's new in 0.9.0
12
24
13
25
-**🧠 `get_thread_id` + `save_thread_memory`** — two new tools in the `multi_agent_extras` tier. Workers call `get_thread_id({uid})` once after reading a new message, then `save_thread_memory({threadId, summary, commitments?, openQuestions?, lastAction?, lastUid?})` at end-of-wake. The dispatcher reads the memory back into the next wake's prompt automatically. Pairs with the dispatcher-side ThreadCache to flatten wake cost — agents no longer have to re-read 10 prior messages every time.
@@ -114,6 +126,20 @@ For desktop AI applications, add to your MCP configuration file. Example paths:
114
126
115
127
¹ Either `AGENTICMAIL_API_KEY` OR `AGENTICMAIL_MASTER_KEY` (or `AGENTICMAIL_ACCOUNT_KEYS_JSON`) must be set, but you don't strictly need all three.
116
128
129
+
### Optional Streamable HTTP transport (`--http`)
130
+
131
+
Most users should stick with the default stdio transport — that's what every MCP client config above uses. For environments that need a long-lived HTTP endpoint (browser-based clients, remote-development tunnels, multi-host setups), pass `--http`:
agenticmail-mcp --http --host=0.0.0.0 # expose on network (token still required)
137
+
agenticmail-mcp --http --token=mcphttp_xxx # use a known token instead of the minted one
138
+
agenticmail-mcp --http --insecure # sandbox/test only — disables auth
139
+
```
140
+
141
+
The token is read from (in order): `--token=...` flag, `MCP_HTTP_TOKEN` env, `~/.agenticmail/mcp-http-token` (auto-minted on first run). Clients must send `Authorization: Bearer <token>` on every request to `/mcp`. `GET /health` stays open and returns only the session count.
142
+
117
143
### Per-call identity switching (`_account`)
118
144
119
145
Every tool's input schema accepts an optional `_account: "<name>"` parameter. When passed, the server resolves that name to an apiKey (from `AGENTICMAIL_ACCOUNT_KEYS_JSON`, then falling back to a live master-keyed lookup of `/accounts`) and runs the call as that agent. Without `_account`, the call uses `AGENTICMAIL_API_KEY` as the default identity.
0 commit comments