Don Crowley / tools

AI chief of staff — full tool inventory

Every tool on the bench

This site is run with an AI chief of staff. These are the tools it can reach from a single session: the core harness that reads, writes and executes; the agents it can spawn; and the connectors into the working systems — GitHub, Gmail, Calendar, Drive, Dropbox, Notion, Granola and Wispr Flow. Descriptions and arguments are quoted verbatim from the live tool schemas. The longest schema texts are abridged to their opening lines and marked as such; argument descriptions over a sentence are trimmed to their first sentence.

250tools
14groups
9connected systems

Files & code

The core harness. Everything else builds on these seven: search, read, edit, write and execute against the working directory.

ReadReads a file from the local filesystem

Reads a file from the local filesystem. - `file_path` must be an absolute path. - Reads up to 2000 lines by default. - Results are returned using cat -n format, with line numbers starting at 1. - Reads images (PNG, JPG, …) and presents them visually. Reads PDFs via the `pages` parameter (max 20 pages/request). Reads Jupyter notebooks (.ipynb) as cells with outputs.

  • file_path string requiredThe absolute path to the file to read.
  • limit integerThe number of lines to read. Only provide if the file is too large to read at once.
  • offset integerThe line number to start reading from.
  • pages stringPage range for PDF files (e.g., "1-5", "3", "10-20"). Maximum 20 pages per request.
WriteWrites a file to the local filesystem, overwriting if one exists

Writes a file to the local filesystem, overwriting if one exists. When to use: creating a new file, or fully replacing one you've already Read. Overwriting an existing file you haven't Read will fail. For partial changes, use Edit instead.

  • file_path string requiredThe absolute path to the file to write (must be absolute, not relative).
  • content string requiredThe content to write to the file.
EditPerforms exact string replacement in a file

Performs exact string replacement in a file. - You must Read the file in this conversation before editing, or the call will fail. - `old_string` must match the file exactly, including indentation, and be unique — the edit fails otherwise. - `replace_all: true` replaces every occurrence instead.

  • file_path string requiredThe absolute path to the file to modify.
  • old_string string requiredThe text to replace.
  • new_string string requiredThe text to replace it with (must be different from old_string).
  • replace_all booleanReplace all occurrences of old_string (default false).
GlobFast file pattern matching

Fast file pattern matching. Supports glob patterns like "**/*.js" or "src/**/*.ts". Returns matching file paths sorted by modification time.

  • pattern string requiredThe glob pattern to match files against.
  • path stringThe directory to search in. If not specified, the current working directory will be used.
GrepContent search built on ripgrep

Content search built on ripgrep. Prefer this over `grep`/`rg` via Bash — results integrate with the permission UI and file links. - Full regex syntax (e.g. "log.*Error", "function\s+\w+"). Ripgrep, not grep — escape literal braces. - Filter with `glob` (e.g. "**/*.tsx") or `type` (e.g. "js", "py", "rust"). - `output_mode`: "content" (matching lines), "files_with_matches" (paths only, default), or "count". - `multiline: true` for patterns that span lines.

  • pattern string requiredThe regular expression pattern to search for in file contents.
  • path stringFile or directory to search in (rg PATH). Defaults to current working directory.
  • glob stringGlob pattern to filter files (e.g. "*.js") — maps to rg --glob.
  • type stringFile type to search (rg --type).
  • output_mode enum"content", "files_with_matches", or "count".
  • -i booleanCase insensitive search (rg -i).
  • -n booleanShow line numbers in output (rg -n).
  • -o booleanPrint only the matched (non-empty) parts of each matching line.
  • -A / -B / -C / context numberLines of context to show after, before, or around each match.
  • multiline booleanEnable multiline mode where . matches newlines and patterns can span lines.
  • head_limit numberLimit output to first N lines/entries, equivalent to "| head -N".
  • offset numberSkip first N lines/entries before applying head_limit.
NotebookEditReplaces, inserts, or deletes a single cell in a Jupyter notebook

Replaces, inserts, or deletes a single cell in a Jupyter notebook (.ipynb file). - You must use the Read tool on the notebook in this conversation before editing — this tool will fail otherwise. - `cell_id` is the `id` attribute shown in the Read tool's output. It is required for `replace` and `delete`. - `edit_mode` defaults to `replace`. Use `insert` to add a new cell after the cell with the given `cell_id`; use `delete` to remove the cell.

  • notebook_path string requiredThe absolute path to the Jupyter notebook file to edit.
  • new_source string requiredThe new source for the cell.
  • cell_id stringThe ID of the cell to edit.
  • cell_type enumThe type of the cell (code or markdown). Required when inserting.
  • edit_mode enumThe type of edit to make (replace, insert, delete). Defaults to replace.
BashExecutes a bash command and returns its output

Executes a bash command and returns its output. - Working directory persists between calls, but prefer absolute paths. Shell state (env vars, functions) does not persist; the shell is initialized from the user's profile. - IMPORTANT: Avoid using this tool to run `find`, `grep`, `cat`, `head`, `tail`, `sed`, `awk`, or `echo` commands, unless explicitly instructed or after you have verified that a dedicated tool cannot accomplish your task. - Command output is displayed to you, not reliably to the user. - `timeout` is in milliseconds: default 120000, max 600000. - `run_in_background` runs the command detached: it keeps running across turns and re-invokes you when it exits.

abridged — the full schema also carries git and GitHub workflow rules
  • command string requiredThe command to execute.
  • description stringClear, concise description of what this command does in active voice.
  • timeout numberOptional timeout in milliseconds (max 600000).
  • run_in_background booleanSet to true to run this command in the background.
  • dangerouslyDisableSandbox booleanSet this to true to dangerously override sandbox mode and run commands without sandboxing.

Web

Outbound reading. Fetch a page and question it, or search the open web.

WebFetchFetches a URL, converts the page to markdown, and answers a prompt against it

Fetches a URL, converts the page to markdown, and answers `prompt` against it using a small fast model. - Fails on authenticated/private URLs — use an authenticated MCP tool for those instead. - HTTP is upgraded to HTTPS. Cross-host redirects are returned rather than followed; call again with the redirect URL. - Responses are cached for 15 minutes per URL.

  • url string (uri) requiredThe URL to fetch content from.
  • prompt string requiredThe prompt to run on the fetched content.
WebSearchSearch the web; returns result blocks with titles and URLs

Search the web. Returns result blocks with titles and URLs. US-only. - `allowed_domains` / `blocked_domains` filter results. - After answering from results, end with a "Sources:" list of the URLs used as markdown links.

  • query string requiredThe search query to use.
  • allowed_domains string[]Only include search results from these domains.
  • blocked_domains string[]Never include search results from these domains.

Agents & orchestration

The delegation layer. Spawn subagents, run deterministic multi-agent workflows, message other sessions, monitor long-running work and schedule the future.

AgentLaunch a new agent to handle complex, multi-step tasks

Launch a new agent to handle complex, multi-step tasks. Each agent type has specific capabilities and tools available to it. When using the Agent tool, specify a subagent_type parameter to select which agent type to use. If omitted, the general-purpose agent is used. Reach for this when the task matches an available agent type, when you have independent work to run in parallel, or when answering would mean reading across several files — delegate it and you keep the conclusion, not the file dumps. - The agent's final report is not shown to the user — relay what matters. - Use SendMessage with the agent's ID or name to continue a previously spawned agent with its context intact; a new Agent call starts fresh. - `isolation: "worktree"` gives the agent its own git worktree (auto-cleaned if unchanged). - Subagents run in the background by default; you'll be notified when one completes.

abridged
  • description string requiredA short (3-5 word) description of the task.
  • prompt string requiredThe task for the agent to perform.
  • subagent_type stringThe type of specialized agent to use for this task.
  • model enumOptional model override for this agent: sonnet, opus, haiku or fable.
  • isolation enumIsolation mode. "worktree" creates a temporary git worktree; "remote" launches the agent in a remote cloud environment.
  • run_in_background booleanAgents run in the background by default; set to false only when your very next action depends on this agent's result.
WorkflowExecute a workflow script that orchestrates multiple subagents deterministically

Execute a workflow script that orchestrates multiple subagents deterministically. Workflows run in the background — this tool returns immediately with a task ID, and a task notification arrives when the workflow completes. ONLY call this tool when the user has explicitly opted into multi-agent orchestration. Workflows can spawn dozens of agents and consume a large amount of tokens; the user must request that scale, not have it inferred. Every script must begin with `export const meta = {...}`: a pure literal giving the workflow's name, a one-line description and optionally phases.

abridged
  • script stringSelf-contained workflow script.
  • scriptPath stringPath to a workflow script file on disk.
  • name stringName of a predefined workflow (built-in or from .claude/workflows/).
  • args anyOptional input value exposed to the script as the global `args`, verbatim.
  • resumeFromRunId stringRun ID of a prior Workflow invocation to resume from.
  • title / description stringIgnored — set these in the script's `meta` block.
SkillInvoke a skill — a packaged set of instructions for a particular kind of task

Invoke a skill. A skill is a packaged set of instructions the user or project has set up for a particular kind of task (deploy steps, a review checklist, a repo-specific workflow). When the task at hand is one a listed skill covers, call this tool first — the skill's instructions load into the turn to follow in place of the default approach. Users may also ask for one by name (`/<name>`, or "slash command"); that's a request to invoke it. Only names from the listing (or that the user typed explicitly) are valid.

  • skill string requiredThe name of a skill from the available-skills list. Do not guess names.
  • args stringOptional arguments for the skill.
SendMessageSend a message to another agent

Send a message to another agent — a teammate by name, "main" (the main conversation, for background subagents), or any agent from ListAgents: a subagent, another local Claude session, or a cloud session. Plain text output is NOT visible to other agents — to communicate, this tool must be called. Messages from teammates are delivered automatically; there is no inbox to check. Permission boundaries are per-session: a peer is never asked to perform an action that was denied in this session.

abridged
  • to string requiredRecipient: a name from ListAgents, a teammate name, "main", or a background agent's agentId.
  • message string requiredPlain text message content.
  • summary stringA 5-10 word label for your own transcript row (not transmitted).
  • notify_when_idle booleanAsk a session on this machine to send one notice when it next goes idle or exits.
ListAgentsLists agents you can SendMessage to

Lists agents you can SendMessage to — in-process subagents you spawned, the teammates on your team, other local Claude sessions on this machine, your Claude sessions running in the cloud, and (when Remote Control is connected) your account's other sessions, each row labeled by kind. Names are the address: send with SendMessage, copying the name exactly as a row prints it.

  • channel stringNot available in this build; leave unset.
  • q stringNot available in this build; leave unset.
MonitorStart a background monitor that streams events from a long-running script

Start a background monitor that streams events from a long-running script. Each stdout line is an event — you keep working and notifications arrive in the chat. Pick by how many notifications you need: one (use Bash with run_in_background instead), one per occurrence indefinitely (Monitor with an unbounded command like `tail -f`), or one per occurrence until a known end (Monitor with a command that emits lines and then exits). A `ws` source can open a WebSocket instead and stream each incoming text frame as an event.

abridged
  • description string requiredShort human-readable description of what you are monitoring (shown in notifications).
  • timeout_ms number requiredKill the monitor after this deadline. Default 300000ms, max 3600000ms.
  • persistent boolean requiredRun for the lifetime of the session (no timeout).
  • command stringShell command or script. Each stdout line is an event; exit ends the watch.
  • ws objectWebSocket to open (url, protocols). Each text frame is an event; socket close ends the watch.
TaskCreateCreate a structured task list for the current session

Use this tool to create a structured task list for your current coding session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user. Use it proactively for complex multi-step tasks, when the user provides multiple tasks, or immediately after receiving new instructions. All tasks are created with status `pending`.

  • subject string requiredA brief title for the task.
  • description string requiredWhat needs to be done.
  • activeForm stringPresent continuous form shown in spinner when in_progress (e.g., "Running tests").
  • metadata objectArbitrary metadata to attach to the task.
TaskGetRetrieve a task by its ID from the task list

Use this tool to retrieve a task by its ID from the task list. Returns full task details: subject, description, status ('pending', 'in_progress', or 'completed'), what it blocks and what blocks it.

  • taskId string requiredThe ID of the task to retrieve.
TaskListList all tasks in the task list

Use this tool to list all tasks in the task list. Returns a summary of each task: id, subject, status, owner, and blockedBy. Use TaskGet with a specific task ID to view full details including description and comments.

No arguments.

TaskUpdateUpdate a task — status, details, owner, dependencies

Use this tool to update a task in the task list: mark tasks as resolved, delete tasks, or update task details and dependencies. Status progresses pending → in_progress → completed; `deleted` permanently removes the task. Only mark a task as completed when it is fully accomplished.

  • taskId string requiredThe ID of the task to update.
  • status enumNew status for the task (pending, in_progress, completed, deleted).
  • subject / description / activeForm / owner stringNew title, description, spinner form, or owner for the task.
  • metadata objectMetadata keys to merge into the task.
  • addBlocks / addBlockedBy string[]Task IDs this task blocks, or that block this task.
