Skip to main content
Glama
624,932 tools. Updated 2026-09-30 14:35

"A server for accessing an inbox or messaging system" matching MCP tools:

  • Move, copy, flag or archive messages you name by message_id, in one inbox. Get message ids from email_read first. Every action acts only on the ids you pass and is undone by another call: a move by a move back, archive by a move into the Inbox, flag by the opposite flag, and a copy leaves the original untouched. Copy follows the CONNECTOR, not the address: inbox_list reports it per inbox as capabilities.copy, true for every IMAP inbox (a Gmail address connected over IMAP included) and for Outlook, false only on the Gmail API connector, which has no copy operation at all. On Gmail a move adds the destination label and removes INBOX, leaving other labels in place; moving a message OUT of Trash or Spam into a real label also clears TRASH/SPAM, so it is a genuine restore rather than a labelled message still queued for deletion. To move everything matching a search instead of a list of ids, use email_search_and_move, which is its own tool because a wrong filter there relocates a whole inbox. Needs manage:folders; deleting is the separate email_delete tool.
    ConnectorOAuth
  • Anonymous bug report / feature request / docs gap, queued for human review. Default routing: `public-feedback` inbox (general AILANG). Pass `package="vendor/name"` (e.g. "sunholo/auth") to route to that package's `pkg:vendor/name` inbox where its autonomous agent watches. Categories: bug, feature, docs, limitation. Body limit 10KB, snippet limit 4KB. Optional contact field for follow-up; opaque to the server. Set `auto_dispatch=true` to authorize the package agent to act on your submission immediately (default false — files for human triage; pkg-feedback agent template lands in a separate sprint).
    ConnectorNo auth
  • Send a direct message to another agent or human in the messaging substrate. Wires through cue.dock.svc, the same path the /live UI uses, so the recipient sees this message in their drawer (and, once they have a Dock-connected agent worker running, their agent harness's inbox). Address format is `<agent_slug>@<user_slug>`: `flint@socrates` targets the `flint` agent owned by user `socrates`; `self@<user_slug>` targets a human's synthetic self-agent (use this to message a human directly when you don't know which of their agents to ping). Use this to message a HUMAN (`self@<user_slug>`); to reach an agent teammate use `message_teammate` (send_message refuses agent recipients — see below). Don't use it as a chat-ops side-channel for things that belong in workspace events. Sender identity follows the caller: agent callers send AS themselves, user callers send AS their self-agent (`self@<their_slug>`). Body cap is 32,000 chars. Returns `{ messageId, threadId, to }` on success. IMPORTANT: this tool QUEUES a message to the recipient's inbox — it does NOT wake or run a recipient agent. To actually reach an AGENT teammate (deliver AND wake it), use `message_teammate`. send_message to an agent teammate is REFUSED with an error (code -32602) — it would only file to their inbox without a wake, so the message would strand unacted-on. Use send_message ONLY for humans (`self@<user_slug>`) or when you deliberately want a human inbox drop without a wake. The recipient is resolved against the substrate's identity space, NOT against your accessible workspace set, this is messaging, not workspace write access. Pre-cue.dock.svc-deploy environments return `cue_not_configured` (caller treats as 'messaging not deployed yet').
    ConnectorNo auth
  • Lists the agents you can reach — your own agents AND agents shared to you from other owners. To MESSAGE any of them, use the `message_teammate` tool (it delivers AND wakes the recipient). Do NOT use send_message for an agent — that path does not wake them and the message can strand. Each entry has three identity fields, and it matters which you use: • `name` — the agent's DISPLAY NAME, for reading only. Never address by it (names are not unique and change). • `address` (`name@owner.org`) — a human-readable 3-part address showing the agent's OWNER and ORGANIZATION. It can change (renames), so use it for display, NOT for stored references. • `agentId` (`agt_...`) — the OPAQUE, STABLE MESSAGING id. This is the safe, unambiguous way to identify and message an agent: pass it as `message_teammate`'s `to`, and use it whenever you store or act on a reference later. It never changes. NOTE: this is the messaging id, not the execution id — it will not match ids you see elsewhere (event logs, schedule owners, run records). Don't join it against those; it's for messaging and storage only. Rule of thumb: read the name, use the `agentId` to message and to store. Also returns `online`/`alive`/`listening` status, `brandKey`, and `ownerAddress` (`self@<owner>`) for messaging the owning human directly. Takes no arguments.
    ConnectorNo auth
  • Long-poll subscription that pushes ctx.info() on each new inbox file. Replaces bash polling daemons (watch-relay-*.sh) with server-initiated push. Call once at session start (e.g. via SessionStart hook). Server holds the subscription, watches the calling agent's role-specific inbox dir, and fires info-level notifications on each new relay file arrival. Client re-calls this in a loop for persistent coverage. Per PR #1 (CCR-inversion-for-relay-pickup): `inbox_filter` parameter added to BYPASS role-based dir resolution. Use when role detection is unreliable OR when subscribing to a specific canonical inbox (e.g., 'cc_tb'). Closes 3-week-old feedback_relay_arrival_invisible_midsession HARD RULE.
    ConnectorNo auth
  • Removes one entry from an **account-wide** allow or block list. Returns no body. 🔴 This changes mail handling for **every inbox in the account, including other callers'**; the inbox-scoped `delete_agentmail_inbox_list_entry` is the narrower action. Entries whose `read_only` is true are platform managed and cannot be removed — check with `get_agentmail_list_entry` first.
    Connector
    Destructive
    OAuth

Matching MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server that provides OpenRouter model pricing data, enabling price lookups, trending/cheapest lists, and model searches without an API key.
    -

Matching MCP Connectors

  • Message, ask for a quote or book a call with Surfing Dog, through its open-source inbox.

  • Unified messaging MCP server: WhatsApp, Instagram, Telegram, SMS, Messenger & email support inbox

  • Write to the Inbox — the tray of time-blocks captured without a time yet: intentions like "wash the car" or "call the dentist". To READ Inbox blocks, use get_schedule (`backlogCount`, then `includeBacklog: true` for the items, with `backlogQuery` to find one by name); THIS tool is the write surface. Pass `ops`, an array where each item has an `op` plus its fields — one or many in a single call, atomic by default (if any op fails nothing is written; pass `partial: true` for best-effort). Ops: `capture` creates an Inbox block (name, optional notes, `durationMinutes`, `kind`, `checklist`, `areaId`/`activityTypeId`, and an optional plannedDate or plannedDate+plannedUntil window — the still-untimed days it is meant for; pass `enrich: true` for RAW captured text, e.g. a web-page selection, to have AI propose a readable name and a duration first — never for a name the user chose); `update` edits one by `id` (plannedDate: null moves it back to Someday; areaId/activityTypeId: null clears the link; a task-app-linked block's date is provider-owned and refused); `remove` deletes one by `id`; `schedule` PLACES an Inbox block on the dial at `start` (local "YYYY-MM-DDTHH:MM"; its duration sizes it; pass an RRULE `recurrence` to make it repeat) and removes it from the Inbox; `park` MOVES a dial event (by `id`) back into the Inbox. `park` only works on a native or owned-calendar one-off that hasn't been reviewed — a recurring, sleep, reviewed, or not-owned event is refused with a reason. Moving a calendar-linked event to the Inbox removes its calendar copy but remembers the calendar, so re-scheduling it republishes there. Results are `created` / `updated` objects and `deletedIds`. Every call that writes returns one `undoToken` + `expiresAt`; pass it to `undo` to reverse the whole call. The Inbox needs Reassign Pro; the 7-day free trial includes it. `schedule` and `park` are inverses, and both keep the block's `kind`.
    Connector
    Destructive
    OAuth
  • List all Gmail labels for the authenticated user. Returns both system labels (INBOX, SENT, TRASH, etc.) and user-created labels with message/thread counts. Use this to discover label IDs needed for add_labels, remove_labels, or search_email queries.
    ConnectorOAuth
  • Add and/or remove the same labels on many email messages at once in a single Gmail API call (wraps users.messages.batchModify). Use this for bulk operations such as marking multiple specific emails as read (remove ['UNREAD']), archiving (remove ['INBOX']), or starring (add ['STARRED']). Use list_labels to find label IDs (Gmail requires IDs, not names). Common system label IDs: INBOX, STARRED, IMPORTANT, UNREAD, SPAM, TRASH. Provide 1-1000 email IDs and at least one of `add` or `remove`. The same label changes are applied to every listed message. Gmail returns no per-message status, so a successful call means Gmail accepted the request; an invalid email ID or label ID typically causes Gmail to reject it.
    ConnectorOAuth
  • Set a thread's READ-STATE for inbox triage. Inputs: threadId, status = 'read' | 'unread' | 'archived' (archived hides it from the default inbox; refetch with inbox archived='include'/'only'). Returns { marked: true }. 404 if unknown. This is the read/archive flag ONLY — use label_thread for a triage label chip, reply to respond.
    ConnectorNo auth
  • For an active inbox, return at most 50 normalized message summaries after an opaque inbox-bound cursor, optionally waiting up to 30 seconds for a newer message. A bounded wait may return an empty page and continuation cursor. Supply the lease bearer on the HTTP or MCP transport; never place it in tool arguments.
    ConnectorNo auth
  • listVpsOsTemplates: List operating system templates available to install. Requires authentication. Pass EXACTLY ONE of packageId (to pick an operatingSystemId for orderVps, so the server arrives with an OS on it) or instanceId (to pick a template for reinstalling via buildVpsInstance). The two are not interchangeable: the available set depends on the package. Template ids change over time, so always resolve an id here rather than reusing a remembered or hardcoded one.
    ConnectorNo auth
  • Find messages that came back undelivered. A send is reported successful when the mail RELAY accepts it, but delivery happens minutes later on the recipient's server and can still fail - the bounce arrives as a separate message in the INBOX long after the send tool has answered. USE THIS AFTER SENDING ANYTHING IMPORTANT, and whenever the user asks whether a message arrived. Scans INBOX and the Junk folder by default, because bounces are automated mail from an unfamiliar server and frequently land in spam. Each result says whether the failure is PERMANENT (the address is wrong; resending changes nothing) or TEMPORARY (the receiving server is busy and the sending server is STILL RETRYING - resending would deliver it twice). Always tell the user which it is before offering to resend. THIS ONLY FINDS FAILURES. If the user is asking whether a message ARRIVED rather than whether it failed, call check_receipts as well: no bounce is weak evidence of delivery, and a delivery or read confirmation is the positive half of the same question.
    ConnectorOAuth
  • Live lookup for up to 100 North American phone numbers in one call (carrier, line type, routing; optional cnam/spam/messaging). Each number is a fresh paid read — spend scope required.
    ConnectorNo auth
  • Acknowledge an `inbox` message after you have read and handled it (pass the item's `id`). Required for `urgent` messages — they are redelivered on every read until acked or expired. Idempotent: re-acking returns ok with `already_acked: true`.
    ConnectorOAuth
  • Read the mail that has arrived in an inbox from create_agent_inbox. Each message carries the sender, the subject, the arrival time in UTC, the cleaned text, any standalone 4 to 8 digit codes found in that text and any public http or https links. Attachments and raw headers are not stored. Set wait_seconds from 1 to 25 to wait for the next message, or zero to read immediately. An empty inbox is the ordinary answer before mail arrives and is not a failure. When truncated is true, at least one whole message was refused because the inbox had reached its 20 message cap or its 256 KiB total text cap. A code you are waiting for may then have been turned away rather than delayed. The reply names the public slug and never repeats the secret inbox_id. An unknown inbox_id and a wrong one fail in the same way, so neither can be told from the other, while an expired inbox says that it expired. No API key, account or sign up is required.
    ConnectorNo auth
  • Permanently deletes an inbox and the mail in it. Returns no body. **This cannot be undone, and the inbox may not be yours** — Every AIsa caller shares one AgentMail account, so this reaches inboxes other callers created, so confirm ownership from `get_agentmail_inbox` before calling. To stop using an inbox without destroying it, simply leave it alone.
    Connector
    Destructive
    OAuth
  • Reply to an existing inbox conversation (DM, comment, or mention) on Instagram, Facebook, LinkedIn, TikTok, YouTube, X, or Threads. You can only reply to conversations that already exist. For a comment or mention, pass message_id (the #id of the comment being answered): comments on one post share a conversation and without it the reply goes under the newest comment on the post. Meta direct-message replies must be within the platform's 24-hour messaging window: a 422 outside_messaging_window means the window has closed, nothing was sent, and the user must answer that DM from the Instagram or Facebook app (mirrored into the inbox) or skip it with mark_inbox_read; do not retry. TikTok replies are comments only, text-only, and capped at 150 characters; they can take a few minutes to appear on TikTok while they pass spam review. YouTube replies are comments only. Threads replies are on the workspace's posts and mentions; a 401 reauth_required means the Threads connection must be reconnected to grant the reply permission. X replies are DM-only and use credits from the organisation's existing balance (X's API fee passed through); a 402 insufficient_credits error means that balance is too low — tell the user and do not retry. attachment_url/attachment_type let you send media on a Facebook or Instagram DM (text is optional when an attachment is set); other platforms are text-only. Set include_next: true to get the next conversation that needs an answer back in the same call (same as get_next_unanswered), so the inbox can be worked through as: get_next_unanswered → draft → reply_to_inbox(include_next) → draft → repeat. A 409 duplicate_reply means this exact reply already went out to this conversation in the last 10 minutes (an earlier call that looked slow or failed did succeed) or is being sent right now: nothing was sent again, do NOT retry it — continue with get_next_unanswered. A 422 reply_not_allowed means the platform refuses replies to this item for good (Facebook #1705: the comment sits on a share or boosted copy of the post, or the commenter restricts replies; YouTube: the thread's canReply is false because comments are off on the video or the comment was removed or held for review): the item is dropped from get_next_unanswered automatically, tell the user, and do NOT retry.
    Connector
    Destructive
    OAuth
  • List recent enquiries (leads) for YOUR agency's CRM - newest first. Use when the agent asks what has just come in (e.g. "what came in today?"). This is the enquiry inbox: an enquiry that arrived from the portal, a website or a microsite. Once an agent starts working a person they live on a pipeline board instead - for those, use my_pipeline. An agency that works everything off the boards can have a busy CRM and an empty inbox here, which is not the same as having no leads. Requires an agency API key; only ever returns the calling agency's own leads.
    ConnectorNo auth
  • Get the Designesy SKILL.md: the agent-skill-format export of the design-system contract, written as behavioral rules an AI coding agent can drop into .agents/skills/ or a system prompt. Use this when you want the contract in a form that steers how an agent *builds* UI (tokens, anti-patterns, behavioral rules, verification). When NOT to use: for the raw contract JSON, use designesy_contract; for scoring, use designesy_score. Read-only: no side effects. Returns markdown text (SKILL.md format) to drop into .agents/skills/ or paste into a system prompt. No parameters.
    ConnectorNo auth
  • Create an autonomous AI agent on the user's Fine Structure account: a standing worker, not a chat session. It gets the platform's default safe tool policy and its own email address, it can read and write the app database, and once the owner phone is verified (see get_agent_whatsapp) it can message its owner on WhatsApp and by email through the platform system channels. Pair it with schedule_agent_task for recurring work such as following up new leads on WhatsApp each morning, watching an app for runtime errors, or sending a weekly summary. Messaging anyone other than the verified owner requires a channel the owner connects in the Fine Structure Studio.
    ConnectorNo auth