AI chief of staff — full tool inventory
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.
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 filesystemReads 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 required — The absolute path to the file to read.limit integer — The number of lines to read. Only provide if the file is too large to read at once.offset integer — The line number to start reading from.pages string — Page 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 existsWrites 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 required — The absolute path to the file to write (must be absolute, not relative).content string required — The content to write to the file.EditPerforms exact string replacement in a filePerforms 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 required — The absolute path to the file to modify.old_string string required — The text to replace.new_string string required — The text to replace it with (must be different from old_string).replace_all boolean — Replace all occurrences of old_string (default false).GlobFast file pattern matchingFast file pattern matching. Supports glob patterns like "**/*.js" or "src/**/*.ts". Returns matching file paths sorted by modification time.
pattern string required — The glob pattern to match files against.path string — The directory to search in. If not specified, the current working directory will be used.GrepContent search built on ripgrepContent 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 required — The regular expression pattern to search for in file contents.path string — File or directory to search in (rg PATH). Defaults to current working directory.glob string — Glob pattern to filter files (e.g. "*.js") — maps to rg --glob.type string — File type to search (rg --type).output_mode enum — "content", "files_with_matches", or "count".-i boolean — Case insensitive search (rg -i).-n boolean — Show line numbers in output (rg -n).-o boolean — Print only the matched (non-empty) parts of each matching line.-A / -B / -C / context number — Lines of context to show after, before, or around each match.multiline boolean — Enable multiline mode where . matches newlines and patterns can span lines.head_limit number — Limit output to first N lines/entries, equivalent to "| head -N".offset number — Skip first N lines/entries before applying head_limit.NotebookEditReplaces, inserts, or deletes a single cell in a Jupyter notebookReplaces, 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 required — The absolute path to the Jupyter notebook file to edit.new_source string required — The new source for the cell.cell_id string — The ID of the cell to edit.cell_type enum — The type of the cell (code or markdown). Required when inserting.edit_mode enum — The type of edit to make (replace, insert, delete). Defaults to replace.BashExecutes a bash command and returns its outputExecutes 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 rulescommand string required — The command to execute.description string — Clear, concise description of what this command does in active voice.timeout number — Optional timeout in milliseconds (max 600000).run_in_background boolean — Set to true to run this command in the background.dangerouslyDisableSandbox boolean — Set this to true to dangerously override sandbox mode and run commands without sandboxing.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 itFetches 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) required — The URL to fetch content from.prompt string required — The prompt to run on the fetched content.WebSearchSearch the web; returns result blocks with titles and URLsSearch 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 required — The search query to use.allowed_domains string[] — Only include search results from these domains.blocked_domains string[] — Never include search results from these domains.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 tasksLaunch 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.
abridgeddescription string required — A short (3-5 word) description of the task.prompt string required — The task for the agent to perform.subagent_type string — The type of specialized agent to use for this task.model enum — Optional model override for this agent: sonnet, opus, haiku or fable.isolation enum — Isolation mode. "worktree" creates a temporary git worktree; "remote" launches the agent in a remote cloud environment.run_in_background boolean — Agents 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 deterministicallyExecute 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.
abridgedscript string — Self-contained workflow script.scriptPath string — Path to a workflow script file on disk.name string — Name of a predefined workflow (built-in or from .claude/workflows/).args any — Optional input value exposed to the script as the global `args`, verbatim.resumeFromRunId string — Run ID of a prior Workflow invocation to resume from.title / description string — Ignored — set these in the script's `meta` block.SkillInvoke a skill — a packaged set of instructions for a particular kind of taskInvoke 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 required — The name of a skill from the available-skills list. Do not guess names.args string — Optional arguments for the skill.SendMessageSend a message to another agentSend 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.
abridgedto string required — Recipient: a name from ListAgents, a teammate name, "main", or a background agent's agentId.message string required — Plain text message content.summary string — A 5-10 word label for your own transcript row (not transmitted).notify_when_idle boolean — Ask a session on this machine to send one notice when it next goes idle or exits.ListAgentsLists agents you can SendMessage toLists 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 string — Not available in this build; leave unset.q string — Not available in this build; leave unset.MonitorStart a background monitor that streams events from a long-running scriptStart 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.
abridgeddescription string required — Short human-readable description of what you are monitoring (shown in notifications).timeout_ms number required — Kill the monitor after this deadline. Default 300000ms, max 3600000ms.persistent boolean required — Run for the lifetime of the session (no timeout).command string — Shell command or script. Each stdout line is an event; exit ends the watch.ws object — WebSocket to open (url, protocols). Each text frame is an event; socket close ends the watch.TaskCreateCreate a structured task list for the current sessionUse 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 required — A brief title for the task.description string required — What needs to be done.activeForm string — Present continuous form shown in spinner when in_progress (e.g., "Running tests").metadata object — Arbitrary metadata to attach to the task.TaskGetRetrieve a task by its ID from the task listUse 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 required — The ID of the task to retrieve.TaskListList all tasks in the task listUse 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, dependenciesUse 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 required — The ID of the task to update.status enum — New status for the task (pending, in_progress, completed, deleted).subject / description / activeForm / owner string — New title, description, spinner form, or owner for the task.metadata object — Metadata 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 taskDEPRECATED: 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 required — The task ID to get output from.block boolean required — Whether to wait for completion.timeout number required — Max wait time in ms.TaskStopStop a running background task by its IDStops 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 string — The ID of the background task to stop.shell_id string — Deprecated: use task_id instead.CronCreateSchedule a prompt to be enqueued at a future timeSchedule 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.
abridgedcron string required — Standard 5-field cron expression in local time.prompt string required — The prompt to enqueue at each fire time.recurring boolean — true (default) = fire on every cron match until deleted or auto-expired; false = fire once at the next match, then auto-delete.durable boolean — Has no effect — durable persistence is not available.CronDeleteCancel a cron job previously scheduled with CronCreateCancel a cron job previously scheduled with CronCreate. Removes it from the in-memory session store.
id string required — Job ID returned by CronCreate.CronListList all cron jobs scheduled via CronCreate in this sessionList all cron jobs scheduled via CronCreate in this session.
No arguments.
ScheduleWakeupSchedule when to resume work in /loop dynamic modeSchedule 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.
abridgeddelaySeconds number — Seconds from now to wake up. Clamped to [60, 3600] by the runtime.prompt string — The /loop input to fire on wake-up.reason string — One short sentence explaining the chosen delay.noop boolean — true = nothing changed; false = something happened worth keeping.stop boolean — Set to true to end the dynamic loop immediately instead of scheduling another wakeup.ReadNotificationsRead the notifications queued for this sessionRead 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.
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 taskUse 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.
abridgedNo arguments.
ExitPlanModeSignal that planning is done and ready for user approvalUse 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 array — Deprecated: no longer used.EnterWorktreeCreate an isolated git worktree and switch the session into itUse 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.
abridgedname string — Optional name for a new worktree. Mutually exclusive with `path`.path string — Path to an existing worktree to switch into instead of creating a new one.ExitWorktreeExit a worktree session and return to the original working directoryExit 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 boolean — Required true when action is "remove" and the worktree has uncommitted files or unmerged commits.AskUserQuestionAsk the user a decision that is genuinely theirs to makeUse 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) required — Questions to ask the user. Each has question text, a short header chip, 2-4 options (label, description, optional preview) and a multiSelect flag.answers object — User answers collected by the permission component.annotations object — Optional per-question annotations from the user.metadata object — Optional metadata for tracking and analytics purposes. Not displayed to user.PushNotificationSend a desktop notification in the user's terminalThis 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 required — The notification body. Keep it under 200 characters; mobile OSes truncate.status const "proactive" required — Always "proactive".SendUserFileSend files to the user as conversation file cardsSend 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[] required — File 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 string — Optional 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 listReport 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 required — Verified findings, most-severe first; each carries file, summary, failure_scenario, and optional line, category, verdict and outcome.level enum — Effort level the review ran at (low … max).ShowOnboardingRolePickerRender a clickable role-picker chip row during Cowork onboardingRender 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.
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 pageRender 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 pagesaction enum — Omit (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 string — Path to the .html file to render.url string — Existing artifact URL to update in place.title string — Title for the artifact — the name shown in the browser tab and gallery.description string — One-sentence subtitle shown on the gallery card.favicon string — Browser-tab icon: one or two emoji.capabilities object — Runtime capabilities this page declares, as {name: config}.label / note string — Short version name and what-changed note for the version picker.thread_id / text / cursor / acknowledge_duplicate — Comment-thread actions: which thread, the reply text, listing continuation, and the deliberate-duplicate flag.asset_id / out_dir / after — Asset-store actions: the asset's id, a directory to save into, and listing continuation.limit / scope / prompt / force / contract — Listing 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 projectsRead 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.
abridgedmethod enum required — One of list_projects, get_project, list_files, get_file, finalize_plan, write_files, delete_files, register_assets, unregister_assets, create_project, report_validate.projectId string — Required for all methods except list_projects and create_project.planId string — write/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 string — finalize_plan: directory the bundle was built into.files array — write_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 array — register_assets: cards to register in the Design System pane.name / path string — create_project: name for the new project; get_file: file path to read.counts object — report_validate: aggregate from the final .render-check.json — counts only.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 calledFetches 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 required — Query to find deferred tools.max_results number required — Maximum number of results to return (default: 5).ListSkillsList the user's enabled claude.ai skillsList 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 keywordSearch 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[] required — Keyword phrases describing the user's intent.SuggestSkillsRender a card of standalone skills the user can addRender 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[] required — Topic keywords from the user's request.trigger enum — How this suggestion started: 'user_asked' or 'proactive'.contextLabel string — Short header tying the suggestion to the user request.ListPluginsList the user's enabled claude.ai pluginsList 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 keywordSearch 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[] required — Keyword phrases describing the user's intent.SuggestPluginInstallRender an inline plugin install cardRender 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 required — Short header tying the suggestion to the user request.plugins array (1-16) required — Plugins sourced from SearchPlugins results.ListConnectorsList the MCP connectors installed for the user's claude.ai orgList 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 keywordSearch 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) required — Keyword phrases describing the user's intent or a named product.SuggestConnectorsResolve full connector payloads for directoryUuid valuesResolve 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) required — directoryUuid or server_id values to resolve.ListMcpResourcesToolList available resources from configured MCP serversList 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 string — Optional server name to filter resources by.ReadMcpResourceToolRead a specific resource from an MCP serverReads a specific resource from an MCP server, identified by server name and resource URI.
server string required — The MCP server name.uri string required — The resource URI to read.ReadMcpResourceDirToolList the direct children of a directory resource on an MCP serverList 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 required — The MCP server name.uri string required — The directory resource URI to list.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 sessionAdd 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.
abridgedowner string required — GitHub owner (user or organization) of the repo to add.repo string required — GitHub repo name.access enum — What access this session needs: "read" (default) or "push".register_repo_rootTell the session that a repo attached via add_repo has finished cloningTell 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 required — GitHub owner of the repo that was just cloned.repo string required — GitHub repo name that was just cloned.directory string required — Absolute path of the clone on disk.list_reposList repositories the current user has access toList 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 string — Optional case-insensitive substring matched against full_name (owner/repo).limit integer — Maximum number of repos to return (default 50, max 200).list_environmentsList Claude Code Remote environments for the current userList 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 integer — Maximum number of environments to return (default 20, max 100).create_sessionCreate a new Claude Code Remote sessionCreate 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 string — Environment ID — a tagged ID starting with 'env_'.prompt string — Optional initial message to send to the new session.title string — Optional session title.model string — Model ID for the new session. Defaults to the calling session's model.source_url / source_revision string — Optional git repository URL and branch, tag, or commit to check out.outcome_branch string — Optional branch name to push changes to.permission_mode enum — Initial 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 string — Text 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 accountList 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 integer — Maximum number of sessions to return (default 20, max 100).mine boolean — Filter 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 string — Pagination cursors for newer or older sessions.get_sessionGet details for a specific session by IDGet 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 string — The session ID to look up (starts with 'session_'). Omit to look up the calling session itself.set_session_titleRename an existing sessionRename 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 required — The target session ID.title string required — New session title. Max 500 chars.set_session_tagsAdd and/or remove tags on existing sessionsAdd 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[] required — Session 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 sessionInterrupt 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 required — The target session ID to interrupt.archive_sessionArchive a session, releasing its containerArchive 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 required — The target session ID to archive.unarchive_sessionUnarchive a previously archived sessionUnarchive 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 required — The target session ID to unarchive.create_triggerCreate a Routine — a scheduled triggerCreate 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 required — Human-readable Routine name.prompt string required — The message the Routine sends on each firing.initiation enum required — Who wanted this: human_request, human_schedule, own_followup, or own_initiative.cron_expression string — Standard 5-field cron expression, evaluated in UTC.run_once_at string — RFC3339 timestamp for a one-shot fire.persistent_session_id string — Optional session ID to fire into instead of this one.create_new_session_on_fire boolean — If true, each firing creates a fresh session in the calling session's environment.environment_id string — Environment ID; defaults to the calling session's environment.connectors string[] — Optional list of connector names the Routine's fired sessions may use.notifications object — Completion notifications for this Routine (push and/or email).update_triggerUpdate a Routine's name, schedule, state, model, or promptUpdate 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 required — The Routine's trigger ID to update (starts with 'trig_').name string — New human-readable name.cron_expression string — New 5-field cron expression, evaluated in UTC.run_once_at string — New RFC3339 one-shot fire time.enabled boolean — Enable or disable the Routine.prompt string — Replace the message each firing sends, keeping the Routine's identity and run history.model string — Change the model used for this Routine's future fires. Only when a human explicitly asks.delete_triggerDelete a RoutineDelete 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 required — The Routine's trigger ID to delete (starts with 'trig_').fire_triggerFire a Routine immediately, outside of its scheduleFire 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 required — The Routine's trigger ID (starts with 'trig_').text string — Optional text appended as an extra user message after the Routine's configured prompt. Bounded to 64 KiB.list_triggersList Routines owned by this accountList 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 integer — Maximum Routines to return (default 20, max 100).cursor string — Opaque pagination cursor from a previous response.enabled boolean — When set, only Routines whose enabled state matches.recurring boolean — When set, filters by schedule shape: cron-driven vs one-shot and fire-only.include_completed boolean — If true, also include one-shot Routines that have already fired.send_laterSchedule a message to be delivered back into this sessionSchedule 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 required — The text to deliver as a user turn.at string — RFC3339 timestamp for the fire time. Mutually exclusive with delay_minutes.delay_minutes integer — Fire this many minutes from now. Minimum 1. Mutually exclusive with at.name string — Short human-readable label for this reminder as it appears in the user's Routines list.initiation enum — Who wanted this message scheduled. Defaults to own_followup.subscribe_pr_activitySubscribe this session to GitHub activity on a pull requestSubscribe 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 required — The repository owner (user or organization name).repo string required — The repository name.pullNumber integer required — The pull request number.unsubscribe_pr_activityUnsubscribe this session from GitHub activity on a pull requestUnsubscribe 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 required — The repository owner (user or organization name).repo string required — The repository name.pullNumber integer required — The pull request number.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 userGet 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 repositoryGet the contents of a file or directory from a GitHub repository.
owner / repo string requiredpath string — Path to file/directory (default "/").ref string — Accepts optional git refs such as `refs/tags/{tag}`, `refs/heads/{branch}` or `refs/pull/{pr_number}/head`.sha string — Accepts 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 repositoryCreate 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 requiredpath string required — Path where to create/update the file.content string required — Content of the file, exactly as it should appear once written.message string required — Commit message.branch string required — Branch to create/update the file in.sha string — The blob SHA of the file being replaced. Required if the file already exists.allow_symlink_write boolean — Set true to update a symbolic link itself.delete_fileDelete a file from a repositoryDelete a file from a GitHub repository.
owner / repo string requiredpath string required — Path to the file to delete.message string required — Commit message.branch string required — Branch to delete the file from.push_filesPush multiple files to a repository in a single commitPush multiple files to a GitHub repository in a single commit.
owner / repo string requiredbranch string required — Branch to push to.files array required — Array of file objects to push, each object with path (string) and content (string).message string required — Commit message.create_branchCreate a new branch in a repositoryCreate a new branch in a GitHub repository.
owner / repo string requiredbranch string required — Name for new branch.from_branch string — Source branch (defaults to repo default).list_branchesList branches in a repositoryList branches in a GitHub repository.
owner / repo string requiredpage / perPage number — Pagination (perPage min 1, max 100).list_commitsGet list of commits of a branch in a repositoryGet 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 requiredsha string — Commit SHA, branch or tag name to list commits of.author string — Author username or email address to filter commits by.path string — Only commits containing this file path will be returned.since / until string — Only commits after/before this date (ISO 8601).fields string[] — Subset of fields to return for each commit.page / perPage number — Pagination.get_commitGet details for a commit from a repositoryGet details for a commit from a GitHub repository.
owner / repo string requiredsha string required — Commit SHA, branch name, or tag name.detail enum — Level of detail for changed files: "none", "stats" (default), or "full_patch".page / perPage number — Pagination.create_repositoryCreate a new repository in your account or an organizationCreate a new GitHub repository in your account or specified organization.
name string required — Repository name.description string — Repository description.organization string — Organization to create the repository in (omit to create in your personal account).private boolean — Whether the repository should be private. Defaults to true.autoInit boolean — Initialize with README.list_repository_collaboratorsList collaborators of a repositoryList collaborators of a GitHub repository. Results are paginated; the response includes nextPage, prevPage, firstPage, and lastPage fields.
owner / repo string requiredaffiliation enum — Filter by affiliation: 'outside', 'direct', or 'all' (default).page / perPage number — Pagination.get_teamsGet details of the teams the user is a member ofGet details of the teams the user is a member of. Limited to organizations accessible with current credentials.
user string — Username to get teams for. If not provided, uses the authenticated user.get_team_membersGet member usernames of a specific team in an organizationGet member usernames of a specific team in an organization. Limited to organizations accessible with current credentials.
org string required — Organization login (owner) that contains the team.team_slug string required — Team slug.issue_readGet information about a specific issueGet 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 required — The read operation to perform on a single issue.owner / repo string requiredissue_number number required — The number of the issue.page / perPage number — Pagination.issue_writeCreate a new or update an existing issueCreate 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 requiredtitle / body string — Issue title and body content.issue_number number — Issue number to update.state / state_reason enum — New state (open, closed) and reason (completed, not_planned, duplicate).labels / assignees string[] — Labels to apply and usernames to assign.milestone number — Milestone number.type string|null — Type of this issue, if issue types are enabled.issue_fields array — Issue field values to set or clear.duplicate_of number — Issue number that this issue is a duplicate of.parent_issue_number / parent_owner / parent_repo — Create the issue attached to this parent in the same operation.list_issuesList issues in a repositoryList issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.
owner / repo string requiredstate enum — Filter by state (OPEN, CLOSED).labels string[] — Filter by labels.since string — Filter by date (ISO 8601 timestamp).orderBy / direction enum — Order issues by field and direction.field_filters array — Filter by custom issue field values.fields string[] — Subset of fields to return for each issue.after / perPage — Cursor pagination.list_issue_fieldsList issue fields for a repository or organizationList 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 required — The account owner of the repository or organization.repo string — When provided, returns fields for this specific repository; when omitted, org-level fields.list_issue_typesList supported issue types for a repository or organizationList supported issue types for a repository or its owner organization. When repo is omitted, returns org-level issue types directly.
owner string required — The account owner of the repository or organization.repo string — The name of the repository.sub_issue_writeAdd, remove, or reprioritise a sub-issue on a parent issueAdd 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 required — The action to perform on a single sub-issue.owner / repo string requiredissue_number number required — The number of the parent issue.sub_issue_id number required — The ID of the sub-issue to add. ID is not the same as issue number.after_id / before_id number — Position for reprioritisation.replace_parent boolean — When true, replaces the sub-issue's current parent issue.add_issue_commentAdd a comment and/or reaction to an issue or issue commentAdd 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 requiredissue_number number required — Issue or pull request number to comment on or react to.body string — Comment content. Required unless reaction is provided.reaction enum — Emoji reaction to add. Required unless body is provided.comment_id integer — The numeric ID of the issue or pull request comment to react to.get_labelGet a specific label from a repositoryGet a specific label from a repository.
owner / repo string requiredname string required — Label name.create_pull_requestCreate a new pull request in a repositoryCreate a new pull request in a GitHub repository.
owner / repo string requiredtitle string required — PR title.head string required — Branch containing changes.base string required — Branch to merge into.body string — PR description.draft boolean — Create as draft PR.maintainer_can_modify boolean — Allow maintainer edits.reviewers string[] — GitHub usernames or ORG/team-slug team reviewers to request reviews from.list_pull_requestsList pull requests in a repositoryList 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 requiredstate enum — Filter by state (open, closed, all).head / base string — Filter by head user/org and branch, or base branch.sort / direction enum — Sort by created, updated, popularity, or long-running; asc or desc.fields string[] — Subset of fields to return for each pull request.page / perPage number — Pagination.pull_request_readGet information on a specific pull requestGet 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 required — Action to specify what pull request data needs to be retrieved from GitHub.owner / repo string requiredpullNumber number required — Pull request number.page / perPage / after — Pagination; `after` is the cursor for get_review_comments.update_pull_requestUpdate an existing pull requestUpdate an existing pull request in a GitHub repository.
owner / repo string requiredpullNumber number required — Pull request number to update.title / body string — New title and description.state enum — New state (open, closed).base string — New base branch name.draft boolean — Mark pull request as draft (true) or ready for review (false).maintainer_can_modify boolean — Allow maintainer edits.reviewers string[] — Reviewers to request reviews from.update_pull_request_branchUpdate a PR branch with the latest changes from the base branchUpdate the branch of a pull request with the latest changes from the base branch.
owner / repo string requiredpullNumber number required — Pull request number.expectedHeadSha string — The expected SHA of the pull request's HEAD ref.merge_pull_requestMerge a pull requestMerge a pull request in a GitHub repository.
owner / repo string requiredpullNumber number required — Pull request number.merge_method enum — Merge method (merge, squash, rebase).commit_title / commit_message string — Title and extra detail for the merge commit.enable_pr_auto_mergeEnable auto-merge for a pull requestEnable 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 requiredpullNumber integer required — The pull request number.mergeMethod enum — The merge method to use when auto-merge fires (MERGE, SQUASH, REBASE).disable_pr_auto_mergeDisable auto-merge for a pull requestDisable auto-merge for a pull request that currently has it enabled.
owner / repo string requiredpullNumber integer required — The pull request number.pull_request_review_writeCreate, submit, or delete a review of a pull requestCreate 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 required — The write operation to perform on pull request review.owner / repo string requiredpullNumber number required — Pull request number.body string — Review comment text.event enum — Review action to perform (APPROVE, REQUEST_CHANGES, COMMENT).commitID string — SHA of commit to review.threadId string — The 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 reviewAdd review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this.
owner / repo string requiredpullNumber number required — Pull request number.path string required — The relative path to the file that necessitates a comment.body string required — The text of the review comment.subjectType enum required — The level at which the comment is targeted (FILE, LINE).line / startLine number — The line, or line range, the comment applies to.side / startSide enum — The side of the diff to comment on (LEFT, RIGHT).add_reply_to_pull_request_commentAdd a reply and/or reaction to an existing PR commentAdd 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 requiredcommentId number required — The numeric ID of the pull request review comment to reply or react to.pullNumber number — Pull request number. Required when body is provided.body string — The text of the reply.reaction enum — Emoji reaction to add.resolve_review_threadMark a PR review thread as resolvedMark a pull request review thread as resolved. Requires the repository owner and name, plus the thread's GraphQL node ID.
owner / repo string requiredthreadId string required — The GraphQL node ID of the review thread to resolve.unresolve_review_threadMark a previously resolved review thread as unresolvedMark 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 requiredthreadId string required — The GraphQL node ID of the review thread to unresolve.request_copilot_reviewRequest a GitHub Copilot code review for a pull requestRequest 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 requiredpullNumber number required — Pull request number.subscribe_pr_activitySubscribe this session to GitHub activity on a pull requestSubscribe 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 requiredpullNumber integer required — The pull request number.unsubscribe_pr_activityUnsubscribe this session from GitHub activity on a pull requestUnsubscribe 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 requiredpullNumber integer required — The pull request number.actions_listList GitHub Actions workflows, runs, jobs and artifactsTools 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 required — list_workflows, list_workflow_runs, list_workflow_jobs, or list_workflow_run_artifacts.owner / repo string requiredresource_id string — The unique identifier of the resource; varies based on the method.workflow_runs_filter object — Filters for workflow runs: actor, branch, event, status.workflow_jobs_filter object — Filters jobs by their completed_at timestamp (latest, all).page / per_page number — Pagination.actions_getGet details about specific GitHub Actions resourcesGet details about specific GitHub Actions resources: individual workflows, workflow runs, jobs, and artifacts by their unique IDs.
method enum required — get_workflow, get_workflow_run, get_workflow_job, download_workflow_run_artifact, get_workflow_run_usage, or get_workflow_run_logs_url.owner / repo string requiredresource_id string required — The unique identifier of the resource; varies based on the method.actions_run_triggerRun, re-run, or cancel GitHub Actions workflow runsTrigger GitHub Actions workflow operations, including running, re-running, cancelling workflow runs, and deleting workflow run logs.
method enum required — run_workflow, rerun_workflow_run, rerun_failed_jobs, cancel_workflow_run, or delete_workflow_run_logs.owner / repo string requiredworkflow_id string — The workflow ID (numeric) or workflow file name. Required for 'run_workflow'.ref string — The git reference for the workflow. Required for 'run_workflow'.run_id number — The ID of the workflow run. Required for all methods except 'run_workflow'.inputs object — Inputs the workflow accepts. Only used for 'run_workflow'.get_job_logsGet logs for GitHub Actions workflow jobsGet 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 requiredjob_id number — The unique identifier of the workflow job.run_id number — The unique identifier of the workflow run.failed_only boolean — When true, gets logs for all failed jobs in the workflow run.return_content boolean — Returns actual log content instead of URLs.tail_lines number — Number of lines to return from the end of the log (default 500).get_check_runFetch a single check run by ID, including its output textFetch 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 requiredcheckRunId integer required — The numeric ID of the check run.textLimit / textOffset integer — Raw-byte window size (default 4096, max 8192) and offset into output.text.list_releasesList releases in a repositoryList releases in a GitHub repository.
owner / repo string requiredfields string[] — Subset of fields to return for each release.page / perPage number — Pagination.get_latest_releaseGet the latest release in a repositoryGet the latest release in a GitHub repository.
owner / repo string requiredget_release_by_tagGet a specific release by its tag nameGet a specific release by its tag name in a GitHub repository.
owner / repo string requiredtag string required — Tag name (e.g., 'v1.0.0').list_tagsList git tags in a repositoryList git tags in a GitHub repository.
owner / repo string requiredpage / perPage number — Pagination.get_tagGet details about a specific git tagGet details about a specific git tag in a GitHub repository.
owner / repo string requiredtag string required — Tag name.search_codeFast and precise code search across all GitHub repositoriesFast 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 required — Search query (GitHub code search REST). Implicit AND between terms; supports OR, NOT, quoted phrases and qualifiers such as repo:, org:, language:, path:, filename:.sort / order — Sort field ('indexed' only) and order.fields string[] — Subset of fields to return for each code search result.page / perPage number — Pagination.search_commitsSearch for commits across GitHub repositoriesSearch 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 required — Commit search query; scope with repo:, org:, or user:.sort / order enum — Sort by author or committer date; asc or desc.page / perPage number — Pagination.search_issuesSearch issues using natural-language semantic matchingSearch 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 required — The search query, as natural language.owner / repo string — Optional repository scope.sort / order enum — Sort field and order.fields string[] — Subset of fields to return for each issue result.page / perPage number — Pagination.search_pull_requestsSearch for pull requests using issues search syntaxSearch for pull requests in GitHub repositories using issues search syntax already scoped to is:pr.
query string required — Search query using GitHub pull request search syntax.owner / repo string — Optional repository scope.sort / order enum — Sort field and order.fields string[] — Subset of fields to return for each result.page / perPage number — Pagination.search_repositoriesFind repositories by name, description, readme, or topicsFind GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.
query string required — Repository search query. Supports advanced search syntax for precise filtering.sort / order enum — Sort by stars, forks, help-wanted-issues, or updated; asc or desc.minimal_output boolean — Return minimal repository information (default: true).page / perPage number — Pagination.search_usersFind GitHub users by username or profile informationFind GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.
query string required — User search query. Search is automatically scoped to type:user.sort / order enum — Sort users by followers, repositories, or joined; asc or desc.page / perPage number — Pagination.run_secret_scanningScan files, content, or diffs for secretsScan 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[] required — A single string or an array of strings containing file contents, snippets, or diff hunks to scan for secrets.owner / repo string requiredThe 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 queryLists 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 string — A query string to filter the threads, in Gmail syntax.view enum — Controls the fields populated for threads (THREAD_VIEW_MINIMAL default, THREAD_VIEW_METADATA_ONLY).includeTrash boolean — Include threads from TRASH in the results. Defaults to false.pageSize / pageToken — Pagination (default 20, max 50).get_threadRetrieve a specific email thread with its messagesRetrieves 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 required — The unique identifier of the thread to fetch.messageFormat enum — MINIMAL, FULL_CONTENT (default), METADATA_ONLY, PLAIN_TEXT, or RAW.get_messageRetrieve a single email message by its IDRetrieves 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 required — The unique identifier of the message to fetch.messageFormat enum — MINIMAL, FULL_CONTENT (default), METADATA_ONLY, PLAIN_TEXT, or RAW.send_messageSend a new email message immediatelySends 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 string — The subject line of the email.body / htmlBody string — Plain-text and rich-text versions of the email.attachments array — Attachments to include (base64 content, filename, mimeType, inline flag).draftId string — An existing draft to send; other fields are then ignored.replyThreadId / replyToMessageId string — Thread the message under an existing thread or in reply to a message.replyReply to a specific email messageReplies 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 required — The unique identifier of the message to reply to.body / htmlBody string — The reply content; at least one of the two is required.replyAll boolean — Whether to reply to all recipients. Defaults to false.to / cc / bcc string[] — Override the default reply recipients.forwardForward a specific email messageForwards a specific email message in the authenticated user's Gmail account.
messageId string required — The unique identifier of the message to forward.to / cc / bcc string[] — Recipients of the forwarded email.forwardText / htmlBody string — Comments to add before the forwarded message, plain and rich-text.create_draftCreate a new draft emailCreates 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 string — The subject line of the email.body / htmlBody string — Plain-text and rich-text draft content.attachments array — Attachments to include (combined size max 25MB).replyToMessageId string — The 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 required — The unique identifier of the draft to update.to / cc / bcc string[] — New recipients; omitted or empty preserves existing.subject / body / htmlBody string — New subject and content; omitted preserves existing.attachments array — The attachments to include; omitted or empty removes existing attachments.get_draftRetrieve a specific draft email by IDRetrieves a specific draft email from the authenticated user's Gmail account by ID.
draftId string required — The unique identifier of the draft to fetch.messageFormat enum — MINIMAL, FULL_CONTENT (default), METADATA_ONLY, PLAIN_TEXT, or RAW.list_draftsList draft emails, with optional query filterLists 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 string — Gmail-syntax filter, e.g. `subject:… from:… newer_than:7d is:unread`.view enum — DRAFT_VIEW_METADATA_ONLY (default) or DRAFT_VIEW_FULL.pageSize / pageToken — Pagination (default 20, max 50).list_labelsList all labels in the accountLists 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 labelsCreates 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 required — The display name of the label to create.colorPreset enum — The color preset tile to assign to the new label, from predefined contrast-safe options.autoCreateParentLabels boolean — Whether to automatically create parent labels for nested labels. Defaults to true.color object — Deprecated: use colorPreset instead.update_labelModify an existing label's name and colourModifies an existing label's name and color in the user's Gmail account.
labelId string required — The unique identifier of the label to modify.displayName string — The human-readable display name of the label.colorPreset enum — The new color preset tile to assign to the label.color object — Deprecated: use colorPreset instead.delete_labelDelete a labelDeletes a label in the authenticated user's Gmail account.
labelId string required — The ID of the label to delete.label_message / unlabel_messageAdd or remove labels on a specific messageAdds (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 required — The ID of the message.labelIds string[] required — The 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 threadAdds (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 required — The unique identifier of the thread.labelIds string[] required — The unique identifiers of the labels to add or remove.update_message_labelsAtomically add and remove labels on a messageAtomically 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 required — The 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 threadAdds 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 required — The ID of the message or thread to add the label to.labelOption enum required — The sensitive label option to add: TRASH or SPAM.trash_message / untrash_messageMove a specific message to or from the TrashMoves 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 required — The ID of the message.trash_thread / untrash_threadMove an entire thread to or from the TrashMoves 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 required — The ID of the thread.mark_message_spam / unmark_message_spamMark or unmark a specific message as SpamMarks (or unmarks) a specific message as Spam in the authenticated user's Gmail account.
messageId string required — The ID of the message.mark_thread_spam / unmark_thread_spamMark or unmark an entire thread as SpamMarks (or unmarks) an entire thread as Spam. Marking spam at the thread level ensures all current messages in the thread are marked.
threadId string required — The ID of the thread.Scheduling. Names carry the mcp__Google_Calendar__ prefix, dropped here.
list_calendarsReturn the calendars this user has access toReturns 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 / pageToken — Pagination (default 100, max 250).list_eventsReturn events matching specified constraintsReturns 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 string — ID of the calendar containing the events. Default: primary calendar.startTime / endTime string — ISO 8601 bounds of a time range, only when a specific timeframe is requested.fullText string — Free-form case-insensitive search matching title, description, location, or attendees.eventType enum[] — The event types to return.orderBy string — default, startTime, startTimeDesc, or lastModified.timeZone string — IANA time zone used to resolve timezone-less dates.pageSize / pageToken — Pagination (default 100, max 250, recommended 10).search_eventsSemantic search over the primary calendarSearches events on the user's primary calendar using semantic search.
query string required — Query string to search for events (case-insensitive).pageSize / pageToken — Pagination.get_eventReturn a single eventReturns a single event on the given calendar.
eventId string required — Event ID. Can be resolved using list_events or search_events.calendarId string — ID of the calendar containing the event. Default: primary calendar.create_eventCreate an event on a calendarCreates an event on the given calendar.
summary string required — Title.startTime / endTime string required — Start and end times (ISO 8601).calendarId string — ID of the calendar to create the event on. Default: primary calendar.description / location string — Description (can contain HTML) and location.attendees array — Attendees of the event (email, displayName, optionalAttendee, responseStatus, resource).allDay boolean — Whether the event spans the entire day.addGoogleMeetUrl / googleMeetUrl — Create 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 / colorId — Busy/free, default/public/private, event type and colour.overrideReminders / guestPermissions / attachments / workingLocationProperties — Reminders, guest permissions, file attachments and working-location detail.notificationLevel / timeZone — Which email notification to send, and the IANA time zone.update_eventUpdate an event; unset fields are not changedUpdates an event on the given calendar. Fields that are not set will not be updated.
eventId string required — Event ID.summary / description / location / startTime / endTime — New title, description, location and times.addedAttendees / removedAttendeeEmails — Attendees to add and remove.addedAttachments / removedAttachmentFileUrls — Attachments to add and remove.calendarId / allDay / availability / visibility / colorId / timeZone / notificationLevel / overrideReminders / guestPermissions / addGoogleMeetUrl / googleMeetUrl — As on create_event.delete_eventDelete an eventDeletes an event on the given calendar.
eventId string required — The ID of the event to delete.calendarId string — ID of the calendar containing the event.notificationLevel enum — Which email notification should be sent for this event update.respond_to_eventRespond to an event invitationResponds to an event on a calendar.
eventId string required — The ID of the event to respond to.responseStatus string required — The new response status: declined, tentative, or accepted.responseComment string — The user's comment attached to the response.calendarId / notificationLevel — Calendar and notification behaviour.suggest_timeSuggest free time periods across calendarsSuggests time periods across one or more calendars.
attendeeEmails string[] required — Attendee emails to find free time for.startTime / endTime string required — Query interval start and end (ISO 8601).durationMinutes integer — Min duration of free slot in minutes. Default: 30.preferences object — Preferred start/end hours, weekend exclusion and slot count.timeZone string — Time zone for search times (IANA ID).Documents and files in Drive. Names carry the mcp__Google_Drive__ prefix, dropped here.
search_filesSearch for Drive files using a structured querySearch 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 string — The search query.excludeContentSnippets boolean — If true, the content snippet will be excluded from the response.pageSize / pageToken — Pagination.list_recent_filesFind recent files by a specified sort orderFind recent files for a user by a specified sort order. Supported sort orders: recency (default), lastModified, lastModifiedByMe. The default page size is 10.
orderBy string — The sort order for the files.excludeContentSnippets boolean — If true, the content snippet will be excluded from the response.pageSize / pageToken — Pagination.read_file_contentFetch a natural language representation of a known Drive fileFetch 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 required — The ID of the file to retrieve.includeComments boolean — Whether to include comments in the response.download_file_contentDownload the content of a Drive file as base64Download 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 required — The ID of the file to retrieve.exportMimeType string — For Google native files, the MIME type to export the file to.get_file_metadataFind general metadata about a Drive fileFind general metadata about a user's Drive file.
fileId string required — The ID of the file to retrieve.excludeContentSnippets boolean — If true, the content snippet will be excluded from the response.get_file_permissionsList the permissions of a Drive fileList the permissions of a Drive File.
fileId string required — The ID of the file to get permissions for.create_fileCreate or upload a file to DriveCreate 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 required — The title of the file.textContent / base64Content string — UTF-8 text or base64 content to upload; setting both is an error.contentMimeType string — The mime type of the content being uploaded. Required when any content is provided.parentId string — The parent id of the file.disableConversionToGoogleType boolean — Set to true to retain the passed in content mime type.content / mimeType — Deprecated fields; use the ones above.update_fileUpdate the metadata of a Drive fileUpdate 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 required — The ID of the file to update.title string — The updated title of the file.parentId string — The updated parent id of the file; replacing an existing parent results in a folder move.copy_fileCopy an existing file in DriveCopy 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 required — The ID of the file to copy.title string — The title of the newly created file.parentId string — The parent id of the newly created file.share_fileShare a Drive file with a user or groupShare 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 required — The ID of the file to share.emailAddress string required — The email address of the user or group to share with.role string required — The role to grant: writer, commenter, or reader.trash_fileMove a Drive file to the trashMoves a Google Drive file to the user's trash. It does not permanently delete the file.
fileId string required — The ID of the file to trash.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 rootsGet 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 traversalList 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 string — Dropbox folder path for the first call. Required on first calls; omitted for pagination.cursor string — Opaque cursor from a previous list_folder response; send cursor only.recursive boolean — true or omitted lists descendants recursively; false lists immediate children only.object_types enum[] — Optional object type filters: "file" and "folder".max_results integer — Maximum page size for the first call (1-600).searchSearch files and folders by name or content, with optional filtersSearch 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 string — Non-empty search query text. Required for new searches.cursor string — Opaque cursor from a previous search response; send cursor only.path string — Optional folder scope for search.search_mode enum — Omit for default behaviour, or "title_only" to search filenames only.include_folders / filename_only boolean — Advanced/raw flags for folder results and filename-only matching.file_extensions / file_categories string[] — Advanced/raw filters.last_modified_after / last_modified_before string — ISO 8601 bounds for last modified time.order_by / reverse_order / max_results — Sort order (relevance, last_modified), reverse flag and page size (1-1000).fetchFetch full text content for a file by id or pathFetch 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 required — File identifier or Dropbox path.file_previewPreview files visually with thumbnails and Open in Dropbox linksPreview 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[] required — The file paths to the files for the desired preview.get_file_metadataGet metadata, sharing details, and permissions for a file or folderGet 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 required — File or folder identifier.create_fileCreate a new UTF-8 text file from inline contentCreate 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 required — The text content of the file.path string required — Dropbox file path to create.create_folderCreate a new folder at a path; parents must already existCreate 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 required — Dropbox folder path to create, including the new folder name.moveMove or rename one or more files or foldersMove 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) required — List of { source_path, destination_path } pairs.autorename boolean — When true, Dropbox renames the destination to avoid a conflict instead of failing that entry.copyCopy one or more files or folders to new locationsCopy 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) required — List of { source_path, destination_path } pairs.autorename boolean — When true, Dropbox renames the destination to avoid a conflict instead of failing that entry.deleteDelete files or folders; recoverable in Deleted filesDelete 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) required — List of { source_path } entries.check_job_statusPoll an async move, copy, or delete operationPoll 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 required — The opaque token returned by an async mutation tool.wait_ms integer — Wait budget in milliseconds. Maximum 30000.download_linkGenerate single-use temporary download URLs for filesGenerate 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) required — One or more file identifiers.expiration_in_sec integer — Link lifetime in seconds. Defaults to 600; valid values are 0 (default) or 60-900.create_shared_linkCreate or reuse a private, view-only shared linkCreate 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 required — File or folder identifier to create or reuse a shared link for.emails string[] — Viewers to add directly. Maximum 25 emails.audience / access_level string — Locked to "no_one" and "view"; any other value is rejected.password / expires string — Password protection and expiry, when supported.allow_download object — Whether download is allowed via this link.get_shared_link_metadataInspect a shared link's target, audience, access level, and settingsInspect 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 string — The shared link URL to retrieve metadata for.list_shared_linksList shared links owned by the connected userList 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 string — File or folder to list links for. Omit to list all shared links.cursor string — Opaque cursor from a previous response; send cursor only.create_file_requestCreate a URL other people can use to upload files to the user's DropboxCreate 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 required — File request title. Must be non-empty.destination string required — Destination folder path.deadline string — RFC3339 timestamp; setting a deadline requires an eligible Dropbox plan.deadline_allow_late_uploads enum — Grace period: one_day, two_days, seven_days, thirty_days, or always.description string — Optional instructions shown on the file request.closed boolean — Whether the request accepts uploads.video_project_id string — Optional Dropbox video editor project ID.get_file_requestGet the metadata for one file request by its request IDGet 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 required — Raw Dropbox file request ID.list_file_requestsList file requests owned by the connected userList 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 integer — Maximum page size for the first call. Default 300, maximum 1000.cursor string — Opaque cursor from a previous response; send cursor only.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 sourcesSearch 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 required — Semantic search query, or a substring to find users.query_type enum — "internal" or "user".filters object — Exact 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 string — Scope the search to a data source, a page subtree, or a teamspace.sort enum — relevance (default), last_edited, or created.page_size / max_highlight_length integer — Result count (default 10, max 50) and highlight length (default 200; 0 to omit).fetchRetrieve a page, database, data source, or view by URL or IDRetrieves 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 required — The ID or URL of the Notion page, database, or data source to fetch.include_discussions boolean — Whether to include discussion/comment indicators in the page output.include_transcript boolean — Whether to include meeting note transcripts. Defaults to false.create-pagesCreate one or more pages with properties and contentCreates 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.
abridgedpages array (max 100) required — The pages to create — each with properties, content, icon, cover, template_id and an is_skill flag.parent object — The 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 boolean — Opt into an async_task result for background execution.update-pageUpdate a page's properties or contentUpdate 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.
abridgedpage_id string required — The ID of the page to update.command enum required — The update command to execute.properties object — Required for "update_properties": a JSON object that updates the page's properties.content_updates array — Required for "update_content": search-and-replace operations (old_str, new_str, replace_all_matches).new_str / content string — Replacement content for "replace_content" and markdown to insert for "insert_content".position object — For "insert_content": start to prepend or end to append.icon / cover / is_skill — Page icon, cover and skill designation; settable alongside any command.template_id / verification_status / verification_expiry_days — Template to apply, and verification controls.allow_deleting_content / allow_async boolean — Permit 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 required — The ID of the page to duplicate.move-pagesMove pages or databases to a new parentMove one or more Notion pages or databases to a new parent.
page_or_database_ids string[] (1-100) required — An array of up to 100 page or database IDs to move.new_parent object required — The 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 databaseCreates 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 string — SQL DDL CREATE TABLE statement defining the database schema.database_type enum — Create a canonical typed database: tasks, projects, or skills.title / description string — The title and description of the new database.parent object — The 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 DDLUpdate 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 required — The data source to update.statements string — Semicolon-separated SQL DDL statements to update the schema.title / description string — The new title and description of the data source.is_inline boolean — Whether the database should display inline or as full page.in_trash boolean — Move data source to trash. Cannot be undone without Notion UI.query-data-sourcesQuery databases using SQL or a saved viewQuery 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 required — SQL 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 databaseCreate 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 required — The data source (collection) ID.name string required — The name of the view.type enum required — The type of view to create.database_id / parent_page_id string — Exactly one: the database to add a view tab to, or a page for an inline linked view.configure string — View configuration DSL string (FILTER, SORT BY, GROUP BY, CHART, FORM, SHOW, …).update-viewUpdate a view's name, filters, sorts, or display configurationUpdate 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 required — The view to update.name string — New name for the view.configure string — View configuration DSL string, including CLEAR directives.create-commentAdd a comment to a page or specific contentAdd 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 required — The ID of the page to comment on.markdown string — The content of the comment as a Markdown string.rich_text array — An array of rich text objects that represent the content of the comment.selection_with_ellipsis string — Unique start and end snippet of the content to comment on.discussion_id string — The ID or URL of an existing discussion to reply to.get-commentsGet comments and discussions from a pageGet 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 required — Identifier for a Notion page.include_all_blocks boolean — Include discussions on child blocks, not just page-level discussions.include_resolved boolean — Include resolved discussions in the response.discussion_id string — Fetch a specific discussion by ID or discussion URL.create-attachmentCreate an attachment and upload it to NotionCreate 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 string — A direct, publicly reachable HTTPS URL from which Notion can download the file within one minute.source_file_id string — The ID of a file upload this exact integration already created.filename string — The filename to create in Notion, including a supported extension.content_type string — Optional MIME type; must match the filename extension.create-file-uploadCreate a short-lived URL for uploading one local fileCreate 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 required — The filename to create in Notion, including a supported extension.content_type string — Optional MIME type; prefer omitting it so the type is inferred from the filename.download-attachmentDownload a small text attachment created by create-attachmentDownload 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 required — The FileUpload ID returned by the create-attachment tool.create-folder / update-folderCreate an empty Folder, or apply a Folder operationcreate-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 required — create-folder: where to create the Folder (page_id or folder_id).title string required — The title of the new Folder (and of an added subfolder).folder_id / command required — update-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 sourceQuery 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 object — Combinator (and/or) and property filters with text, person, and date comparisons.get-usersList users in the current workspaceRetrieves 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 string — Optional search query to filter users by name or email.user_id string — Return only the user matching this ID. Pass "self" for the current user.page_size / start_cursor — Pagination (1-100 per page).get-teamsList teamspaces in the current workspaceRetrieves 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 string — Optional 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 pagesFour 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 number — Maximum results to return (1-200).cursor string — Opaque pagination cursor from the previous response.search-skills / convert-page-to-skillFind active Notion Skills, or mark a page as onesearch-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 string — search-skills: a Skill name or short task description; omit to list up to 10 recent Skills.page_url string required — convert-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 themsearch-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 required — search-agents: "favorites" or "workspace"; plus optional query, limit, cursor.agent_url / initial_message required — spawn-session: the published agent URL and initial message.session_url string required — The Custom Agent session URL for the message and stop tools.message string required — send-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 streamsSix 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 string — The Custom Agent session URL (required by the status, wait, and event tools).filter / sorts / query / page_size / start_cursor — query-sessions: property filters, ordering, title search and pagination.question / lookback — search-sessions: what to find and how far back (default one year).seconds / count / sequence / before_sequence / after_sequence — Wait budget, event page size, and event sequence numbers.get-async-taskGet the status of an async task started by another toolRetrieves 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 required — The ID of the async task to retrieve.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 citationsQuery 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 required — The 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 rangeList 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 enum — this_week, last_week, or last_30_days (default).involvement object — captured_by_me and listed_as_participant conditions; true values combine with OR, false values exclude with AND.workspace_only const true — Set only when the user explicitly asks for Team Space or workspace-visible meetings.Granola · get_meetingsGet detailed meeting information by IDGet 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) required — Array of meeting UUIDs (max 10).Granola · get_meeting_transcriptGet the full verbatim transcript for a meetingGet 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 required — Meeting UUID.Granola · list_meeting_foldersList meeting foldersList 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 scopesGet 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 RecorderSearch 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 string — Keyword to match against meeting title/content. Omit to list recent meetings.attendee_emails / attendee_match — Filter by attendee email(s), combined with 'any' (default) or 'all'.field enum — Which field to search: title, content, or both.since / until string — ISO-8601 modification-time bounds.limit / cursor — Pagination (default 25, max 200).Wispr Flow · get_meetingGet a meeting's notes, summary, action items and transcriptGet 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 required — The meeting id from search_meetings.view_content object — Bounded character range of the markdown content (start_char, char_limit; default 12000, max 40000).view_transcript object — Bounded 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 eventGet 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 required — The calendar_id from a calendar tool.view_content / view_transcript object — Bounded character ranges, as on get_meeting.Wispr Flow · get_meeting_attendee_emailsGet email addresses for a meeting's attendeesGet 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 required — The meeting id from search_meetings.Wispr Flow · list_meeting_seriesList every recorded occurrence of a recurring seriesGiven 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 required — A meeting id from search_meetings, in the series.limit / cursor — Pagination (default 25, max 200).Wispr Flow · search_calendar_eventsSearch or list Google Calendar events by attendee, keyword, or windowSearch 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 string — Keyword to match against event title/description.attendee_emails / attendee_match — Filter by attendee email(s), combined with 'any' or 'all'.since / until string — ISO-8601 start-time bounds.limit / cursor — Pagination (default 25, max 200).Wispr Flow · get_calendar_eventGet a single calendar event by IDGet 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 required — The calendar_id from another calendar tool.Wispr Flow · list_upcoming_meetingsList upcoming calendar events with pre-reads attachedList 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 integer — Hours ahead to include (default 24, max 168 = one week).limit / cursor — Pagination (default 25, max 50).Wispr Flow · get_upcoming_meetingGet a single upcoming event, with its latest pre-readGet 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 required — The calendar_id of the upcoming event.include_preread boolean — Include the pre-read briefing if one exists. Defaults to true.Wispr Flow · resolve_calendar_linkResolve a pasted calendar or conference URL to its eventResolve 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 required — The pasted calendar or conference URL.Wispr Flow · resolve_share_linkResolve a Wispr Flow shared-notes link to the shared meeting noteResolve 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 required — The pasted share link (or its bare slug).view_transcript object — Bounded character range of the transcript (start_char, char_limit).Wispr Flow · search_scratchpad_notesSearch or list the user's scratchpad notesSearch 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 string — Search term to match against notes. Omit to list all notes.field enum — Which field to search: title, content, or both.since / until string — ISO-8601 modification-time bounds.limit / cursor — Pagination (default 25, max 200).Wispr Flow · get_scratchpad_noteGet a bounded range of a specific note's textGet 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 required — The note id from search_scratchpad_notes.view_content object — Bounded character range (start_char, char_limit; default 12000, max 40000).Wispr Flow · get_account_infoGet the authenticated user's own identityGet 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.