TaskOutputRetrieve output from a running or completed background task

DEPRECATED: Background tasks return their output file path in the tool result, and a task notification with the same path arrives when the task completes. Retrieves output from a running or completed task (background shell, agent, or remote session). Use block=true (default) to wait for task completion; block=false for a non-blocking check.

  • task_id string requiredThe task ID to get output from.
  • block boolean requiredWhether to wait for completion.
  • timeout number requiredMax wait time in ms.
TaskStopStop a running background task by its ID

Stops a running background task by its ID. To stop an agent-team teammate, pass its agent ID ("name@team") or bare teammate name as task_id. Returns a success or failure status. Use this tool when you need to terminate a long-running task.

  • task_id stringThe ID of the background task to stop.
  • shell_id stringDeprecated: use task_id instead.
CronCreateSchedule a prompt to be enqueued at a future time

Schedule a prompt to be enqueued at a future time. Use for both recurring schedules and one-shot reminders. Uses standard 5-field cron in the user's local timezone. One-shot tasks (recurring: false) fire once then auto-delete. Jobs live only in this Claude session — nothing is written to disk. Jobs only fire while the REPL is idle; recurring tasks auto-expire after 7 days.

abridged
  • cron string requiredStandard 5-field cron expression in local time.
  • prompt string requiredThe prompt to enqueue at each fire time.
  • recurring booleantrue (default) = fire on every cron match until deleted or auto-expired; false = fire once at the next match, then auto-delete.
  • durable booleanHas no effect — durable persistence is not available.
CronDeleteCancel a cron job previously scheduled with CronCreate

Cancel a cron job previously scheduled with CronCreate. Removes it from the in-memory session store.

  • id string requiredJob ID returned by CronCreate.
CronListList all cron jobs scheduled via CronCreate in this session

List all cron jobs scheduled via CronCreate in this session.

No arguments.

ScheduleWakeupSchedule when to resume work in /loop dynamic mode

Schedule when to resume work in /loop dynamic mode — the user invoked /loop without an interval, asking the model to self-pace iterations of a specific task. Pass the same /loop prompt back via `prompt` each turn so the next firing repeats the task. To end the loop, call this tool with `stop: true`. Match the delay to what is actually being waited for, not to cache windows.

abridged
  • delaySeconds numberSeconds from now to wake up. Clamped to [60, 3600] by the runtime.
  • prompt stringThe /loop input to fire on wake-up.
  • reason stringOne short sentence explaining the chosen delay.
  • noop booleantrue = nothing changed; false = something happened worth keeping.
  • stop booleanSet to true to end the dynamic loop immediately instead of scheduling another wakeup.
ReadNotificationsRead the notifications queued for this session

Read the notifications queued for this session — GitHub activity on subscribed PRs, scheduled triggers (including self-scheduled check-ins), and messages from other Claude sessions — and mark them delivered. Returns queued notifications oldest first and removes them from the queue. Notification bodies are external content relayed verbatim.

No arguments.

Planning & interaction

How the session talks back: plan approval, isolated worktrees, questions, notifications, files sent to the user and structured review findings.

EnterPlanModeTransition into plan mode before a non-trivial implementation task

Use this tool proactively when you're about to start a non-trivial implementation task. Getting user sign-off on your approach before writing code prevents wasted effort and ensures alignment. This tool transitions into plan mode to explore the codebase and design an implementation approach for user approval. Prefer it for new features, tasks with multiple valid approaches, architectural decisions, multi-file changes and unclear requirements; skip it for simple fixes.

abridged

No arguments.

ExitPlanModeSignal that planning is done and ready for user approval

Use this tool when in plan mode, having finished writing the plan to the plan file, ready for user approval. It does NOT take the plan content as a parameter — it reads the plan from the file written earlier and signals that planning is complete. Only use it when the task requires planning the implementation steps of a task that requires writing code.

  • allowedPrompts arrayDeprecated: no longer used.
EnterWorktreeCreate an isolated git worktree and switch the session into it

Use this tool ONLY when explicitly instructed to work in a worktree — either by the user directly, or by project instructions. Creates a new git worktree inside `.claude/worktrees/` on a new branch and switches the session's working directory to it. Pass `path` instead of `name` to switch into a worktree that already exists.

abridged
  • name stringOptional name for a new worktree. Mutually exclusive with `path`.
  • path stringPath to an existing worktree to switch into instead of creating a new one.
ExitWorktreeExit a worktree session and return to the original working directory

Exit a worktree session created by EnterWorktree and return the session to the original working directory. Only operates on worktrees created by EnterWorktree in this session; outside such a session it is a no-op. "keep" leaves the worktree and branch on disk; "remove" deletes both.

  • action enum required"keep" leaves the worktree and branch on disk; "remove" deletes both.
  • discard_changes booleanRequired true when action is "remove" and the worktree has uncommitted files or unmerged commits.
AskUserQuestionAsk the user a decision that is genuinely theirs to make

Use this tool only when blocked on a decision that is genuinely the user's to make: one that cannot be resolved from the request, the code, or sensible defaults. Users will always be able to select "Other" to provide custom text input. Reserve this for decisions where the user's answer changes what happens next — not for choices with a conventional default.

  • questions array (1-4) requiredQuestions to ask the user. Each has question text, a short header chip, 2-4 options (label, description, optional preview) and a multiSelect flag.
  • answers objectUser answers collected by the permission component.
  • annotations objectOptional per-question annotations from the user.
  • metadata objectOptional metadata for tracking and analytics purposes. Not displayed to user.
PushNotificationSend a desktop notification in the user's terminal

This tool sends a desktop notification in the user's terminal. If Remote Control is connected, it also pushes to their phone. Either way, it pulls their attention from whatever they're doing — that's the cost. The benefit is they learn something now that they'd want to know now: a long task finished while they were away, a build is ready, or something needs their decision. Keep the message under 200 characters, one line, no markdown.

  • message string requiredThe notification body. Keep it under 200 characters; mobile OSes truncate.
  • status const "proactive" requiredAlways "proactive".
SendUserFileSend files to the user as conversation file cards

Send files to the user. Use this for any file the user would want to see — a generated diagram, a report, a screenshot, a built artifact — surfaced, not just mentioned. Send deliverables as they are produced, not batched at the end of the task. Do NOT send routine working files; each call renders a file card in the conversation.

  • files string[] requiredFile paths (absolute or relative to cwd) to send to the user.
  • status enum required'proactive' when surfacing a file the user hasn't asked for; 'normal' when replying to something the user just said.
  • caption stringOptional short caption for the file(s).
  • display enum'render' opens it inline in the side panel; 'attach' shows a download card only.
ReportFindingsReport code-review findings as a typed list

Report code-review findings as a typed list so the host UI can render them. Use this only when the active code-review instructions say to report findings with this tool. When reporting a review's results, call it once with the verified findings ranked most-severe first (empty array if nothing survived verification).

  • findings array requiredVerified findings, most-severe first; each carries file, summary, failure_scenario, and optional line, category, verdict and outcome.
  • level enumEffort level the review ran at (low … max).
ShowOnboardingRolePickerRender a clickable role-picker chip row during Cowork onboarding

Render a clickable role-picker chip row during Cowork onboarding. Call this when asking the user what kind of work they do so they can pick their role and get a matching plugin installed. Do NOT call this in normal conversation.

No arguments.

Publishing

Shipping work product out of the terminal: hosted artifact pages and design-system sync into claude.ai/design.

ArtifactRender an HTML file to a hosted, default-private web page

Render an HTML file to an Artifact — a default-private web page hosted on claude.ai that the user can later choose to share with their teammates. Use this when communicating visually would be clearer than terminal text. To update: edit the file, then call Artifact again with the same file path — it redeploys to the same URL. Actions cover publishing, listing, reading, watching for republishes, comments (read, reply, resolve), and an asset store for images, video, PDFs, fonts and text files. Viewer pages can also be granted runtime capabilities: reading the user's live data, remembering what people do on the page, shared state, file storage and more.

abridged — the full schema runs to several pages
  • action enumOmit (or 'publish') to publish file_path; other actions: list, read, comments, reply, resolve, watch, unwatch, status, resume_replies, upload_asset, list_assets, read_asset, delete_asset.
  • file_path stringPath to the .html file to render.
  • url stringExisting artifact URL to update in place.
  • title stringTitle for the artifact — the name shown in the browser tab and gallery.
  • description stringOne-sentence subtitle shown on the gallery card.
  • favicon stringBrowser-tab icon: one or two emoji.
  • capabilities objectRuntime capabilities this page declares, as {name: config}.
  • label / note stringShort version name and what-changed note for the version picker.
  • thread_id / text / cursor / acknowledge_duplicateComment-thread actions: which thread, the reply text, listing continuation, and the deliberate-duplicate flag.
  • asset_id / out_dir / afterAsset-store actions: the asset's id, a directory to save into, and listing continuation.
  • limit / scope / prompt / force / contractListing size and ownership scope, extraction prompt for shared reads, last-resort overwrite, and the runtime version pin.
DesignSyncRead and update claude.ai/design design-system projects

Read and update the user's claude.ai/design design-system projects through their claude.ai login. Use this together with the /design-sync skill to keep a local component library in sync with a Claude Design project — incrementally, one component at a time, never as a wholesale replace. The tool dispatches on `method`: read methods (list_projects, get_project, list_files, get_file), project setup (create_project), the plan boundary (finalize_plan) and write methods (write_files, delete_files, register_assets, unregister_assets). Required ordering: list/read → finalize_plan → write/delete.

abridged
  • method enum requiredOne of list_projects, get_project, list_files, get_file, finalize_plan, write_files, delete_files, register_assets, unregister_assets, create_project, report_validate.
  • projectId stringRequired for all methods except list_projects and create_project.
  • planId stringwrite/delete/register/unregister: token from a prior finalize_plan call.
  • writes / deletes string[]finalize_plan: exact paths or glob patterns that will be written or deleted.
  • localDir stringfinalize_plan: directory the bundle was built into.
  • files arraywrite_files: file contents to write (max 256 per call).
  • paths string[]delete_files: paths to delete; unregister_assets: paths whose card should be removed.
  • assets arrayregister_assets: cards to register in the Design System pane.
  • name / path stringcreate_project: name for the new project; get_file: file path to read.
  • counts objectreport_validate: aggregate from the final .render-check.json — counts only.

Discovery & configuration

Finding capability: deferred tool schemas, the user's skills, plugins and connectors, and raw MCP resources.

ToolSearchFetch full schema definitions for deferred tools so they can be called

Fetches full schema definitions for deferred tools so they can be called. Deferred tools appear by name in system reminders; until fetched, only the name is known. This tool takes a query, matches it against the deferred tool list, and returns the matched tools' complete JSONSchema definitions. Query forms: "select:Read,Edit,Grep" (exact names), "notebook jupyter" (keyword search), "+slack send" (require a term, rank by the rest).

  • query string requiredQuery to find deferred tools.
  • max_results number requiredMaximum number of results to return (default: 5).
ListSkillsList the user's enabled claude.ai skills

List the user's enabled claude.ai skills. Call this when the user asks what skills they have. Pass keywords to filter to a topic; omit to list all.

  • keywords string[]Optional filter; omit to list everything.
SearchSkillsSearch the user's claude.ai skills by keyword

Search the user's claude.ai skills by keyword. Call this when a skill (a reference document or instruction set the user has uploaded or enabled) might help complete the task. Returns a ranked list with id, name, description, and whether the skill is enabled.

  • keywords string[] requiredKeyword phrases describing the user's intent.
SuggestSkillsRender a card of standalone skills the user can add

Render a card of standalone skills the user can add — org, shared, or Anthropic skills not yet enabled. Call this when the task is one a skill could make repeatable and nothing enabled covers it, when the user asks for recommendations, or when ListSkills returned zero matches.

  • keywords string[] requiredTopic keywords from the user's request.
  • trigger enumHow this suggestion started: 'user_asked' or 'proactive'.
  • contextLabel stringShort header tying the suggestion to the user request.
ListPluginsList the user's enabled claude.ai plugins

List the user's enabled claude.ai plugins. Call this when the user asks what plugins they have, or to confirm what was installed after a SuggestPluginInstall card. Pass keywords to filter to a topic; omit to list all.

  • keywords string[]Optional filter; omit to list everything.
SearchPluginsSearch the user's claude.ai plugin catalog by keyword

Search the user's claude.ai plugin catalog by keyword. Call this when a plugin (slash command, skill bundle, hook, or agent) from the user's org catalog might help complete the task. Returns a ranked list with id, name, description, and whether the plugin is already enabled.

  • keywords string[] requiredKeyword phrases describing the user's intent.
