jelly-mcp — Jelly's remote MCP server (letsjelly.com shared inbox) Bring your own key: create an API token in Jelly (Settings → API Tokens, Royal Jelly plan) and pass it on every request. This server stores nothing. Connect from Claude.ai (custom connector — URL is the only config, so the key rides in it): https://mcp.letsjelly.com/mcp?key=YOUR_JELLY_TOKEN Connect from Claude Code: claude mcp add --transport http jelly https://mcp.letsjelly.com/mcp \ --header "Authorization: Bearer YOUR_JELLY_TOKEN" Tools (23): • list_conversations — List the team's Jelly conversations, newest activity first • search_conversations — Search the team's mail by content and get back the conversations that match • list_messages — Page through every sent message in a conversation, oldest first (for threads longer than the 20-message embed in get_conversation) • list_comments — Page a conversation's internal team comments, oldest first • get_conversation — Read one conversation • get_message — Load a single message by id (full body, sender, recipients, attachments metadata, and sender-authentication result) • list_labels — List all team labels (id, name, color) • list_members — List active team members (member_id, name, email, role) — needed for assignment and snoozing • list_mailboxes — List the team's mailboxes (default first) • find_contact — Look up a Jelly contact by email address • get_autoresponder — Show the team's autoresponder (enabled flag + message) • get_statistics — How the team's inbox is doing over the last few weeks: how much mail arrived and went out, how fast first replies were, how the backlog moved day by day, what each member did, and which conversations have been waiting longest for a reply • add_comment — Add an internal comment to a conversation (visible to the team, never sent to the customer) • create_draft_reply — Create a DRAFT reply in a conversation for a human to review and send — API tokens can never send email in Jelly, so nothing goes to the customer until a team member sends it • create_label — Create a team label • label_conversation — Add a label to a conversation, or remove it with remove=true • assign_conversation — Assign a conversation to a team member by member_id OR email (exactly one) • unassign_conversation — Remove a member's assignment from a conversation (member_id from list_members) • conversation_action — Apply a reversible action to a conversation: archive, unarchive, trash, restore, spam, unspam, or unsnooze • snooze_conversation — Snooze a conversation until an ISO 8601 datetime for a specific member (it returns to their inbox then) • set_mailboxes — Replace a conversation's entire mailbox set with the given ids • create_draft_conversation — Start a brand-new outbound conversation as a DRAFT (not attached to an existing thread) • update_draft — Revise an existing draft's body and/or subject (only fields you send change) Notes: • The Jelly API cannot send email — draft tools create drafts a human reviews and sends in the Jelly UI. • Prefer the Authorization header where your client supports it; ?key= exists because Claude.ai custom connectors take a bare URL. Endpoint: POST / or /mcp (JSON-RPC 2.0).