# Oryah Mail > Oryah Mail is a hosted remote MCP server from Infinihash LLC that connects Gmail, Google Workspace, Microsoft 365 and IMAP mailboxes and calendars to Claude and to AI agents, with per-mailbox permissions, a send-domain allowlist, scoped API keys for agents and an audit log. $1 per mailbox per month or $10 per mailbox per year, 14-day free trial. MCP endpoint: https://mail-mcp.infinihash.com/mcp (Streamable HTTP). People sign in with OAuth 2.1 (dynamic client registration, PKCE). Agents send `Authorization: Bearer omk_...` with an API key created in the admin console. Official MCP Registry name: com.infinihash/oryah-mail. ## Docs - [Documentation](https://mail.infinihash.com/docs.html): setup in Claude, Claude Code, Cursor, ChatGPT, Grok, Meta Muse, the OpenAI and xAI APIs and other MCP clients; permissions; API keys; tool reference; troubleshooting. - [Pricing](https://mail.infinihash.com/pricing.html): one plan, $1 per mailbox per month or $10 per mailbox per year, 14-day free trial, shared mailboxes count as mailboxes. - [Privacy](https://mail.infinihash.com/privacy.html) and [Terms](https://mail.infinihash.com/terms.html). - [Store page](https://apps.infinihash.com/apps/oryah-mail) on the Infinihash App Store. ## What it does - Connects several mailboxes behind one connector: Gmail and Google Calendar, Microsoft 365 mail and calendars including shared mailboxes, and IMAP providers (Yahoo, AOL, iCloud, Zoho, Fastmail, custom) with CalDAV where the provider offers it. - 30 tools with MCP annotations (readOnlyHint, destructiveHint): 14 read, 9 write, 7 send-or-delete. Send tools send immediately. - Per-mailbox Controls: Full access, Read + draft, Read only, Off or Custom. - Send-allowed domains per mailbox; a recipient outside the list (To, Cc, Bcc or Reply-To) makes the send fail, and the refusal is logged. - API keys for agents: access level (Read only by default), expiry, optional daily send cap, optional send-allowed domains and per-mailbox overrides. A request must pass both the key's access and the mailbox Controls. The owner can pause every key with one button (error api_keys_paused). - A key only advertises the tools it could use: Read only lists 13 read tools, Read + draft adds drafts and upload links, Full access lists all 30. - Send tools (send_mail, reply, forward, send_draft) accept idempotency_key: a repeated call with the same key returns the first result with idempotent_replay true and never sends twice (keys kept 7 days). - Audit log of every draft, send, organize, delete, calendar change and refusal, with the OAuth session or key name. Successful reads are not logged individually. ## What it does not do - It does not host, sync or back up mail; each request is relayed to the provider. - It does not add a confirmation step on the server; permissions, send caps and the client's own confirmations are the guard. - New mailboxes start with Full access; set Controls before giving an agent a key for them. - Google OAuth verification is not complete; Google shows an unverified-app screen when a Google account is added. ## Optional - [Infinihash](https://infinihash.com/llms.txt): the company and its other products. ## Tool reference Most tools take an `account` argument: a mailbox alias or email address, or `all` where noted. Each tool is subject to the mailbox's permissions and, for API keys, the key's access. Read (readOnlyHint): account_status (connection and token status for one or all mailboxes); list_accounts (mailboxes with alias, email, provider, type, enabled, permissions); unified_inbox (recent inbox messages across one or all mailboxes); search_mail (provider search syntax, one or all mailboxes); read_message; read_thread; read_attachment (text from PDF, DOCX, CSV, plain text, HTML; images for viewing); get_attachment; list_folders (folders or Gmail labels); list_calendars; list_events; get_event; find_free_time (merged free/busy across mailboxes, suggests open slots); check_upload (files uploaded to an upload link). Write: create_draft (nothing is sent); update_draft; mark_read; move_message; archive; create_upload_link (a link anyone can use for 24 hours to drop files to attach); create_event (attendees receive an invitation from the provider); update_event; respond_to_event (organizer is notified). Send and delete (destructiveHint): send_mail (sends immediately); send_draft (sends immediately); reply (reply or reply all); forward (keeps attachments by default); delete_message (provider trash or Deleted Items); label_message (Gmail labels or Microsoft 365 categories; on IMAP, labels are folders and removing the folder a message is in deletes it permanently); delete_event (attendees may be notified). Attachments on sends and drafts can come from another message in any connected mailbox, from an https URL the server fetches, from an upload link, or as a small inline file; 25 MB per message. Sends are checked against the send-allowed-domains list. Calendar invitations are not checked against it. ## Connecting agents Claude Code: `claude mcp add --transport http oryah-mail https://mail-mcp.infinihash.com/mcp --header "Authorization: Bearer omk_your_key_here"` (without the header, Claude Code runs the OAuth sign-in). Cursor (`~/.cursor/mcp.json`): `{"mcpServers": {"oryah-mail": {"url": "https://mail-mcp.infinihash.com/mcp", "headers": {"Authorization": "Bearer omk_your_key_here"}}}}` Claude web and desktop: Settings, Connectors, Add custom connector, URL https://mail-mcp.infinihash.com/mcp, then sign in. ChatGPT: in developer mode, create a custom app with server URL https://mail-mcp.infinihash.com/mcp and OAuth, then sign in. Plan and workspace settings decide whether custom apps and sending tools are available. Grok: grok.com/connectors, New Connector, Custom, URL https://mail-mcp.infinihash.com/mcp, then sign in. Meta Muse: ask Muse to add a custom connector for https://mail-mcp.infinihash.com/mcp, then sign in. OpenAI Responses API: tools=[{"type": "mcp", "server_label": "oryah-mail", "server_url": "https://mail-mcp.infinihash.com/mcp", "authorization": "omk_your_key_here", "require_approval": "always"}]. xAI API: the same tool shape without require_approval (xAI has no approval step), so use a Read only or Read + draft key, or allowed_tools. Other clients: any Streamable HTTP MCP client; OAuth metadata at /.well-known/oauth-protected-resource/mcp. ## Defaults that matter for agents - A new API key defaults to Read only. A new mailbox defaults to Full access; set its Controls before an agent gets a key for it. - Send tools send immediately; there is no server-side approval queue. Use Read + draft when a person should send the agent's drafts. - Pass idempotency_key on sends so a retry after a network error never sends twice; without it a send is carried out once per request. - Set a daily send cap on any key that may send; sends past the cap return send_cap_reached and are logged. - Mailbox tokens and app passwords stay on the server; the agent holds only its omk_ key, of which the server stores a hash.