SuggestPluginInstallRender an inline plugin install card

Render an inline plugin install card. Call this after SearchPlugins returns relevant results — source pluginId, pluginName, description, and skills from those results. The card handles all UI; do not describe the plugins in text.

  • contextLabel string requiredShort header tying the suggestion to the user request.
  • plugins array (1-16) requiredPlugins sourced from SearchPlugins results.
ListConnectorsList the MCP connectors installed for the user's claude.ai org

List the MCP connectors installed for the user's claude.ai org. Call this when the user asks what connectors they have. Returns name, description, whether each connector is connected at org level, and enabledInChat (whether its tools are loaded in this session).

  • keywords string[]Optional filter; omit to list everything.
SearchMcpRegistrySearch the MCP connector registry by keyword

Search the MCP connector registry by keyword. Call this when connecting to an MCP server might help complete the task — whether or not the user named a specific product. Returns a ranked list with directoryUuid, name, description, sample tool names, installState (org-level), and enabledInChat (this session).

  • keywords string[] (1-8) requiredKeyword phrases describing the user's intent or a named product.
SuggestConnectorsResolve full connector payloads for directoryUuid values

Resolve full connector payloads for a set of directoryUuid values returned by SearchMcpRegistry. Do NOT call this without directoryUuid values from a SearchMcpRegistry result. Returns name, description, url, iconUrl, sample tool names, and whether the connector is already installed for the user's claude.ai org.

  • uuids string[] (1-32) requireddirectoryUuid or server_id values to resolve.
ListMcpResourcesToolList available resources from configured MCP servers

List available resources from configured MCP servers. Each returned resource will include all standard MCP resource fields plus a 'server' field indicating which server the resource belongs to.

  • server stringOptional server name to filter resources by.
ReadMcpResourceToolRead a specific resource from an MCP server

Reads a specific resource from an MCP server, identified by server name and resource URI.

  • server string requiredThe MCP server name.
  • uri string requiredThe resource URI to read.
ReadMcpResourceDirToolList the direct children of a directory resource on an MCP server

List the direct children of a directory resource on an MCP server (`resources/directory/read`). The listing is not recursive. Each entry carries its own `uri`; subdirectories appear with mimeType "inode/directory" — call this tool again on a subdirectory's `uri` to descend. Only usable against a server that has declared support for directory listing.

  • server string requiredThe MCP server name.
  • uri string requiredThe directory resource URI to list.

Claude Code Remote

The session-fleet controls: spawn and steer cloud sessions, attach repositories, schedule Routines, and watch pull requests. Tool names carry the mcp__Claude_Code_Remote__ prefix, dropped here for legibility.

add_repoAdd a GitHub repository to the current session

Add a GitHub repository to the current session so it can be read, cloned, or operated on alongside the repos already in the session. Call this whenever a repository the session does not have is needed — including when someone only asks a question about one. Do not pre-check the repo with curl or git ls-remote; the backend performs the real reachability and authorization check and returns a structured error to act on.

abridged
  • owner string requiredGitHub owner (user or organization) of the repo to add.
  • repo string requiredGitHub repo name.
  • access enumWhat access this session needs: "read" (default) or "push".
register_repo_rootTell the session that a repo attached via add_repo has finished cloning

Tell the session that a repo attached via add_repo has finished cloning, so its CLAUDE.md, skills, and plugins load on the next turn. Only call this immediately after a successful clone that add_repo instructed you to run.

  • owner string requiredGitHub owner of the repo that was just cloned.
  • repo string requiredGitHub repo name that was just cloned.
  • directory string requiredAbsolute path of the clone on disk.
list_reposList repositories the current user has access to

List repositories the current user has access to. Returns repo full_name (owner/repo), URL, and metadata such as visibility and last-push time. Use this to pick a repo for create_session sources, or to discover what's available before asking the user.

  • query stringOptional case-insensitive substring matched against full_name (owner/repo).
  • limit integerMaximum number of repos to return (default 50, max 200).
list_environmentsList Claude Code Remote environments for the current user

List Claude Code Remote environments for the current user. Returns environment IDs, names, kinds, and states. Use this to pick an environment_id for create_session.

  • limit integerMaximum number of environments to return (default 20, max 100).
create_sessionCreate a new Claude Code Remote session

Create a new Claude Code Remote session. Returns the new session's ID and status. If environment_id is omitted, the new session inherits the calling session's environment. Combine with send_message for fan-out orchestration: spawn a sibling, send it a task, poll list_events for the result.

  • environment_id stringEnvironment ID — a tagged ID starting with 'env_'.
  • prompt stringOptional initial message to send to the new session.
  • title stringOptional session title.
  • model stringModel ID for the new session. Defaults to the calling session's model.
  • source_url / source_revision stringOptional git repository URL and branch, tag, or commit to check out.
  • outcome_branch stringOptional branch name to push changes to.
  • permission_mode enumInitial permission mode for the new session. Cannot be more permissive than the calling session's mode.
  • extra_allowed_tools string[]Extra tool names pre-approved without a user permission prompt.
  • append_system_prompt stringText appended to the new session's system prompt.
  • tags string[]Free-form tags to categorize the session.
list_sessionsList Claude Code Remote sessions visible to the authenticated account

List Claude Code Remote sessions visible to the authenticated account. In bot contexts this is a shared pool spanning many people — pass mine: true to narrow to sessions started by the same account. Returns session IDs, titles, statuses, and timestamps.

  • limit integerMaximum number of sessions to return (default 20, max 100).
  • mine booleanFilter to sessions started by the same account as the calling session.
  • tags string[]Filter to interactive sessions carrying ANY of these tags.
  • before_id / after_id stringPagination cursors for newer or older sessions.
get_sessionGet details for a specific session by ID

Get details for a specific Claude Code Remote session by ID. Returns the session's title, status, creation time, and context, including three model fields that together reveal a model switch or fallback in a child session. Omit session_id to describe this session.

  • session_id stringThe session ID to look up (starts with 'session_'). Omit to look up the calling session itself.
set_session_titleRename an existing session

Rename an existing Claude Code Remote session. For tags use set_session_tags; lifecycle is not settable here — use archive_session to archive.

  • session_id string requiredThe target session ID.
  • title string requiredNew session title. Max 500 chars.
set_session_tagsAdd and/or remove tags on existing sessions

Add and/or remove tags on existing sessions. Use for retroactively grouping related sessions under a label, or renaming a label (remove the old tag, add the new one) across multiple sessions at once.

  • session_ids string[] requiredSession IDs to retag.
  • add string[]Tags to add. Duplicates are idempotent.
  • remove string[]Tags to remove. Missing tags are a no-op.
interrupt_sessionInterrupt a running session

Interrupt a running Claude Code Remote session. Sends an interrupt control event — the target session's agent stops its current turn at the next checkpoint. Use this to pause a sibling session that's gone off-track before steering it with send_message.

  • session_id string requiredThe target session ID to interrupt.
archive_sessionArchive a session, releasing its container

Archive a Claude Code Remote session. Transitions the session to read-only archived state and releases its container. Use this when a child session has finished its work or is stuck and a human has already acknowledged they're done with the session.

  • session_id string requiredThe target session ID to archive.
unarchive_sessionUnarchive a previously archived session

Unarchive a previously archived Claude Code Remote session. Transitions it back to active so it can accept events again; a fresh container will be provisioned on the next send_message.

  • session_id string requiredThe target session ID to unarchive.
create_triggerCreate a Routine — a scheduled trigger

Create a Routine (scheduled trigger). Three targeting modes: (1) default — fires into THIS SESSION, resuming the same conversation each time; (2) persistent_session_id set — fires into a specific other session in your account; (3) create_new_session_on_fire=true — spawns a fresh session in this environment on each firing.

  • name string requiredHuman-readable Routine name.
  • prompt string requiredThe message the Routine sends on each firing.
  • initiation enum requiredWho wanted this: human_request, human_schedule, own_followup, or own_initiative.
  • cron_expression stringStandard 5-field cron expression, evaluated in UTC.
  • run_once_at stringRFC3339 timestamp for a one-shot fire.
  • persistent_session_id stringOptional session ID to fire into instead of this one.
  • create_new_session_on_fire booleanIf true, each firing creates a fresh session in the calling session's environment.
  • environment_id stringEnvironment ID; defaults to the calling session's environment.
  • connectors string[]Optional list of connector names the Routine's fired sessions may use.
  • notifications objectCompletion notifications for this Routine (push and/or email).
update_triggerUpdate a Routine's name, schedule, state, model, or prompt

Update a Routine's (scheduled trigger's) name, cron expression, enabled state, model, or prompt. Only provided fields are changed. A Routine that runs on a computer is special: a new prompt takes effect only when the person approves the call on that same computer.

  • trigger_id string requiredThe Routine's trigger ID to update (starts with 'trig_').
  • name stringNew human-readable name.
  • cron_expression stringNew 5-field cron expression, evaluated in UTC.
  • run_once_at stringNew RFC3339 one-shot fire time.
  • enabled booleanEnable or disable the Routine.
  • prompt stringReplace the message each firing sends, keeping the Routine's identity and run history.
  • model stringChange the model used for this Routine's future fires. Only when a human explicitly asks.
delete_triggerDelete a Routine

Delete a Routine (scheduled trigger). The Routine must belong to the calling session's account. Use this to undo a create_trigger call or to clean up Routines whose work is done. A bad cron or wrong prompt does not need deletion — update_trigger fixes those in place, keeping the Routine's run history.

  • trigger_id string requiredThe Routine's trigger ID to delete (starts with 'trig_').
fire_triggerFire a Routine immediately, outside of its schedule

Fire a Routine (scheduled trigger) immediately, outside of its schedule. Optionally include a text message that is appended as an extra user turn after the Routine's configured prompt, to pass run-specific context (an error message, a PR link, a diff) into that one firing.

  • trigger_id string requiredThe Routine's trigger ID (starts with 'trig_').
  • text stringOptional text appended as an extra user message after the Routine's configured prompt. Bounded to 64 KiB.
list_triggersList Routines owned by this account

List Routines (scheduled triggers) owned by this account. Use this to discover trigger IDs for update_trigger and delete_trigger. Each entry includes the Routine's id, name, schedule, enabled state, next_run_at, and last_run — the outcome of the most recent recorded run.

  • limit integerMaximum Routines to return (default 20, max 100).
  • cursor stringOpaque pagination cursor from a previous response.
  • enabled booleanWhen set, only Routines whose enabled state matches.
  • recurring booleanWhen set, filters by schedule shape: cron-driven vs one-shot and fire-only.
  • include_completed booleanIf true, also include one-shot Routines that have already fired.
send_laterSchedule a message to be delivered back into this session

Schedule a message to be delivered back into THIS SESSION at a future time. The message arrives as an ordinary user turn — a reminder to resume work, check on something, or continue after a delay. Delivery survives container restarts. Granularity is one minute. A thin wrapper over create_trigger; the returned trigger_id can be passed to delete_trigger to cancel before it fires.

  • message string requiredThe text to deliver as a user turn.
  • at stringRFC3339 timestamp for the fire time. Mutually exclusive with delay_minutes.
  • delay_minutes integerFire this many minutes from now. Minimum 1. Mutually exclusive with at.
  • name stringShort human-readable label for this reminder as it appears in the user's Routines list.
  • initiation enumWho wanted this message scheduled. Defaults to own_followup.
subscribe_pr_activitySubscribe this session to GitHub activity on a pull request

Subscribe this session to GitHub activity on a pull request. Once subscribed, comments, CI failures, and successful check-suite rollups will be delivered into this conversation as wake events. This tool call is idempotent. Use this when asked to autofix, monitor, watch, or babysit a PR.

  • owner string requiredThe repository owner (user or organization name).
  • repo string requiredThe repository name.
  • pullNumber integer requiredThe pull request number.
unsubscribe_pr_activityUnsubscribe this session from GitHub activity on a pull request

Unsubscribe this session from GitHub activity on a pull request. Webhook events for this PR will no longer be delivered into the conversation. Use this when the PR has merged, been closed, or the user asks to stop monitoring.

  • owner string requiredThe repository owner (user or organization name).
  • repo string requiredThe repository name.
  • pullNumber integer requiredThe pull request number.

GitHub

The full GitHub MCP server — repositories, files, branches, issues, pull requests, reviews, Actions, releases and search. Names carry the mcp__github__ prefix, dropped here. Nearly every tool takes owner and repo; those two are listed once per tool without repeating their identical descriptions.

get_meGet details of the authenticated GitHub user

Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls.

No arguments.

get_file_contentsGet the contents of a file or directory from a repository

Get the contents of a file or directory from a GitHub repository.

  • owner / repo string required
  • path stringPath to file/directory (default "/").
  • ref stringAccepts optional git refs such as `refs/tags/{tag}`, `refs/heads/{branch}` or `refs/pull/{pr_number}/head`.
  • sha stringAccepts optional commit SHA. If specified, it will be used instead of ref.
  • fields string[]Subset of fields to return for each entry when the path is a directory.
