# Macro > Product and technical documentation for Macro, the unified interface for email, messages, tasks, calls, agents, pull requests, docs, CRM — linked together with shared AI memory. - [Welcome to Macro](https://docs.macro.com/index.md): Extremely fast, unified interface for all your work, all linked together in one database. - [Get Started](https://docs.macro.com/getting-started.md): Set up Macro and learn the core workflow in about 15 minutes. - [Switch to Macro](https://docs.macro.com/switch-to-macro.md): Migration guides for moving to Macro from Superhuman, Notion, Slack, Linear, and ClickUp. - [Get the App](https://docs.macro.com/apps.md) - [Unified Inbox](https://docs.macro.com/product/inbox.md): All your email accounts, messages, and @mentions in a single inbox. - [Unified Search](https://docs.macro.com/product/search.md): Macro's unified search makes it possible to find anything in <50ms across email, tasks, docs, calls transcripts, agents, and files. - [Unified Memory](https://docs.macro.com/product/unified-memory.md): Personal and team-level memory across mail, messages, tasks, docs and connectors. - [Unified Tagging](https://docs.macro.com/product/tagging.md): One set of colored tags that spans every block type: docs, email, tasks, chats, and calls. - [Agents](https://docs.macro.com/product/agents.md): Agents that live inside your workspace — with full context on your email, tasks, docs, calls, and channels. - [Email](https://docs.macro.com/product/email.md): Keyboard-driven email with Gmail sync. - [Documents](https://docs.macro.com/product/docs.md): Markdown-native, fast, collaborative, and @linked documents. - [Canvas](https://docs.macro.com/product/canvas.md): An infinite 2D board where sketches, shapes, and live blocks from your workspace sit side by side. - [Tasks](https://docs.macro.com/product/tasks.md): Track work with priorities, statuses, and linked context. - [Snippets](https://docs.macro.com/product/snippets.md): Reusable text you can insert anywhere by typing ; - [Channels](https://docs.macro.com/product/channels.md): Channels are where you and your team collaborate. They serve as the main hub of communication between you and others. - [Calls](https://docs.macro.com/product/calls.md) - [Calendar](https://docs.macro.com/product/calendar.md): Your Google Calendar as a Macro block alongside the email it came from. - [Folders](https://docs.macro.com/product/folders.md): Store and share files across your workspace. - [CRM](https://docs.macro.com/product/crm.md): Contact and company records built automatically from your team's email. - [Blocks](https://docs.macro.com/concepts/blocks.md): Blocks are at the core of Macro's philosophy. They are designed to work together like legos. - [Mentions](https://docs.macro.com/concepts/mentions.md): How blocks reference each other and how permissions are handled. The @mention primitive that works across every markdown surface in Macro. - [Properties](https://docs.macro.com/concepts/properties.md): Attach structured fields to documents, tasks, emails, and CRM records with one shared system. - [Permissions](https://docs.macro.com/permissions.md): Channel-based sharing: access comes from channel membership instead of per-file dialogs. - [Agent recipes](https://docs.macro.com/AI/recipes.md): Copy-paste prompts for the most useful things agents can do in your Macro workspace. - [Bring your own agent](https://docs.macro.com/AI/bring-your-own.md): Connect a self-hosted ACP agent harness to Macro with macrod. - [MCP Setup](https://docs.macro.com/AI/mcp/overview.md): Connect AI clients to the Macro MCP server. - [Tool Reference](https://docs.macro.com/AI/mcp/tools/index.md): Generated reference pages for Macro MCP tools. - [BashCodeExecution](https://docs.macro.com/AI/mcp/tools/bash-code-execution.md): Execute a bash command in a sandboxed environment using Claude's built-in code execution tool. - [BulkSetEntityPropertyOptions](https://docs.macro.com/AI/mcp/tools/bulk-set-entity-property-options.md): Apply one multi-select option delta — most often a tag — to many entities in a single call. Use this instead of calling SetEntityProperty once per entity when the user asks to tag or label a set of items at once (e.g. "tag the last 50 emails as Follow-up"). Provide the property_definition_id (a tag… - [ConfigureBot](https://docs.macro.com/AI/mcp/tools/configure-bot.md): Configure a manageable bot's profile. Provide only fields that should change. Use avatarUrl to set a profile picture from an image already uploaded to Macro static files or another reachable image URL; pass an empty string to clear the current picture. Passing an empty string for description clears… - [ContentSearch](https://docs.macro.com/AI/mcp/tools/content-search.md): Search items by their content: document body text; email subject/body/sender/recipient/cc/bcc and the display names on those addresses; chat messages; call transcripts. This is keyword search, not semantic search: queries only match literal words/tokens, prefixes, or exact quoted terms that appear i… - [CreateBot](https://docs.macro.com/AI/mcp/tools/create-bot.md): Create a bot with a name, stable handle, and optional profile. Omit teamId for a bot owned by the current user; provide teamId to create a team-owned bot, which requires team administrator or owner permission. Pass channelId when the bot should post to a channel immediately: the current user must be… - [CreateCalendarEvent](https://docs.macro.com/AI/mcp/tools/create-calendar-event.md): Prepare an event on the user's calendar, inviting any listed attendees through Google Calendar. In Macro chat this tool opens an inline composer so the user can review, edit, and confirm the event; use the tool to present the proposal instead of asking for a redundant confirmation in prose. When the… - [CreateChannel](https://docs.macro.com/AI/mcp/tools/create-channel.md): Create a private or team channel and add its first members. Use `private` for an invite-only channel and `team` for a channel owned by the current user's team. Do not use this for a direct message — those are created separately. Team id is resolved from the current user; do not invent one. Participa… - [CreateDocument](https://docs.macro.com/AI/mcp/tools/create-document.md): Create a plaintext document. - [CreateProject](https://docs.macro.com/AI/mcp/tools/create-project.md): Create a project — shown as a folder in the app UI. Documents, AI chats, email threads, and other projects can be placed inside it. - [CreateReminder](https://docs.macro.com/AI/mcp/tools/create-reminder.md): Schedule a reminder for the current user. At `remindAt` it is delivered to their Macro inbox as a notification and stays there until they mark it done. A reminder is either attached to one Macro item — so clicking it opens that item — or standalone. Attached is the common case ("remind me to reply… - [CreateTag](https://docs.macro.com/AI/mcp/tools/create-tag.md): Create a new tag — a colored label the user can apply to documents, emails, tasks, AI chats, and projects — in the user's personal set or their team's shared set. The set is provisioned automatically the first time a tag is created. Tags are matched by label, so call ListTags first and avoid creatin… - [DeleteBot](https://docs.macro.com/AI/mcp/tools/delete-bot.md): Delete a bot the current user owns or a bot owned by a team they belong to. This removes the bot from every channel and disables its credentials and webhooks. The operation cannot be undone, so only use it after the user explicitly confirms deletion. - [DeleteCalendarEvent](https://docs.macro.com/AI/mcp/tools/delete-calendar-event.md): Delete an event from the user's calendar. The deletion is written to Google immediately and attendees are notified, so confirm with the user before deleting — it cannot be undone. Get the `eventId` from ListCalendarEvents. For recurring events, `scope` controls how much is removed: "all" (default)… - [DeleteImportEntity](https://docs.macro.com/AI/mcp/tools/delete-import-entity.md): Decline a staged import candidate on the user's behalf. The item is remembered as declined so it won't be proposed again; only the user's own staged items can be declined. - [DeleteReminder](https://docs.macro.com/AI/mcp/tools/delete-reminder.md): Permanently delete one of the current user's reminders, along with any notification it already produced. Get the `reminderId` from ListReminders or CreateReminder. This cannot be undone, and it is not the usual way to clear a reminder. When the user has simply dealt with one, use UpdateReminder wit… - [DeleteTag](https://docs.macro.com/AI/mcp/tools/delete-tag.md): Permanently delete a tag from the user's personal set or their team's shared set. This removes the tag from every item it is currently applied to, so it is destructive and cannot be undone — confirm with the user first. Both ids come from a ListTags result: `id` is the tag's option id, and `property… - [DisplayResults](https://docs.macro.com/AI/mcp/tools/display-results.md): Present results to the user as a rich view. The `view` argument is a dynamic-UI view object (a title plus an ordered list of widgets) following the dynamic-UI schema provided to you. The view is rendered immediately in the chat; this tool returns as soon as it is dispatched. - [EditDocument](https://docs.macro.com/AI/mcp/tools/edit-document.md): Apply AI-driven edits to a Macro markdown document in place -- rewriting, inserting, formatting, or restructuring. Markdown documents only: these are authored in Macro's collaborative editor, and are the only documents whose content this tool can rewrite. Uploaded files -- PDFs, DOCX, spreadsheets,… - [EditTag](https://docs.macro.com/AI/mcp/tools/edit-tag.md): Rename or recolor an existing tag in the user's personal set or their team's shared set. The tag's id is preserved, so the change is reflected everywhere the tag is already applied — no item loses the tag. Provide the tag's `id` and its set's `property_definition_id` (both from ListTags) plus a new… - [GetBotWebhooks](https://docs.macro.com/AI/mcp/tools/get-bot-webhooks.md): Get the channel-specific webhook URLs for a bot the current user can manage. A bot has one URL per channel it can access. POST message content to a returned webhookUrl and authenticate with a token minted from the chat card or bot settings after IssueBotCredential or CreateBot; send it in the return… - [GetCompany](https://docs.macro.com/AI/mcp/tools/get-company.md): Fetch one of the team's CRM companies by id, with its domains, contacts, pipeline Stage / Owner / Revenue, and all attached property values (including custom properties and the valid stage options). Use ListCompanies to find company ids. To change a property (move stage, set owner/revenue, or edit a… - [GetEntityProperties](https://docs.macro.com/AI/mcp/tools/get-entity-properties.md): Get all properties attached to an entity (document, project, CRM company, etc.). Tasks are targeted as entity_type=document. Returns property definitions with their current values and available options for select-type properties. Select and tag values also come back resolved as human-readable labels… - [GetThread](https://docs.macro.com/AI/mcp/tools/get-thread.md): Retrieve an email thread and its messages. Returns the thread metadata, the labels applied to the thread (e.g. INBOX, UNREAD, STARRED, and any custom labels), and message contents including sender, recipients, subject, body text, and the labels on each individual message. Use this to read the conten… - [ImportNotionPage](https://docs.macro.com/AI/mcp/tools/import-notion-page.md): Import one specific Notion page through Macro's canonical Notion importer. Use this when the user explicitly asks to import a page URL or id. The tool performs deduplication, fetches through the user's connected Notion MCP, normalizes the page, creates the Macro markdown document, and returns its en… - [IssueBotCredential](https://docs.macro.com/AI/mcp/tools/issue-bot-credential.md): Prepare a new bot credential for a bot the current user can manage. This does not mint the secret. Tell the user to click the chat card or open bot settings to create the token. The secret is shown only while that card is open. Use this when the user asks for bot credentials or a webhook token; exis… - [ListBots](https://docs.macro.com/AI/mcp/tools/list-bots.md): List every active bot the current user can manage, including user-owned bots and bots owned by teams they belong to. Use this to discover a botId before issuing credentials, reading webhook URLs, changing channel access, configuring, or deleting a bot. - [ListCalendarEvents](https://docs.macro.com/AI/mcp/tools/list-calendar-events.md): List the user's calendar events between two instants, across every calendar they have connected. Returns one entry per occurrence (a recurring event appears once per instance in the window), soonest first, with the `eventId` needed by UpdateCalendarEvent and DeleteCalendarEvent. Use this to answer… - [ListCalendars](https://docs.macro.com/AI/mcp/tools/list-calendars.md): List the calendars the user can see across their connected inboxes, with each calendar's `calendarId`, display name, owning inbox address, and whether it is primary and writable. Use this before CreateCalendarEvent when the user wants an event on a specific non-default calendar (e.g. "add it to my… - [ListCompanies](https://docs.macro.com/AI/mcp/tools/list-companies.md): List the CRM companies tracked by the authenticated user's team, sorted by most recent interaction. Each row includes the company id, name, domains, last interaction time, and its pipeline Stage / Owner / Revenue properties when set. Use the filters to narrow results: `search` for name/domain text,… - [ListEntities](https://docs.macro.com/AI/mcp/tools/list-entities.md): Generated from the Macro Rust tool registry. - [ListImportEntities](https://docs.macro.com/AI/mcp/tools/list-import-entities.md): List the user's import ledger: staged candidates, in-flight imports, imported items (including ones teammates imported into the team), and declined items. Use this to check what already exists before proposing or creating imports. - [ListInboxes](https://docs.macro.com/AI/mcp/tools/list-inboxes.md): List the email inboxes the user can read or act on. Returns the caller's primary inbox, any other inboxes they have connected, and any inboxes delegated to them by teammates. Each entry has an `emailAddress`, `isPrimary` (the default inbox used when no inbox is specified), and `isDelegated` (true wh… - [ListLabels](https://docs.macro.com/AI/mcp/tools/list-labels.md): List the user's Gmail labels. Returns both system labels (INBOX, SENT, DRAFTS, UNREAD, STARRED, TRASH, SPAM, IMPORTANT, CATEGORY_PERSONAL, CATEGORY_SOCIAL, CATEGORY_PROMOTIONS, CATEGORY_UPDATES, CATEGORY_FORUMS, etc.) and any custom user-created labels. Each label has a UUID `id` and a `name`. Gmai… - [ListReminders](https://docs.macro.com/AI/mcp/tools/list-reminders.md): Read the current user's reminders, soonest first. **Filtered by default: only reminders the user has not marked done**, which is what "what are my reminders" means. Pass `completed: true` for the ones they have dealt with. To re-read a reminder you already have the id for, pass it in `reminderIds`.… - [ListSkills](https://docs.macro.com/AI/mcp/tools/list-skills.md): List the skills the user can access, most recently updated first. Skills are markdown documents containing instructions for AI to read and follow; after finding a relevant skill, read its instructions with ReadContent using the returned document id. Use this to discover what skills exist; when looki… - [ListTags](https://docs.macro.com/AI/mcp/tools/list-tags.md): List the tags available to the user: their personal tag set plus their team's set when they belong to a team. Each tag has a human-readable label, an option id, and optionally a color. Refer to tags by label when talking to the user. To filter items by tag, pass the labels to the tags argument of Li… - [ListTeamMembers](https://docs.macro.com/AI/mcp/tools/list-team-members.md): List the current members and pending invites for the authenticated user's team. Requires the caller to be a team member. The returned roles (owner/admin/member) are app permission levels only, not job titles — they say nothing about the org chart. Never infer that someone is a founder, an executive,… - [LoadTools](https://docs.macro.com/AI/mcp/tools/load-tools.md): Load tools by name (from `SearchTools` results) so you can call them. After loading, invoke each tool by its name. Only load the tools you actually need. - [ManageBotChannelAccess](https://docs.macro.com/AI/mcp/tools/manage-bot-channel-access.md): Grant or revoke a manageable bot's access to one channel. Granting requires the current user to be a channel member. Both actions require the user to own the bot or belong to its owning team; revoking still works after the manager leaves the channel. Granting access creates that channel's webhook UR… - [ManageChannelParticipants](https://docs.macro.com/AI/mcp/tools/manage-channel-participants.md): Add or remove members of an existing channel. Requires the current user to be a channel member. Direct-message channels cannot change membership. The channel owner cannot be removed. Participants accept `macro|` ids from ListTeamMembers or bare emails. Use `add` to invite people and `remove`… - [MarkNotificationsDone](https://docs.macro.com/AI/mcp/tools/mark-notifications-done.md): Mark one or more notifications as done or not done for the current user. Use this when the user has completed the action associated with a notification. - [MarkNotificationsSeen](https://docs.macro.com/AI/mcp/tools/mark-notifications-seen.md): Mark one or more notifications as seen for the current user. Use this when the user has viewed notifications but hasn't acted on them yet. - [MoveToProject](https://docs.macro.com/AI/mcp/tools/move-to-project.md): Move a document, AI chat, email thread, or project into another project (projects are shown as folders in the app UI), or move it out to the top level. Requires edit access to the destination project. Moving a document or email thread requires edit access to it; moving an AI chat or a project requir… - [NameSearch](https://docs.macro.com/AI/mcp/tools/name-search.md): Search items by their name or title: document name, email subject, chat title, channel name, project name, or call-record name. This is keyword search, not semantic search: queries only match literal words/tokens, prefixes, or exact quoted terms that appear in the indexed title/name. Use this for ta… - [ReadActivity](https://docs.macro.com/AI/mcp/tools/read-activity.md): Read actions attributed to the authenticated user within a time range, newest first. Use this for questions about what the user did, including actions an agent performed on their behalf. Property changes include propertyName/propertyType plus fromLabels/toLabels for resolved select and tag values; u… - [ReadCallRecord](https://docs.macro.com/AI/mcp/tools/read-call-record.md): Retrieve the transcript for a specific call record. Use ListEntities with includeTypes: ["call"] first to find the callId. Only the transcript is returned — other metadata (participants, duration, etc.) is already available from ListEntities. In transcript segments, speakerId is the associated user/… - [ReadChannelMessageContext](https://docs.macro.com/AI/mcp/tools/read-channel-message-context.md): Read the local channel and thread context around one message id. If the id is a thread reply, this resolves the parent, returns nearby top-level channel messages, and returns nearby replies around the anchor reply. - [ReadChannelMessages](https://docs.macro.com/AI/mcp/tools/read-channel-messages.md): Read a small structured window of top-level messages from a channel. Use this for latest messages, bounded time ranges, cursor continuation, or a window around a message. For full thread replies, use ReadChannelThread. - [ReadChannelThread](https://docs.macro.com/AI/mcp/tools/read-channel-thread.md): Read replies from a channel message thread. The messageId may be either the top-level parent message id or any reply id in the thread. Use this after ReadChannelMessages or ContentSearch finds a relevant threaded discussion. - [ReadChat](https://docs.macro.com/AI/mcp/tools/read-chat.md): Retrieve a chat thread's message history by its ID. Returns the conversation title and messages with their roles, content, and attachment references. - [ReadContent](https://docs.macro.com/AI/mcp/tools/read-content.md): Retrieve a documents content - [ReadMetadata](https://docs.macro.com/AI/mcp/tools/read-metadata.md): Retrieve a documents metadata - [ReadProject](https://docs.macro.com/AI/mcp/tools/read-project.md): List the direct contents of a project (shown as a folder in the app UI): its documents, AI chats, and nested projects. Requires view access to the project. Email threads filed into the project are not included. - [ReadThread](https://docs.macro.com/AI/mcp/tools/read-thread.md): Read threaded content by ID(s). Supports reading channels, chats, and projects by their respective IDs. Use this tool when you need to retrieve the full content of a specific item(s). For documents, use ReadContent or ReadMetadata instead. Channel transcripts only include the latest 150 messages… - [RenameChannel](https://docs.macro.com/AI/mcp/tools/rename-channel.md): Rename an existing channel. Requires the current user to be a channel admin or owner. Direct-message channels cannot be renamed. Use only when the user asks to rename a channel. - [RenameDocument](https://docs.macro.com/AI/mcp/tools/rename-document.md): Rename a document. Requires edit access to the document. - [SearchSkills](https://docs.macro.com/AI/mcp/tools/search-skills.md): Search the user's skills by name. Skills are markdown documents containing instructions for AI to read and follow; when the user references a skill (or a request matches one), find it with this tool and then read its instructions with ReadContent using the returned document id. This is keyword searc… - [SearchTools](https://docs.macro.com/AI/mcp/tools/search-tools.md): Find tools from connected integrations (e.g. Slack, Gmail, Linear, GitHub) by keyword. The top matches are loaded automatically: call them by exact name on your next step. Matches past the auto-load cap come back under `additional_matches` and need `LoadTools` first. Searching is cheap, so cast a wi… - [SelfKnowledge](https://docs.macro.com/AI/mcp/tools/self-knowledge.md): Learn what Macro is and how it works. Call this whenever the user asks an open-ended question about Macro itself — what it is, what it's for, what it can do, or how to do something in Macro — instead of answering from memory (your training data may be stale). Takes no arguments. Returns an overview… - [SendChannelMessage](https://docs.macro.com/AI/mcp/tools/send-channel-message.md): Send or reply to a channel on behalf of the user. Only use this when explicitly asked to send a message - [SendEmail](https://docs.macro.com/AI/mcp/tools/send-email.md): Draft, compose, and send an email. ALWAYS use this tool whenever the user asks you to draft, write, compose, or send an email (or reply to one) — never write the email as plain text in the chat. This tool opens the email draft in the composer for the user to review, edit, and confirm before it is se… - [SetEntityProperty](https://docs.macro.com/AI/mcp/tools/set-entity-property.md): Set or update a property value on an entity (document, project, etc.). Tasks are targeted as entity_type='document'. Provide the property_definition_id and exactly one value field matching the property's data type. For multi-select properties — including tags — prefer add_option_ids / remove_option… - [SetSenderPolicy](https://docs.macro.com/AI/mcp/tools/set-sender-policy.md): Set where future mail from a sender lands in one of the user's inboxes. This is the same control a human has in the inbox menus: Sender → Signal, Sender → Noise, and Block Sender. Policies: - `signal`: the sender's future mail shows in the Signal view. Use for senders the user says are important. -… - [Subagent](https://docs.macro.com/AI/mcp/tools/subagent.md): Delegate a task to a subagent that can independently use tools to research and complete it. The subagent has access to search, documents, properties, calls, and channel tools. Use this for tasks that require multiple tool calls or independent research. - [TextEditorCodeExecution](https://docs.macro.com/AI/mcp/tools/text-editor-code-execution.md): Use a text editor in a sandboxed environment using Claude's built-in code execution tool. - [UpdateCalendarEvent](https://docs.macro.com/AI/mcp/tools/update-calendar-event.md): Update an existing calendar event. Only the supplied fields change; omitted fields keep their current values. The change is written to Google immediately and attendees are notified of it, so confirm details with the user first. Get the `eventId` from ListCalendarEvents. `scope` picks how much of a… - [UpdateReminder](https://docs.macro.com/AI/mcp/tools/update-reminder.md): Change one of the current user's reminders: reword it, move when it fires, or mark it done. Get the `reminderId` from ListReminders or CreateReminder. Pass only the fields you are changing; anything omitted is left alone. At least one must be given. - Snooze or reschedule: set `remindAt` - Mark do… - [UpdateThreadLabels](https://docs.macro.com/AI/mcp/tools/update-thread-labels.md): Add or remove a single label from every message in a Gmail thread. In Gmail, nearly all inbox operations are just label add/remove operations, so this tool is the primitive for archiving, marking read/unread, starring, trashing, marking important/spam, and applying or removing custom labels. Workfl… - [WebFetch](https://docs.macro.com/AI/mcp/tools/web-fetch.md): Fetch the contents of a web page using Claude's built-in web fetch tool. - [WebSearch](https://docs.macro.com/AI/mcp/tools/web-search.md): Search the web for information using Claude's built-in web search tool. - [GitHub](https://docs.macro.com/integrations/github.md): Link pull requests to tasks and let task statuses update themselves as you ship. - [Teams & Admin](https://docs.macro.com/account/teams.md): Creating a team, inviting members, roles, and what admins can do. - [Billing & Plans](https://docs.macro.com/account/billing.md): Macro's free and premium plans, and how to manage your subscription. - [Security](https://docs.macro.com/security.md): Learn more about our data security practices and compliance measures. - [Get Support](https://docs.macro.com/support.md): How to get help with Macro, and fixes for the most common issues. - [FAQ](https://docs.macro.com/faq.md): How Macro compares to Notion, Superhuman, and Slack, plus licensing, self-hosting, teams, and data questions. - [Keyboard Shortcuts](https://docs.macro.com/keyboard-shortcuts.md): The complete reference for driving Macro from the keyboard. - [Changelog](https://docs.macro.com/changelog/introduction.md): All notable changes to Macro, pulled from GitHub Releases. - [May 2026](https://docs.macro.com/changelog/2026-05.md): Macro releases from May 2026. - [April 2026](https://docs.macro.com/changelog/2026-04.md): Macro releases from April 2026. - [March 2026](https://docs.macro.com/changelog/2026-03.md): Macro releases from March 2026. - [February 2026](https://docs.macro.com/changelog/2026-02.md): Macro releases from February 2026. - [January 2026](https://docs.macro.com/changelog/2026-01.md): Macro releases from January 2026. - [December 2025](https://docs.macro.com/changelog/2025-12.md): Macro releases from December 2025.