mailnotmilk
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Show the auto-detected agent id for this MCP process. |
| register_agentB | Register or refresh this agent's identity in the shared mailbox roster. |
| post_messageA | Send markdown to an agent (DM) or omit |
| post_handoffB | Send a structured task handoff (title, objective, acceptance, files) to another agent. |
| post_turnB | Announce what this agent just finished so peers stay in sync (end-of-turn summary). |
| check_inboxC | List unread messages (DMs, broadcasts, @mentions). Priority-sorted. Optional short wait. |
| read_messageB | Fetch a message and mark it read (ack). |
| mark_unreadA | Remove the read receipt so a message shows up in inbox again. |
| reply_messageC | Reply in-thread; routes back to the original sender. |
| get_threadB | Fetch the full conversation thread for a message id. |
| search_messagesC | Full-text search over message bodies. |
| list_historyC | Recent messages (read or unread) for an agent or room. |
| archive_messageA | Archive a message (hides from default inbox/history). |
| react_messageC | Add an emoji reaction to a message. |
| list_agentsC | List agents seen recently on the roster. |
| list_roomsB | List active rooms with message counts. |
| subscribe_roomC | Remember interest in a room (roster metadata). |
| set_statusB | Set presence: idle | working | waiting. |
| get_statusC | Get presence for an agent id. |
| mailbox_statsA | Aggregate mailbox stats (counts, priorities, live agents). |
| mailbox_boardC | Human-readable status board: agents, rooms, urgent, recent. |
| create_chatA | Create a shared chat session and return a join link + peer prompt to paste into Claude/Cursor. (Mail does NOT auto-open the other app.) |
| bridge_to_claudeA | DeepSeek/Cursor → Claude Code bridge. Creates a chat and returns pasteForPeer — the human pastes that into Claude Code. Nothing auto-opens Claude. |
| join_chatA | Join a chat via invite_token (from a shared link/prompt). |
| chat_linkA | Get the shareable join URL + peer prompt for a chat id. |
| chat_sayC | Post a message into a chat room (by chat id). |
| chat_historyC | List messages in a chat (chronological). |
| list_chatsC | List recent chat sessions. |
| browser_connectA | Connect Chrome or Firefox via Playwright (launch persistent profile, or CDP attach for Chrome). |
| browser_open_aiA | Navigate the connected browser to ChatGPT, DeepSeek, Claude, Gemini, Copilot, or a custom URL. |
| browser_extract_messagesC | Parse visible chat turns from the open browser AI page. |
| browser_send_messageB | Type a message into the browser AI composer and send it. |
| browser_screenshotC | Screenshot the current browser page. |
| browser_disconnectA | Close the Playwright browser session. |
| browser_statusA | Show whether a browser session is connected and which site is open. |
| relay_tickC | One relay cycle: extract browser AI messages → mailnotmilk chat → optional wait for coding-agent reply → send back to browser. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 36 tools
Multiple tools have unclear boundaries: post_message vs chat_say vs browser_send_message all send messages but to different targets; check_inbox, list_history, and chat_history all retrieve messages but with different scopes. The many list/send variants make it hard for an agent to pick the right tool.
There are consistent clusters (e.g., browser_* prefixed tools, verb_noun like check_inbox, read_message), but the overall set mixes conventions: chat_link and chat_history are noun phrases, mailbox_stats is noun_noun, and relay_tick is noun_verb. Still readable, but not uniform.
With 36 tools, the server is overloaded, far beyond the typical well-scoped range. Even though it covers messaging, browser automation, and presence, the sheer number makes it unwieldy and suggests too many responsibilities for a single MCP server.
The messaging and presence lifecycle is fairly complete (send, read, reply, search, archive, react, status), but missing obvious operations like editing or deleting messages. Chat management is also thin (no leave/delete/rename), and browser automation is limited to AI pages. Notable gaps exist, but core workflows work.