create_or_update_fileCreate or update a single file in a repository

Create or update a single file in a GitHub repository. If updating, you should provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations.

  • owner / repo string required
  • path string requiredPath where to create/update the file.
  • content string requiredContent of the file, exactly as it should appear once written.
  • message string requiredCommit message.
  • branch string requiredBranch to create/update the file in.
  • sha stringThe blob SHA of the file being replaced. Required if the file already exists.
  • allow_symlink_write booleanSet true to update a symbolic link itself.
delete_fileDelete a file from a repository

Delete a file from a GitHub repository.

  • owner / repo string required
  • path string requiredPath to the file to delete.
  • message string requiredCommit message.
  • branch string requiredBranch to delete the file from.
push_filesPush multiple files to a repository in a single commit

Push multiple files to a GitHub repository in a single commit.

  • owner / repo string required
  • branch string requiredBranch to push to.
  • files array requiredArray of file objects to push, each object with path (string) and content (string).
  • message string requiredCommit message.
create_branchCreate a new branch in a repository

Create a new branch in a GitHub repository.

  • owner / repo string required
  • branch string requiredName for new branch.
  • from_branch stringSource branch (defaults to repo default).
list_branchesList branches in a repository

List branches in a GitHub repository.

  • owner / repo string required
  • page / perPage numberPagination (perPage min 1, max 100).
list_commitsGet list of commits of a branch in a repository

Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).

  • owner / repo string required
  • sha stringCommit SHA, branch or tag name to list commits of.
  • author stringAuthor username or email address to filter commits by.
  • path stringOnly commits containing this file path will be returned.
  • since / until stringOnly commits after/before this date (ISO 8601).
  • fields string[]Subset of fields to return for each commit.
  • page / perPage numberPagination.
get_commitGet details for a commit from a repository

Get details for a commit from a GitHub repository.

  • owner / repo string required
  • sha string requiredCommit SHA, branch name, or tag name.
  • detail enumLevel of detail for changed files: "none", "stats" (default), or "full_patch".
  • page / perPage numberPagination.
create_repositoryCreate a new repository in your account or an organization

Create a new GitHub repository in your account or specified organization.

  • name string requiredRepository name.
  • description stringRepository description.
  • organization stringOrganization to create the repository in (omit to create in your personal account).
  • private booleanWhether the repository should be private. Defaults to true.
  • autoInit booleanInitialize with README.
list_repository_collaboratorsList collaborators of a repository

List collaborators of a GitHub repository. Results are paginated; the response includes nextPage, prevPage, firstPage, and lastPage fields.

  • owner / repo string required
  • affiliation enumFilter by affiliation: 'outside', 'direct', or 'all' (default).
  • page / perPage numberPagination.
get_teamsGet details of the teams the user is a member of

Get details of the teams the user is a member of. Limited to organizations accessible with current credentials.

  • user stringUsername to get teams for. If not provided, uses the authenticated user.
get_team_membersGet member usernames of a specific team in an organization

Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials.

  • org string requiredOrganization login (owner) that contains the team.
  • team_slug string requiredTeam slug.
issue_readGet information about a specific issue

Get information about a specific issue in a GitHub repository. Methods: get (issue details plus hierarchy flags), get_comments, get_sub_issues, get_parent, get_labels.

  • method enum requiredThe read operation to perform on a single issue.
  • owner / repo string required
  • issue_number number requiredThe number of the issue.
  • page / perPage numberPagination.
issue_writeCreate a new or update an existing issue

Create a new or update an existing issue in a GitHub repository.

  • method enum required'create' creates a new issue; 'update' updates an existing issue.
  • owner / repo string required
  • title / body stringIssue title and body content.
  • issue_number numberIssue number to update.
  • state / state_reason enumNew state (open, closed) and reason (completed, not_planned, duplicate).
  • labels / assignees string[]Labels to apply and usernames to assign.
  • milestone numberMilestone number.
  • type string|nullType of this issue, if issue types are enabled.
  • issue_fields arrayIssue field values to set or clear.
  • duplicate_of numberIssue number that this issue is a duplicate of.
  • parent_issue_number / parent_owner / parent_repoCreate the issue attached to this parent in the same operation.
list_issuesList issues in a repository

List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.

  • owner / repo string required
  • state enumFilter by state (OPEN, CLOSED).
  • labels string[]Filter by labels.
  • since stringFilter by date (ISO 8601 timestamp).
  • orderBy / direction enumOrder issues by field and direction.
  • field_filters arrayFilter by custom issue field values.
  • fields string[]Subset of fields to return for each issue.
  • after / perPageCursor pagination.
list_issue_fieldsList issue fields for a repository or organization

List issue fields for a repository or organization. Returns field definitions including name, type (text, number, date, single_select), and for single_select fields the list of valid option names.

  • owner string requiredThe account owner of the repository or organization.
  • repo stringWhen provided, returns fields for this specific repository; when omitted, org-level fields.
list_issue_typesList supported issue types for a repository or organization

List supported issue types for a repository or its owner organization. When repo is omitted, returns org-level issue types directly.

  • owner string requiredThe account owner of the repository or organization.
  • repo stringThe name of the repository.
sub_issue_writeAdd, remove, or reprioritise a sub-issue on a parent issue

Add a sub-issue to a parent issue in a GitHub repository. Methods: 'add', 'remove', 'reprioritize'. To move a sub-issue to a new parent, use `add` with `replace_parent=true`.

  • method string requiredThe action to perform on a single sub-issue.
  • owner / repo string required
  • issue_number number requiredThe number of the parent issue.
  • sub_issue_id number requiredThe ID of the sub-issue to add. ID is not the same as issue number.
  • after_id / before_id numberPosition for reprioritisation.
  • replace_parent booleanWhen true, replaces the sub-issue's current parent issue.
add_issue_commentAdd a comment and/or reaction to an issue or issue comment

Add a comment and/or reaction to a specific issue or issue comment in a GitHub repository. Use this tool with pull requests as well (pass the pull request number as issue_number). At least one of body or reaction is required.

  • owner / repo string required
  • issue_number number requiredIssue or pull request number to comment on or react to.
  • body stringComment content. Required unless reaction is provided.
  • reaction enumEmoji reaction to add. Required unless body is provided.
  • comment_id integerThe numeric ID of the issue or pull request comment to react to.
get_labelGet a specific label from a repository

Get a specific label from a repository.

  • owner / repo string required
  • name string requiredLabel name.
create_pull_requestCreate a new pull request in a repository

Create a new pull request in a GitHub repository.

  • owner / repo string required
  • title string requiredPR title.
  • head string requiredBranch containing changes.
  • base string requiredBranch to merge into.
  • body stringPR description.
  • draft booleanCreate as draft PR.
  • maintainer_can_modify booleanAllow maintainer edits.
  • reviewers string[]GitHub usernames or ORG/team-slug team reviewers to request reviews from.
list_pull_requestsList pull requests in a repository

List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead.

  • owner / repo string required
  • state enumFilter by state (open, closed, all).
  • head / base stringFilter by head user/org and branch, or base branch.
  • sort / direction enumSort by created, updated, popularity, or long-running; asc or desc.
  • fields string[]Subset of fields to return for each pull request.
  • page / perPage numberPagination.
pull_request_readGet information on a specific pull request

Get information on a specific pull request in a GitHub repository. Methods: get, get_diff, get_status, get_files, get_commits, get_review_comments (review threads with isResolved/isOutdated metadata), get_reviews, get_comments, get_check_runs.

  • method enum requiredAction to specify what pull request data needs to be retrieved from GitHub.
  • owner / repo string required
  • pullNumber number requiredPull request number.
  • page / perPage / afterPagination; `after` is the cursor for get_review_comments.
update_pull_requestUpdate an existing pull request

Update an existing pull request in a GitHub repository.

  • owner / repo string required
  • pullNumber number requiredPull request number to update.
  • title / body stringNew title and description.
  • state enumNew state (open, closed).
  • base stringNew base branch name.
  • draft booleanMark pull request as draft (true) or ready for review (false).
  • maintainer_can_modify booleanAllow maintainer edits.
  • reviewers string[]Reviewers to request reviews from.
update_pull_request_branchUpdate a PR branch with the latest changes from the base branch

Update the branch of a pull request with the latest changes from the base branch.

  • owner / repo string required
  • pullNumber number requiredPull request number.
  • expectedHeadSha stringThe expected SHA of the pull request's HEAD ref.
merge_pull_requestMerge a pull request

Merge a pull request in a GitHub repository.

  • owner / repo string required
  • pullNumber number requiredPull request number.
  • merge_method enumMerge method (merge, squash, rebase).
  • commit_title / commit_message stringTitle and extra detail for the merge commit.
enable_pr_auto_mergeEnable auto-merge for a pull request

Enable auto-merge for a pull request. The PR will merge automatically once all required checks pass and approvals are met. Fails gracefully if auto-merge is not enabled for the repository or if the PR is already mergeable.

  • owner / repo string required
  • pullNumber integer requiredThe pull request number.
  • mergeMethod enumThe merge method to use when auto-merge fires (MERGE, SQUASH, REBASE).
disable_pr_auto_mergeDisable auto-merge for a pull request

Disable auto-merge for a pull request that currently has it enabled.

  • owner / repo string required
  • pullNumber integer requiredThe pull request number.
pull_request_review_writeCreate, submit, or delete a review of a pull request

Create and/or submit, delete review of a pull request. Methods: create (a pending review, or submitted when "event" is provided), submit_pending, delete_pending, resolve_thread, unresolve_thread.

  • method enum requiredThe write operation to perform on pull request review.
  • owner / repo string required
  • pullNumber number requiredPull request number.
  • body stringReview comment text.
  • event enumReview action to perform (APPROVE, REQUEST_CHANGES, COMMENT).
  • commitID stringSHA of commit to review.
  • threadId stringThe node ID of the review thread; required for resolve_thread and unresolve_thread.
add_comment_to_pending_reviewAdd a review comment to the latest pending PR review

Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this.

  • owner / repo string required
  • pullNumber number requiredPull request number.
  • path string requiredThe relative path to the file that necessitates a comment.
  • body string requiredThe text of the review comment.
  • subjectType enum requiredThe level at which the comment is targeted (FILE, LINE).
  • line / startLine numberThe line, or line range, the comment applies to.
  • side / startSide enumThe side of the diff to comment on (LEFT, RIGHT).
add_reply_to_pull_request_commentAdd a reply and/or reaction to an existing PR comment

Add a reply and/or reaction to an existing pull request comment. This can create a new comment linked as a reply, add an emoji reaction, or do both. At least one of body or reaction is required.

  • owner / repo string required
  • commentId number requiredThe numeric ID of the pull request review comment to reply or react to.
  • pullNumber numberPull request number. Required when body is provided.
  • body stringThe text of the reply.
  • reaction enumEmoji reaction to add.
resolve_review_threadMark a PR review thread as resolved

Mark a pull request review thread as resolved. Requires the repository owner and name, plus the thread's GraphQL node ID.

  • owner / repo string required
  • threadId string requiredThe GraphQL node ID of the review thread to resolve.
unresolve_review_threadMark a previously resolved review thread as unresolved

Mark a previously resolved pull request review thread as unresolved. Requires the repository owner and name, plus the thread's GraphQL node ID.

  • owner / repo string required
  • threadId string requiredThe GraphQL node ID of the review thread to unresolve.
request_copilot_reviewRequest a GitHub Copilot code review for a pull request

Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer.

  • owner / repo string required
  • pullNumber number requiredPull request number.
subscribe_pr_activitySubscribe this session to GitHub activity on a pull request

Subscribe this session to GitHub activity on a pull request. Once subscribed, comments, CI failures, and successful check-suite rollups are delivered into this conversation as wake events. Idempotent. Also exposed under the Claude Code Remote group above.

  • owner / repo string required
  • pullNumber integer requiredThe pull request number.
unsubscribe_pr_activityUnsubscribe this session from GitHub activity on a pull request

Unsubscribe this session from GitHub activity on a pull request. Webhook events for this PR will no longer be delivered into the conversation. Also exposed under the Claude Code Remote group above.

  • owner / repo string required
  • pullNumber integer requiredThe pull request number.
actions_listList GitHub Actions workflows, runs, jobs and artifacts

Tools for listing GitHub Actions resources. Use this tool to list workflows in a repository, or list workflow runs, jobs, and artifacts for a specific workflow or workflow run.

  • method enum requiredlist_workflows, list_workflow_runs, list_workflow_jobs, or list_workflow_run_artifacts.
  • owner / repo string required
  • resource_id stringThe unique identifier of the resource; varies based on the method.
  • workflow_runs_filter objectFilters for workflow runs: actor, branch, event, status.
  • workflow_jobs_filter objectFilters jobs by their completed_at timestamp (latest, all).
  • page / per_page numberPagination.
actions_getGet details about specific GitHub Actions resources

Get details about specific GitHub Actions resources: individual workflows, workflow runs, jobs, and artifacts by their unique IDs.

  • method enum requiredget_workflow, get_workflow_run, get_workflow_job, download_workflow_run_artifact, get_workflow_run_usage, or get_workflow_run_logs_url.
  • owner / repo string required
  • resource_id string requiredThe unique identifier of the resource; varies based on the method.
actions_run_triggerRun, re-run, or cancel GitHub Actions workflow runs

Trigger GitHub Actions workflow operations, including running, re-running, cancelling workflow runs, and deleting workflow run logs.

  • method enum requiredrun_workflow, rerun_workflow_run, rerun_failed_jobs, cancel_workflow_run, or delete_workflow_run_logs.
  • owner / repo string required
  • workflow_id stringThe workflow ID (numeric) or workflow file name. Required for 'run_workflow'.
  • ref stringThe git reference for the workflow. Required for 'run_workflow'.
  • run_id numberThe ID of the workflow run. Required for all methods except 'run_workflow'.
  • inputs objectInputs the workflow accepts. Only used for 'run_workflow'.
get_job_logsGet logs for GitHub Actions workflow jobs

Get logs for GitHub Actions workflow jobs: a specific job, or all failed jobs in a workflow run (run_id with failed_only=true).

  • owner / repo string required
  • job_id numberThe unique identifier of the workflow job.
  • run_id numberThe unique identifier of the workflow run.
  • failed_only booleanWhen true, gets logs for all failed jobs in the workflow run.
  • return_content booleanReturns actual log content instead of URLs.
  • tail_lines numberNumber of lines to return from the end of the log (default 500).
get_check_runFetch a single check run by ID, including its output text

Fetch a single GitHub check run by ID, including its output text. Use this when a CI or custom GitHub App check has failed and the detailed error output is needed beyond the webhook summary. App-authored fields are returned wrapped in an untrusted-data envelope; output.text is paginated.

  • owner / repo string required
  • checkRunId integer requiredThe numeric ID of the check run.
  • textLimit / textOffset integerRaw-byte window size (default 4096, max 8192) and offset into output.text.
list_releasesList releases in a repository

List releases in a GitHub repository.

  • owner / repo string required
  • fields string[]Subset of fields to return for each release.
  • page / perPage numberPagination.
get_latest_releaseGet the latest release in a repository

Get the latest release in a GitHub repository.

  • owner / repo string required
get_release_by_tagGet a specific release by its tag name

Get a specific release by its tag name in a GitHub repository.

  • owner / repo string required
  • tag string requiredTag name (e.g., 'v1.0.0').
list_tagsList git tags in a repository

List git tags in a GitHub repository.

  • owner / repo string required
  • page / perPage numberPagination.
get_tagGet details about a specific git tag

Get details about a specific git tag in a GitHub repository.

  • owner / repo string required
  • tag string requiredTag name.
search_codeFast and precise code search across all GitHub repositories

Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns.

  • query string requiredSearch query (GitHub code search REST). Implicit AND between terms; supports OR, NOT, quoted phrases and qualifiers such as repo:, org:, language:, path:, filename:.
  • sort / orderSort field ('indexed' only) and order.
  • fields string[]Subset of fields to return for each code search result.
  • page / perPage numberPagination.
search_commitsSearch for commits across GitHub repositories

Search for commits across GitHub repositories using GitHub's commit search syntax. Useful for finding specific changes, authors, or messages across one or many repositories. Searches the default branch only.

  • query string requiredCommit search query; scope with repo:, org:, or user:.
  • sort / order enumSort by author or committer date; asc or desc.
  • page / perPage numberPagination.
search_issuesSearch issues using natural-language semantic matching

Search issues using natural-language semantic matching. Best for conceptual or paraphrased queries (e.g. "login fails after password reset"). Already scoped to is:issue.

  • query string requiredThe search query, as natural language.
  • owner / repo stringOptional repository scope.
  • sort / order enumSort field and order.
  • fields string[]Subset of fields to return for each issue result.
  • page / perPage numberPagination.
search_pull_requestsSearch for pull requests using issues search syntax

Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr.

  • query string requiredSearch query using GitHub pull request search syntax.
  • owner / repo stringOptional repository scope.
  • sort / order enumSort field and order.
  • fields string[]Subset of fields to return for each result.
  • page / perPage numberPagination.
search_repositoriesFind repositories by name, description, readme, or topics

Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.

  • query string requiredRepository search query. Supports advanced search syntax for precise filtering.
  • sort / order enumSort by stars, forks, help-wanted-issues, or updated; asc or desc.
  • minimal_output booleanReturn minimal repository information (default: true).
  • page / perPage numberPagination.
search_usersFind GitHub users by username or profile information

Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.

  • query string requiredUser search query. Search is automatically scoped to type:user.
  • sort / order enumSort users by followers, repositories, or joined; asc or desc.
  • page / perPage numberPagination.
run_secret_scanningScan files, content, or diffs for secrets

Scan files, content, or recent changes for secrets such as API keys, passwords, tokens, and credentials. Intended for targeted scans of specific files, snippets, or diffs provided directly as content. Returns detected secrets with their locations and related secret scanning metadata.

  • files string | string[] requiredA single string or an array of strings containing file contents, snippets, or diff hunks to scan for secrets.
  • owner / repo string required

Gmail

The mail connector. Search, read, draft, send, forward, reply, and manage labels, spam and trash. Names carry the mcp__Gmail__ prefix, dropped here.

search_threadsList email threads matching a Gmail-syntax query

Lists email threads from the authenticated user's Gmail account. Important: search results are previews showing only the ~5 oldest messages of each thread — call get_thread to read a thread in full before answering questions about recent or unread email. Supports the full Gmail query syntax (from:, to:, subject:, has:, label:, in:, is:, size:, date operators, AND/OR/minus grouping).

  • query stringA query string to filter the threads, in Gmail syntax.
  • view enumControls the fields populated for threads (THREAD_VIEW_MINIMAL default, THREAD_VIEW_METADATA_ONLY).
  • includeTrash booleanInclude threads from TRASH in the results. Defaults to false.
  • pageSize / pageTokenPagination (default 20, max 50).
get_threadRetrieve a specific email thread with its messages

Retrieves a specific email thread from the authenticated user's Gmail account, including a list of its messages. Draft messages within a thread are omitted. The optional messageFormat parameter controls the format; PLAIN_TEXT is recommended to prevent context exhaustion.

  • threadId string requiredThe unique identifier of the thread to fetch.
  • messageFormat enumMINIMAL, FULL_CONTENT (default), METADATA_ONLY, PLAIN_TEXT, or RAW.
get_messageRetrieve a single email message by its ID

Retrieves a specific email message from the authenticated user's Gmail account by its unique message ID. Use this to inspect a single, individual email when the message ID is already known; for entire conversations use get_thread. Does not retrieve drafts.

  • messageId string requiredThe unique identifier of the message to fetch.
  • messageFormat enumMINIMAL, FULL_CONTENT (default), METADATA_ONLY, PLAIN_TEXT, or RAW.
send_messageSend a new email message immediately

Sends a new email message immediately from the authenticated user's Gmail account. To send an existing draft, provide the draftId. To thread the message under an existing conversation, provide replyThreadId or replyToMessageId. Attachments are capped at a combined 25MB.

  • to / cc / bcc string[]Recipients. Each string must be a valid plain email address.
  • subject stringThe subject line of the email.
  • body / htmlBody stringPlain-text and rich-text versions of the email.
  • attachments arrayAttachments to include (base64 content, filename, mimeType, inline flag).
  • draftId stringAn existing draft to send; other fields are then ignored.
  • replyThreadId / replyToMessageId stringThread the message under an existing thread or in reply to a message.
replyReply to a specific email message

Replies to a specific email message in the authenticated user's Gmail account. Supports replying to only the sender or to all recipients via the replyAll parameter. Retrieve the thread via get_thread first to find the messageId of the latest message so threading is preserved.

  • messageId string requiredThe unique identifier of the message to reply to.
  • body / htmlBody stringThe reply content; at least one of the two is required.
  • replyAll booleanWhether to reply to all recipients. Defaults to false.
  • to / cc / bcc string[]Override the default reply recipients.
forwardForward a specific email message

Forwards a specific email message in the authenticated user's Gmail account.

  • messageId string requiredThe unique identifier of the message to forward.
  • to / cc / bcc string[]Recipients of the forwarded email.
  • forwardText / htmlBody stringComments to add before the forwarded message, plain and rich-text.
create_draftCreate a new draft email

Creates a new draft email in the authenticated user's Gmail account. Takes recipient addresses, a subject, and body content as inputs. If the draft is a reply to an existing message, pass the original message's ID in replyToMessageId.

  • to / cc / bcc string[]Recipients of the email draft.
  • subject stringThe subject line of the email.
  • body / htmlBody stringPlain-text and rich-text draft content.
  • attachments arrayAttachments to include (combined size max 25MB).
  • replyToMessageId stringThe ID of the message to reply to.
update_draftUpdate an existing draft email (merge semantics)

Updates an existing draft email. Merge semantics: fields provided will overwrite the corresponding fields in the draft, while omitted fields preserve their existing values. Warning: attachments are NOT merged — existing attachments are removed unless explicitly re-provided.

  • draftId string requiredThe unique identifier of the draft to update.
  • to / cc / bcc string[]New recipients; omitted or empty preserves existing.
  • subject / body / htmlBody stringNew subject and content; omitted preserves existing.
  • attachments arrayThe attachments to include; omitted or empty removes existing attachments.
get_draftRetrieve a specific draft email by ID

Retrieves a specific draft email from the authenticated user's Gmail account by ID.

  • draftId string requiredThe unique identifier of the draft to fetch.
  • messageFormat enumMINIMAL, FULL_CONTENT (default), METADATA_ONLY, PLAIN_TEXT, or RAW.
list_draftsList draft emails, with optional query filter

Lists draft emails from the authenticated user's Gmail account. Can filter drafts based on a query string and supports pagination. The view parameter controls which fields are populated; DRAFT_VIEW_METADATA_ONLY excludes sensitive content like subject and body.

  • query stringGmail-syntax filter, e.g. `subject:… from:… newer_than:7d is:unread`.
  • view enumDRAFT_VIEW_METADATA_ONLY (default) or DRAFT_VIEW_FULL.
  • pageSize / pageTokenPagination (default 20, max 50).
list_labelsList all labels in the account

Lists all labels available in the authenticated user's Gmail account. Use this tool to discover the id of a label before calling the label tools. The system labels DRAFT and SENT cannot be set on messages and are read only.

No arguments.

create_labelCreate a new label, including nested labels

Creates a new label in the authenticated user's Gmail account. Supports creating nested labels (sub-labels) using a forward slash (e.g. 'Projects/Alpha/Sprint-1'). By default, parent labels will be automatically created if they do not exist.

  • displayName string requiredThe display name of the label to create.
  • colorPreset enumThe color preset tile to assign to the new label, from predefined contrast-safe options.
  • autoCreateParentLabels booleanWhether to automatically create parent labels for nested labels. Defaults to true.
  • color objectDeprecated: use colorPreset instead.
update_labelModify an existing label's name and colour

Modifies an existing label's name and color in the user's Gmail account.

  • labelId string requiredThe unique identifier of the label to modify.
  • displayName stringThe human-readable display name of the label.
  • colorPreset enumThe new color preset tile to assign to the label.
  • color objectDeprecated: use colorPreset instead.
delete_labelDelete a label

Deletes a label in the authenticated user's Gmail account.

  • labelId string requiredThe ID of the label to delete.
label_message / unlabel_messageAdd or remove labels on a specific message

Adds (or removes) one or more labels to a specific message in the authenticated user's Gmail account. To add a Trash or Spam label, use apply_sensitive_message_label instead.

  • messageId string requiredThe ID of the message.
  • labelIds string[] requiredThe IDs of the labels to add or remove — system label IDs or user-defined label IDs.
label_thread / unlabel_threadAdd or remove labels on an entire thread

Adds (or removes) labels on an entire thread. Adding affects all messages currently in the thread and any future messages added to it. To add a Trash or Spam label, use apply_sensitive_thread_label instead.

  • threadId string requiredThe unique identifier of the thread.
  • labelIds string[] requiredThe unique identifiers of the labels to add or remove.
update_message_labelsAtomically add and remove labels on a message

Atomically adds and/or removes labels from a specific message. Requires at least one of addLabelIds or removeLabelIds. Moving an email between labels can be accomplished in a single call.

  • messageId string requiredThe ID of the message to modify labels for.
  • addLabelIds / removeLabelIds string[]The IDs of the labels to add and remove.
apply_sensitive_message_label / apply_sensitive_thread_labelApply Trash or Spam to one message or one thread

Adds a sensitive label (Trash or Spam) to a single message or a single thread in the authenticated user's Gmail account. The thread variant affects all messages currently in the thread.

  • messageId / threadId string requiredThe ID of the message or thread to add the label to.
  • labelOption enum requiredThe sensitive label option to add: TRASH or SPAM.
trash_message / untrash_messageMove a specific message to or from the Trash

Moves a specific message to (or removes it from) the Trash in the authenticated user's Gmail account. To trash an entire thread or a single-message thread, prefer trash_thread.

  • messageId string requiredThe ID of the message.
trash_thread / untrash_threadMove an entire thread to or from the Trash

Moves an entire thread to (or removes it from) the Trash. Trashing at the thread level ensures all current messages in the thread are moved to Trash.

  • threadId string requiredThe ID of the thread.
mark_message_spam / unmark_message_spamMark or unmark a specific message as Spam

Marks (or unmarks) a specific message as Spam in the authenticated user's Gmail account.

  • messageId string requiredThe ID of the message.
mark_thread_spam / unmark_thread_spamMark or unmark an entire thread as Spam

Marks (or unmarks) an entire thread as Spam. Marking spam at the thread level ensures all current messages in the thread are marked.

  • threadId string requiredThe ID of the thread.

Google Calendar

Scheduling. Names carry the mcp__Google_Calendar__ prefix, dropped here.

list_calendarsReturn the calendars this user has access to

Returns the calendars this user has access to (their calendar list). Use this tool to resolve calendar identifying data (for example, 'my family calendar') into its corresponding calendar_id (email identifier).

  • pageSize / pageTokenPagination (default 100, max 250).
list_eventsReturn events matching specified constraints

Returns events on the given calendar matching all specified constraints. Time constraints should not be specified unless requested by the user. For open-ended keyword or topic-based searches on the primary calendar, the search_events tool must be used instead.

  • calendarId stringID of the calendar containing the events. Default: primary calendar.
  • startTime / endTime stringISO 8601 bounds of a time range, only when a specific timeframe is requested.
  • fullText stringFree-form case-insensitive search matching title, description, location, or attendees.
  • eventType enum[]The event types to return.
  • orderBy stringdefault, startTime, startTimeDesc, or lastModified.
  • timeZone stringIANA time zone used to resolve timezone-less dates.
  • pageSize / pageTokenPagination (default 100, max 250, recommended 10).
search_eventsSemantic search over the primary calendar

Searches events on the user's primary calendar using semantic search.

  • query string requiredQuery string to search for events (case-insensitive).
  • pageSize / pageTokenPagination.
get_eventReturn a single event

Returns a single event on the given calendar.

  • eventId string requiredEvent ID. Can be resolved using list_events or search_events.
  • calendarId stringID of the calendar containing the event. Default: primary calendar.
create_eventCreate an event on a calendar

Creates an event on the given calendar.

  • summary string requiredTitle.
  • startTime / endTime string requiredStart and end times (ISO 8601).
  • calendarId stringID of the calendar to create the event on. Default: primary calendar.
  • description / location stringDescription (can contain HTML) and location.
  • attendees arrayAttendees of the event (email, displayName, optionalAttendee, responseStatus, resource).
  • allDay booleanWhether the event spans the entire day.
  • addGoogleMeetUrl / googleMeetUrlCreate and add a Google Meet URL, or attach a specific one.
  • recurrenceData string[]Recurrence rules as RRULE, RDATE, or EXDATE strings (per RFC 5545).
  • availability / visibility / eventType / colorIdBusy/free, default/public/private, event type and colour.
  • overrideReminders / guestPermissions / attachments / workingLocationPropertiesReminders, guest permissions, file attachments and working-location detail.
  • notificationLevel / timeZoneWhich email notification to send, and the IANA time zone.
update_eventUpdate an event; unset fields are not changed

Updates an event on the given calendar. Fields that are not set will not be updated.

  • eventId string requiredEvent ID.
  • summary / description / location / startTime / endTimeNew title, description, location and times.
  • addedAttendees / removedAttendeeEmailsAttendees to add and remove.
  • addedAttachments / removedAttachmentFileUrlsAttachments to add and remove.
  • calendarId / allDay / availability / visibility / colorId / timeZone / notificationLevel / overrideReminders / guestPermissions / addGoogleMeetUrl / googleMeetUrlAs on create_event.
delete_eventDelete an event

Deletes an event on the given calendar.

  • eventId string requiredThe ID of the event to delete.
  • calendarId stringID of the calendar containing the event.
  • notificationLevel enumWhich email notification should be sent for this event update.
respond_to_eventRespond to an event invitation

Responds to an event on a calendar.

  • eventId string requiredThe ID of the event to respond to.
  • responseStatus string requiredThe new response status: declined, tentative, or accepted.
  • responseComment stringThe user's comment attached to the response.
  • calendarId / notificationLevelCalendar and notification behaviour.
suggest_timeSuggest free time periods across calendars

Suggests time periods across one or more calendars.

  • attendeeEmails string[] requiredAttendee emails to find free time for.
  • startTime / endTime string requiredQuery interval start and end (ISO 8601).
  • durationMinutes integerMin duration of free slot in minutes. Default: 30.
  • preferences objectPreferred start/end hours, weekend exclusion and slot count.
  • timeZone stringTime zone for search times (IANA ID).

Google Drive

Documents and files in Drive. Names carry the mcp__Google_Drive__ prefix, dropped here.

search_filesSearch for Drive files using a structured query

Search for Drive files using a structured query (syntax: `query_term operator values`). Combine clauses with and, or, not, and parentheses. Supported terms: title, fullText, mimeType, modifiedTime, viewedByMeTime, createdTime, parentId, owner, sharedWithMe. Map document type words to mimeType clauses rather than title keywords.

  • query stringThe search query.
  • excludeContentSnippets booleanIf true, the content snippet will be excluded from the response.
  • pageSize / pageTokenPagination.
list_recent_filesFind recent files by a specified sort order

Find recent files for a user by a specified sort order. Supported sort orders: recency (default), lastModified, lastModifiedByMe. The default page size is 10.

  • orderBy stringThe sort order for the files.
  • excludeContentSnippets booleanIf true, the content snippet will be excluded from the response.
  • pageSize / pageTokenPagination.
read_file_contentFetch a natural language representation of a known Drive file

Fetch a natural language representation of a known Drive file, and if specified, its comments. fileId is required and must be an exact Drive file ID returned by a discovery tool — never guessed from a file title. Supports Google Docs, Slides and Sheets (with comments), PDF, Office and OpenDocument formats, and images.

  • fileId string requiredThe ID of the file to retrieve.
  • includeComments booleanWhether to include comments in the response.
download_file_contentDownload the content of a Drive file as base64

Download the content of a Drive file as a base64 encoded string. For Google-native files, exportMimeType specifies the desired export type; defaults to plain text types.

  • fileId string requiredThe ID of the file to retrieve.
  • exportMimeType stringFor Google native files, the MIME type to export the file to.
get_file_metadataFind general metadata about a Drive file

Find general metadata about a user's Drive file.

  • fileId string requiredThe ID of the file to retrieve.
  • excludeContentSnippets booleanIf true, the content snippet will be excluded from the response.
get_file_permissionsList the permissions of a Drive file

List the permissions of a Drive File.

  • fileId string requiredThe ID of the file to get permissions for.
create_fileCreate or upload a file to Drive

Create or upload a File to Google Drive. Prefer textContent for text; for non-UTF8 contents use base64Content. Google first-party types (document, spreadsheet, presentation) can be created without content; folders by setting the mime type to application/vnd.google-apps.folder. Supported content is converted to Google types by default.

  • title string requiredThe title of the file.
  • textContent / base64Content stringUTF-8 text or base64 content to upload; setting both is an error.
  • contentMimeType stringThe mime type of the content being uploaded. Required when any content is provided.
  • parentId stringThe parent id of the file.
  • disableConversionToGoogleType booleanSet to true to retain the passed in content mime type.
  • content / mimeTypeDeprecated fields; use the ones above.
update_fileUpdate the metadata of a Drive file

Update the metadata of a Google Drive file (currently only title and parent_id are supported). For moving files, use search_files to identify the destination parent id.

  • fileId string requiredThe ID of the file to update.
  • title stringThe updated title of the file.
  • parentId stringThe updated parent id of the file; replacing an existing parent results in a folder move.
copy_fileCopy an existing file in Drive

Copy an existing File in Google Drive, optionally specifying a new title and parent folder. If the title is not specified, the copy title will be 'Copy of {original title}'.

  • fileId string requiredThe ID of the file to copy.
  • title stringThe title of the newly created file.
  • parentId stringThe parent id of the newly created file.
share_fileShare a Drive file with a user or group

Share a Google Drive file with a user or group. If they already have permission, this updates their permission level if the new role is higher than their current role.

  • fileId string requiredThe ID of the file to share.
  • emailAddress string requiredThe email address of the user or group to share with.
  • role string requiredThe role to grant: writer, commenter, or reader.
trash_fileMove a Drive file to the trash

Moves a Google Drive file to the user's trash. It does not permanently delete the file.

  • fileId string requiredThe ID of the file to trash.

Dropbox

File storage. Every path-taking tool accepts Dropbox fq_paths, namespace paths, or file IDs — the schemas repeat that contract at length, so it is stated once here and trimmed from the entries. Names carry the mcp__Dropbox__ prefix, dropped here.

who_am_iGet the connected Dropbox user's identity, team, and namespace roots

Get the connected Dropbox user's identity, team, and namespace roots. Returns account_id, display_name, email, country, locale, team fields, and namespace root fields for interpreting Dropbox paths.

No arguments.

list_folderList folder contents; direct children or recursive traversal

List Dropbox folder contents; supports direct children or recursive traversal, with cursor-based pagination. Use "" or "/" for root. For browsing a folder, set recursive=false explicitly — omitting recursive performs a recursive scan.

  • path stringDropbox folder path for the first call. Required on first calls; omitted for pagination.
  • cursor stringOpaque cursor from a previous list_folder response; send cursor only.
  • recursive booleantrue or omitted lists descendants recursively; false lists immediate children only.
  • object_types enum[]Optional object type filters: "file" and "folder".
  • max_results integerMaximum page size for the first call (1-600).
searchSearch files and folders by name or content, with optional filters

Search Dropbox files and folders by name or content, with optional filters. New search: non-empty query is required. Pagination: send only the opaque cursor from a previous response. search_mode "title_only" searches filenames only; semantic retrieval, when available, is selected automatically by Dropbox.

  • query stringNon-empty search query text. Required for new searches.
  • cursor stringOpaque cursor from a previous search response; send cursor only.
  • path stringOptional folder scope for search.
  • search_mode enumOmit for default behaviour, or "title_only" to search filenames only.
  • include_folders / filename_only booleanAdvanced/raw flags for folder results and filename-only matching.
  • file_extensions / file_categories string[]Advanced/raw filters.
  • last_modified_after / last_modified_before stringISO 8601 bounds for last modified time.
  • order_by / reverse_order / max_resultsSort order (relevance, last_modified), reverse flag and page size (1-1000).
fetchFetch full text content for a file by id or path

Fetch full text content for a Dropbox file by id or path. Returns the file's title, full extracted text, an openable Dropbox URL and metadata. Max file size: 5 MiB. For preview-oriented asks, prefer file_preview instead.

  • id string requiredFile identifier or Dropbox path.
file_previewPreview files visually with thumbnails and Open in Dropbox links

Preview Dropbox files visually with thumbnails and Open in Dropbox links. Prefer this tool for preview-oriented asks; use fetch only when the user explicitly wants extracted text content.

  • file_paths string[] requiredThe file paths to the files for the desired preview.
get_file_metadataGet metadata, sharing details, and permissions for a file or folder

Get metadata, sharing details, and permissions for a Dropbox file or folder. The response is nested: metadata_type is "file" or "folder", with the matching object populated (name, paths, timestamps, size, sharing info, permissions, url).

  • path_or_file_id string requiredFile or folder identifier.
create_fileCreate a new UTF-8 text file from inline content

Create a new UTF-8 text file in Dropbox from inline content (not binary). For creating text-oriented files from inline content only. The final path component is the filename to create; team root is not writable for team accounts.

  • content string requiredThe text content of the file.
  • path string requiredDropbox file path to create.
create_folderCreate a new folder at a path; parents must already exist

Create a new Dropbox folder at a path; parent folders must already exist. create_folder does not auto-create intermediate parents; call it for each level, or use copy when missing destination parents should be created automatically.

  • path string requiredDropbox folder path to create, including the new folder name.
moveMove or rename one or more files or folders

Move or rename one or more Dropbox files or folders. Prefer move over a delete+create dance. When the user identifies a file by name or partial path, resolve it with dropbox.search first rather than asking for the exact path.

  • entries array (1-1000) requiredList of { source_path, destination_path } pairs.
  • autorename booleanWhen true, Dropbox renames the destination to avoid a conflict instead of failing that entry.
copyCopy one or more files or folders to new locations

Copy one or more Dropbox files or folders to new locations; originals remain. Prefer copy over download-and-reupload. Dropbox may create missing destination parent folders during the copy.

  • entries array (1-1000) requiredList of { source_path, destination_path } pairs.
  • autorename booleanWhen true, Dropbox renames the destination to avoid a conflict instead of failing that entry.
deleteDelete files or folders; recoverable in Deleted files

Delete Dropbox files or folders; they remain recoverable in Deleted files. Delete is NOT a permanent wipe — if the user explicitly asks for permanent deletion, this tool does not support that.

  • entries array (1-1000) requiredList of { source_path } entries.
check_job_statusPoll an async move, copy, or delete operation

Poll an async move, copy, or delete operation. Pass the opaque operation_id token back verbatim; respect recommended_poll_after_ms rather than polling in a tight loop. When status becomes "completed", the matching move/copy/delete result field is populated.

  • operation_id string requiredThe opaque token returned by an async mutation tool.
  • wait_ms integerWait budget in milliseconds. Maximum 30000.
download_linkGenerate single-use temporary download URLs for files

Generate single-use temporary download URLs for one or more Dropbox files. The URL is consumed by the first HTTP request of any method, including HEAD and Range requests — do not preview, unfurl, scan, or preflight it. Anyone with the URL can fetch the file content.

  • entries string[] (1-25) requiredOne or more file identifiers.
  • expiration_in_sec integerLink lifetime in seconds. Defaults to 600; valid values are 0 (default) or 60-900.
create_shared_linkCreate or reuse a private, view-only shared link

Create or reuse a private, view-only Dropbox link; optionally invite viewers. This tool cannot create public, anyone-with-link, or team-wide links — the audience is locked to "no_one" and the access level to "view". Only when the user explicitly asks to share, get a link, or send a file/folder to someone.

  • path_or_file_id string requiredFile or folder identifier to create or reuse a shared link for.
  • emails string[]Viewers to add directly. Maximum 25 emails.
  • audience / access_level stringLocked to "no_one" and "view"; any other value is rejected.
  • password / expires stringPassword protection and expiry, when supported.
  • allow_download objectWhether download is allowed via this link.
get_shared_link_metadataInspect a shared link's target, audience, access level, and settings

Inspect a Dropbox shared link's target, audience, access level, and settings. Use this when the user has a shared link URL and wants to know what it points to, who can access it, or what permissions it has.

  • url stringThe shared link URL to retrieve metadata for.
list_shared_linksList shared links owned by the connected user

List shared links owned by the connected user, optionally filtered to a folder. Use when the user wants to see what shared links exist for their files, check if a file already has a shared link, or review their sharing activity.

  • path stringFile or folder to list links for. Omit to list all shared links.
  • cursor stringOpaque cursor from a previous response; send cursor only.
create_file_requestCreate a URL other people can use to upload files to the user's Dropbox

Create a URL other people can use to upload files to the user's Dropbox. This creates a public upload URL for contributors to add files to the chosen destination folder; it is not for giving people view or download access to existing Dropbox content.

  • title string requiredFile request title. Must be non-empty.
  • destination string requiredDestination folder path.
  • deadline stringRFC3339 timestamp; setting a deadline requires an eligible Dropbox plan.
  • deadline_allow_late_uploads enumGrace period: one_day, two_days, seven_days, thirty_days, or always.
  • description stringOptional instructions shown on the file request.
  • closed booleanWhether the request accepts uploads.
  • video_project_id stringOptional Dropbox video editor project ID.
get_file_requestGet the metadata for one file request by its request ID

Get the metadata for one Dropbox file request by its request ID. Accepts only the raw file request ID returned by list_file_requests or create_file_request — not a path, file id, URL, or title.

  • id string requiredRaw Dropbox file request ID.
list_file_requestsList file requests owned by the connected user

List Dropbox file requests owned by the connected user. Paginate until has_more=false; a page may return zero file requests with has_more=true.

  • limit integerMaximum page size for the first call. Default 300, maximum 1000.
  • cursor stringOpaque cursor from a previous response; send cursor only.

Notion

Tasks and docs — the workspace system of record, plus Notion's Custom Agent sessions. Names carry the mcp__Notion__notion- prefix, dropped here.

searchSearch the workspace and connected sources

Search the user's Notion workspace and connected sources (Slack, Google Drive, GitHub, Jira, Teams, SharePoint, OneDrive, Linear) and return a ranked list of results to read. Two query types: "internal" (default) for content, "user" to find people by name or email. One question or topic per call; treat results as discovery candidates and fetch serious Notion candidates before relying on them.

  • query string requiredSemantic search query, or a substring to find users.
  • query_type enum"internal" or "user".
  • filters objectExact workspace-search filters: creators, editors, date ranges, teamspaces, title_only, content_status.
  • content_search_mode enum"workspace_search" (faster, workspace-only) or "ai_search" (semantic, includes connectors).
  • data_source_url / page_url / teamspace_id stringScope the search to a data source, a page subtree, or a teamspace.
  • sort enumrelevance (default), last_edited, or created.
  • page_size / max_highlight_length integerResult count (default 10, max 50) and highlight length (default 200; 0 to omit).
fetchRetrieve a page, database, data source, or view by URL or ID

Retrieves details about a Notion entity (page, database, data source, or saved database view) by URL or ID. Pages use enhanced Markdown format; databases return all data sources with collection:// IDs for use with the query and update tools. Pass "self" to fetch the connected workspace and user identity.

  • id string requiredThe ID or URL of the Notion page, database, or data source to fetch.
  • include_discussions booleanWhether to include discussion/comment indicators in the page output.
  • include_transcript booleanWhether to include meeting note transcripts. Defaults to false.
create-pagesCreate one or more pages with properties and content

Creates one or more Notion pages, with the specified properties and content. All pages created with a single call have the same parent — a page, database, or data source; if the user names no destination, draft mode creates workspace-level private pages. Content is a string in Notion-flavored Markdown.

abridged
  • pages array (max 100) requiredThe pages to create — each with properties, content, icon, cover, template_id and an is_skill flag.
  • parent objectThe parent under which the new pages will be created (page_id, database_id, or data_source_id).
  • creation_mode enum "draft"Server-enforced draft mode: workspace-level private pages.
  • allow_async booleanOpt into an async_task result for background execution.
update-pageUpdate a page's properties or content

Update a Notion page's properties or content. Commands: update_properties, update_content (search-and-replace operations), replace_content, insert_content, apply_template, update_verification. Some property types require specific formats — dates split into start/end/is_datetime keys, checkboxes use "__YES__"/"__NO__", relations take arrays of page URLs or IDs.

abridged
  • page_id string requiredThe ID of the page to update.
  • command enum requiredThe update command to execute.
  • properties objectRequired for "update_properties": a JSON object that updates the page's properties.
  • content_updates arrayRequired for "update_content": search-and-replace operations (old_str, new_str, replace_all_matches).
  • new_str / content stringReplacement content for "replace_content" and markdown to insert for "insert_content".
  • position objectFor "insert_content": start to prepend or end to append.
  • icon / cover / is_skillPage icon, cover and skill designation; settable alongside any command.
  • template_id / verification_status / verification_expiry_daysTemplate to apply, and verification controls.
  • allow_deleting_content / allow_async booleanPermit deletion of unreferenced child pages, and async execution.
duplicate-pageDuplicate a page (asynchronously)

Duplicate a Notion page. The duplication completes asynchronously, so do not rely on the new page identified by the returned ID or URL to be populated immediately.

  • page_id string requiredThe ID of the page to duplicate.
move-pagesMove pages or databases to a new parent

Move one or more Notion pages or databases to a new parent.

  • page_or_database_ids string[] (1-100) requiredAn array of up to 100 page or database IDs to move.
  • new_parent object requiredThe new parent: a page, the workspace, a database, or a specific data source.
create-databaseCreate a database using SQL DDL syntax, or a canonical typed database

Creates a new Notion database using SQL DDL syntax, or a canonical typed database for tasks, projects, or skills. Provide exactly one of schema (a CREATE TABLE statement) or database_type. Type syntax covers TITLE, RICH_TEXT, DATE, PEOPLE, CHECKBOX, SELECT, MULTI_SELECT, NUMBER, FORMULA, RELATION, ROLLUP, UNIQUE_ID and more.

  • schema stringSQL DDL CREATE TABLE statement defining the database schema.
  • database_type enumCreate a canonical typed database: tasks, projects, or skills.
  • title / description stringThe title and description of the new database.
  • parent objectThe parent page; if omitted, created as a private page at the workspace level.
update-data-sourceUpdate a data source's schema, title, or attributes using SQL DDL

Update a Notion data source's schema, title, or attributes using SQL DDL statements: ADD COLUMN, DROP COLUMN, RENAME COLUMN, ALTER COLUMN SET. Same type syntax as create-database.

  • data_source_id string requiredThe data source to update.
  • statements stringSemicolon-separated SQL DDL statements to update the schema.
  • title / description stringThe new title and description of the data source.
  • is_inline booleanWhether the database should display inline or as full page.
  • in_trash booleanMove data source to trash. Cannot be undone without Notion UI.
query-data-sourcesQuery databases using SQL or a saved view

Query data from Notion databases using SQL or by specifying a view. SQL mode executes read-only SQLite queries against one or more data sources, with data source URLs as table names and parameterized queries. View mode executes a database view's existing filters and sorts.

  • data object requiredSQL mode: { data_source_urls, query, params }. View mode: { mode: "view", view_url, page_size, start_cursor, is_archived }.
create-viewCreate a new view on a database

Create a new view on a Notion database — a view tab on an existing database, or an inline linked database view on a page. Supported types: table, board, list, calendar, timeline, gallery, form, chart, map, dashboard. The optional configure param accepts a DSL for filters, sorts, grouping, and display options.

  • data_source_id string requiredThe data source (collection) ID.
  • name string requiredThe name of the view.
  • type enum requiredThe type of view to create.
  • database_id / parent_page_id stringExactly one: the database to add a view tab to, or a page for an inline linked view.
  • configure stringView configuration DSL string (FILTER, SORT BY, GROUP BY, CHART, FORM, SHOW, …).
update-viewUpdate a view's name, filters, sorts, or display configuration

Update a view's name, filters, sorts, or display configuration. Only include fields to change; the configure param uses the same DSL as create-view, with CLEAR directives to remove settings.

  • view_id string requiredThe view to update.
  • name stringNew name for the view.
  • configure stringView configuration DSL string, including CLEAR directives.
create-commentAdd a comment to a page or specific content

Add a comment to a page or specific content. Targeting modes: page-level, on specific block content via selection_with_ellipsis, or a reply to an existing discussion thread. Provide exactly one content format: markdown (preferred) or rich_text.

  • page_id string requiredThe ID of the page to comment on.
  • markdown stringThe content of the comment as a Markdown string.
  • rich_text arrayAn array of rich text objects that represent the content of the comment.
  • selection_with_ellipsis stringUnique start and end snippet of the content to comment on.
  • discussion_id stringThe ID or URL of an existing discussion to reply to.
get-commentsGet comments and discussions from a page

Get comments and discussions from a Notion page. Returns discussions with full comment content in XML format. By default, returns page-level discussions only.

  • page_id string requiredIdentifier for a Notion page.
  • include_all_blocks booleanInclude discussions on child blocks, not just page-level discussions.
  • include_resolved booleanInclude resolved discussions in the response.
  • discussion_id stringFetch a specific discussion by ID or discussion URL.
create-attachmentCreate an attachment and upload it to Notion

Create an attachment and upload it to Notion. Provide exactly one source: content (small UTF-8 text artifacts), source_url (a direct, publicly reachable HTTPS URL), or source_file_id (a file this integration already uploaded). The response includes a markdown_source value to place the uploaded file on a page.

  • content string (max 200 KiB)The complete UTF-8 text content of the file. Requires filename.
  • source_url stringA direct, publicly reachable HTTPS URL from which Notion can download the file within one minute.
  • source_file_id stringThe ID of a file upload this exact integration already created.
  • filename stringThe filename to create in Notion, including a supported extension.
  • content_type stringOptional MIME type; must match the filename extension.
create-file-uploadCreate a short-lived URL for uploading one local file

Create a short-lived URL for uploading one local file directly to Notion. Send exactly one multipart/form-data POST to upload_url with every header returned in upload_headers. Files are limited to 20 MiB for this single-part flow.

  • filename string requiredThe filename to create in Notion, including a supported extension.
  • content_type stringOptional MIME type; prefer omitting it so the type is inferred from the filename.
download-attachmentDownload a small text attachment created by create-attachment

Download the contents of a small UTF-8 text attachment created by the create-attachment tool. The attachment must belong to the requesting integration, have completed uploading, and use a supported text format. Downloads are limited to 200 KiB.

  • file_upload_id string requiredThe FileUpload ID returned by the create-attachment tool.
create-folder / update-folderCreate an empty Folder, or apply a Folder operation

create-folder creates an empty Notion Folder under a page or nested inside another Folder; it inherits access from its parent and a new Folder is created on every successful call. update-folder applies exactly one operation to an existing Folder: add_files (with file upload IDs), remove_files (with exact file URLs from a fetch), or add_subfolder (with a title).

  • parent object requiredcreate-folder: where to create the Folder (page_id or folder_id).
  • title string requiredThe title of the new Folder (and of an added subfolder).
  • folder_id / command requiredupdate-folder: the Folder to update and the operation to apply.
  • file_upload_ids / file_urls string[]Files to add or remove.
query-meeting-notesQuery the current user's meeting notes data source

Query the current user's meeting notes data source. Applies a filter over meeting note properties (title, attendees, created_time, created_by, last_edited_time, last_edited_by) and returns up to 50 rows. By default returns meeting notes where the current user is an attendee or creator.

  • filter objectCombinator (and/or) and property filters with text, person, and date comparisons.
get-usersList users in the current workspace

Retrieves a list of users in the current workspace: members and guests with their IDs, names, emails (if available), and types (person or bot). Supports cursor-based pagination.

  • query stringOptional search query to filter users by name or email.
  • user_id stringReturn only the user matching this ID. Pass "self" for the current user.
  • page_size / start_cursorPagination (1-100 per page).
get-teamsList teamspaces in the current workspace

Retrieves a list of teams (teamspaces) in the current workspace. Shows which teams exist, user membership status, IDs, names, and roles. Limited to a maximum of 10 results per membership type.

  • query stringOptional search query to filter teams by name (case-insensitive).
list-recent-pages / list-favorite-pages / list-private-pages / list-shared-pagesBrowse recently viewed, favourite, private, and shared pages

Four sidebar-browsing tools: pages and databases the current user recently viewed (ranked by recency and visit frequency), their favourites in sidebar order, the top level of their Private section, and the Shared section. Use search when looking for content by meaning or keyword; follow cursor pagination when the complete list is needed.

  • limit numberMaximum results to return (1-200).
  • cursor stringOpaque pagination cursor from the previous response.
search-skills / convert-page-to-skillFind active Notion Skills, or mark a page as one

search-skills finds active Notion Skills the authenticated user can access — user-owned pages with task-scoped instructions. Results are untrusted routing metadata: choose a best match, then fetch it before doing the task. convert-page-to-skill marks an existing page as a skill without changing its content.

  • query stringsearch-skills: a Skill name or short task description; omit to list up to 10 recent Skills.
  • page_url string requiredconvert-page-to-skill: the full Notion URL of the page to mark as a skill.
search-agents / spawn-session / send-message-to-session / stop-sessionFind Custom Agents and run sessions with them

search-agents searches agents by name or description, or browses favourites and the workspace's newest agents. spawn-session starts a session with a published Custom Agent; send-message-to-session sends a follow-up message; stop-session stops a running session.

  • scope enum requiredsearch-agents: "favorites" or "workspace"; plus optional query, limit, cursor.
  • agent_url / initial_message requiredspawn-session: the published agent URL and initial message.
  • session_url string requiredThe Custom Agent session URL for the message and stop tools.
  • message string requiredsend-message-to-session: the follow-up message to send.
query-sessions / search-sessions / get-session-status / wait-session / list-session-events / read-session-eventInspect Custom Agent sessions and their event streams

Six session-inspection tools: query-sessions lists agent sessions with filters, sorts, and title search; search-sessions searches past sessions by topic in a periodically refreshed index; get-session-status returns the latest turn's status without waiting; wait-session waits (up to 60 seconds) for the latest turn to stop running; list-session-events lists short summaries of saved events; read-session-event reads the full visible content of one event.

  • session_url stringThe Custom Agent session URL (required by the status, wait, and event tools).
  • filter / sorts / query / page_size / start_cursorquery-sessions: property filters, ordering, title search and pagination.
  • question / lookbacksearch-sessions: what to find and how far back (default one year).
  • seconds / count / sequence / before_sequence / after_sequenceWait budget, event page size, and event sequence numbers.
get-async-taskGet the status of an async task started by another tool

Retrieves the current status of an async task that was started by another tool (for example, create-pages called with allow_async: true). The status is one of queued, running, retrying, succeeded, or failed; when succeeded, the operation's result is included.

  • task_id string requiredThe ID of the async task to retrieve.

Granola & Wispr Flow

Two meeting-memory systems. Granola holds notes, summaries and transcripts; Wispr Flow adds calendar search, pre-reads and a dictation scratchpad. Prefixes mcp__Granola__ and mcp__Wispr_Flow__ dropped here.

Granola · query_granola_meetingsQuery meetings using natural language, with citations

Query Granola about the user's meetings using natural language. Returns a tailored response with inline citation links that reference source meeting notes — citations must be preserved so the user can verify against the original notes. Prioritise this over list/get for open-ended queries about meeting content.

  • query string requiredThe query to run on Granola meeting notes.
  • document_ids uuid[]Optional list of specific meeting IDs to limit context to.
Granola · list_meetingsList meeting notes within a time range

List the user's Granola meeting notes within a time range. Returns meeting titles and metadata. For short-term questions about recent meeting details, prefer query_granola_meetings. Involvement filters distinguish notes captured by the user from meetings where they are a listed participant.

  • time_range enumthis_week, last_week, or last_30_days (default).
  • involvement objectcaptured_by_me and listed_as_participant conditions; true values combine with OR, false values exclude with AND.
  • workspace_only const trueSet only when the user explicitly asks for Team Space or workspace-visible meetings.
Granola · get_meetingsGet detailed meeting information by ID

Get detailed meeting information for one or more Granola meetings by ID. Returns private notes, AI-generated summary, attendees, and metadata.

  • meeting_ids uuid[] (1-10) requiredArray of meeting UUIDs (max 10).
Granola · get_meeting_transcriptGet the full verbatim transcript for a meeting

Get the full transcript for a specific Granola meeting by ID. Returns only the verbatim transcript content, not summaries or notes. Speaker labels: `Me` is the note-taker, `Them` is other unidentified participants, and named speakers are shown by name.

  • meeting_id uuid requiredMeeting UUID.
Granola · list_meeting_foldersList meeting folders

List the user's Granola meeting folders. Returns folder ID, title, description, and note count including nested folders.

No arguments.

Granola · get_account_infoGet the connected Granola account's identity and access scopes

Get the email, active workspace, and effective note-access scopes for the Granola account currently connected to this MCP session. Scopes describe which note categories this connection can search: personal and/or public.

No arguments.

Wispr Flow · search_meetingsSearch or list meetings captured by the Meeting Recorder

Search or list the user's meetings captured by Wispr Flow Meeting Recorder. Returns the most recently modified meetings when no query is given. Filter by who was there with attendee_emails; each result lists up to 5 attendees, start/end times, and a has_transcript flag.

  • query stringKeyword to match against meeting title/content. Omit to list recent meetings.
  • attendee_emails / attendee_matchFilter by attendee email(s), combined with 'any' (default) or 'all'.
  • field enumWhich field to search: title, content, or both.
  • since / until stringISO-8601 modification-time bounds.
  • limit / cursorPagination (default 25, max 200).
Wispr Flow · get_meetingGet a meeting's notes, summary, action items and transcript

Get a bounded range of the markdown notes, structured action items, the complete derived markdown summary, the complete attendee list, and (when requested) a bounded range of the recorded transcript of a specific meeting. Prefer the transcript as the verbatim source of truth; the notes are an auto-generated summary that can drop details.

  • meeting_id string requiredThe meeting id from search_meetings.
  • view_content objectBounded character range of the markdown content (start_char, char_limit; default 12000, max 40000).
  • view_transcript objectBounded character range of the plaintext transcript; omit to omit the transcript.
Wispr Flow · get_meeting_by_calendar_idGet the recorded meeting captured for a calendar event

Get the recorded meeting — notes, summary, action items, and optionally the transcript — captured for a calendar event, by its calendar_id. Errors if no recording is linked to that event.

  • calendar_id string requiredThe calendar_id from a calendar tool.
  • view_content / view_transcript objectBounded character ranges, as on get_meeting.
Wispr Flow · get_meeting_attendee_emailsGet email addresses for a meeting's attendees

Get email addresses for attendees on a specific recorded meeting. Use only when the user explicitly asks for attendee/contact email addresses; default meeting tools omit emails.

  • meeting_id string requiredThe meeting id from search_meetings.
Wispr Flow · list_meeting_seriesList every recorded occurrence of a recurring series

Given a meeting_id for a recurring meeting, list every recorded occurrence of that recurring series — newest first, including the meeting passed in. Use to answer 'what did we discuss last time this met' or to catch up before today's instance.

  • meeting_id string requiredA meeting id from search_meetings, in the series.
  • limit / cursorPagination (default 25, max 200).
Wispr Flow · search_calendar_eventsSearch or list Google Calendar events by attendee, keyword, or window

Search or list the user's Google Calendar events — by who's on them (attendee_emails), by keyword in the title/description, or within a date window. Returns each event's title, time, conference URL, and an attendee preview. These are calendar events, not the recorded meeting notes.

  • query stringKeyword to match against event title/description.
  • attendee_emails / attendee_matchFilter by attendee email(s), combined with 'any' or 'all'.
  • since / until stringISO-8601 start-time bounds.
  • limit / cursorPagination (default 25, max 200).
Wispr Flow · get_calendar_eventGet a single calendar event by ID

Get a single calendar event by its calendar_id. Returns title, time, attendees, description, and conference URL. Every timestamp is UTC; times are converted to the user's local zone before presenting.

  • calendar_id string requiredThe calendar_id from another calendar tool.
Wispr Flow · list_upcoming_meetingsList upcoming calendar events with pre-reads attached

List the user's upcoming calendar events in the next window_hours (default 24, max 168), soonest first, with an attendee preview and each event's latest pre-read attached when one has been generated. Use to answer 'what's on my calendar' or 'prep me for my next meeting'.

  • window_hours integerHours ahead to include (default 24, max 168 = one week).
  • limit / cursorPagination (default 25, max 50).
Wispr Flow · get_upcoming_meetingGet a single upcoming event, with its latest pre-read

Get a single upcoming calendar event by calendar_id, with its latest pre-read when one is available. Refuses past events — use get_meeting_by_calendar_id for the recorded notes of a past event.

  • calendar_id string requiredThe calendar_id of the upcoming event.
  • include_preread booleanInclude the pre-read briefing if one exists. Defaults to true.
Wispr Flow · resolve_calendar_linkResolve a pasted calendar or conference URL to its event

Resolve a calendar/meeting URL the user pasted (a Google Calendar event link, or a Meet/Zoom conference link) to the matching calendar event — title, time, attendees, conference URL, and its calendar_id. Use whenever the user pastes such a link instead of guessing at its contents.

  • url string requiredThe pasted calendar or conference URL.
Wispr Flow · resolve_share_linkResolve a Wispr Flow shared-notes link to the shared meeting note

Resolve a Wispr Flow shared-notes link the user pasted to the shared meeting note: its title, Flow Summary, owner, the caller's role, and its tasks/action items. Shared notes are usually other people's meetings, which the user's own meeting tools will never find. A bounded transcript range is returned only when the caller owns the note or is an explicitly invited recipient.

  • url string requiredThe pasted share link (or its bare slug).
  • view_transcript objectBounded character range of the transcript (start_char, char_limit).
Wispr Flow · search_scratchpad_notesSearch or list the user's scratchpad notes

Search or list the user's notes (Wispr Flow scratchpad). Use whenever the user asks about their notes, jottings, or anything they've written down. Returns the most recently modified notes when no query is given; case-insensitive substring match otherwise.

  • query stringSearch term to match against notes. Omit to list all notes.
  • field enumWhich field to search: title, content, or both.
  • since / until stringISO-8601 modification-time bounds.
  • limit / cursorPagination (default 25, max 200).
Wispr Flow · get_scratchpad_noteGet a bounded range of a specific note's text

Get a bounded range of a specific note's normalized text. The first range is returned by default; when truncated, repeat with view_content.start_char set to the continuation offset.

  • note_id string requiredThe note id from search_scratchpad_notes.
  • view_content objectBounded character range (start_char, char_limit; default 12000, max 40000).
Wispr Flow · get_account_infoGet the authenticated user's own identity

Get the authenticated user's own identity — their name and any display-name aliases they appear under on their calendar. Call this first for first-person questions so it is clear which person the user is among a meeting's attendees.

No arguments.