AI and integrations

MCP tools

Every tool the MCP server offers, with the scope it needs and its arguments. Generated from the server's source.

A key sees only the tools its scopes allow. Tools return text: JSON for structured results, Markdown for pages. Failures come back as tool results with isError set.

whoami

Identity and scopes of the current key, and the language of the person behind it (locale: en-AU writes Australian spelling and day/month/year dates, en-US US spelling and month/day/year). Write to them in that language.

Scope: none, every key gets it · read-only

No arguments.

weather_forecast

Weather for a place: current conditions, today's high and low, sunrise and sunset, hourly (from now) and daily forecasts, and air quality where there is some. Give place (a name, e.g. "Ballarat" or "Paris, France"; the user's saved places by name first) or lat and lon. Units are the user's choice unless units says otherwise. Credit the source ("Weather data by Open-Meteo.com") when showing it.

Scope: weather:read · read-only

ArgumentTypeRequiredNotes
placestringNo2–100 characters
latnumberNo-90–90
lonnumberNo-180–180
units"metric" | "imperial"No
daysintegerNo1–16
hoursintegerNo1–48

Places by name or postcode, best first, with coordinates and time zone (to ask weather_forecast for). "Name, region or country" narrows.

Scope: weather:read · read-only

ArgumentTypeRequiredNotes
querystringYes2–100 characters
countintegerNo1–10

The person's recipes (and ones their household shares) as short summaries: title, minutes, servings, rating, calories per serving, cuisines, courses, diets met, allergens. All filters are optional; query matches titles, tags and ingredients.

Scope: food:read · read-only

ArgumentTypeRequiredNotes
querystringNoup to 200 characters
cuisine``No
course``No
diet``No
maxMinutesintegerNo1–10000
ingredientstringNoup to 60 characters
favouritesbooleanNo
limitintegerNo1–100

food_recipe_get

One recipe in full: ingredients (scaled to servings when given), numbered steps, notes and its source.

Scope: food:read · read-only

ArgumentTypeRequiredNotes
recipeIdstringYesup to 40 characters
servingsintegerNo1–100

food_suggestions

Recipe ideas from the person's own recipes, best first, each with why: what they cook and rate, what's in season in Australia, what's in their pantry (and about to go off), how long since they made it. Keeps to their diets and allergens.

Scope: food:read · read-only

ArgumentTypeRequiredNotes
maxMinutesintegerNo5–600
course``No
limitintegerNo1–30

food_what_can_i_cook

Recipes the person can make with what's in their pantry, fridge and freezer, best covered first, with what's missing and what's about to go off.

Scope: food:read · read-only

No arguments.

food_plan_get

The household's meal plan between two days (at most 92): each meal's day, meal (breakfast, lunch, dinner, snack), title and recipe.

Scope: food:read · read-only

ArgumentTypeRequiredNotes
fromstringYesmatches ^\d{4}-\d{2}-\d{2}$
tostringYesmatches ^\d{4}-\d{2}-\d{2}$

food_substitute

Substitutes for an ingredient (e.g. buttermilk, eggs, self-raising flour) from Food's kitchen notes, with amounts. When Food has none on file, say so and suggest from general cooking knowledge.

Scope: food:read · read-only

ArgumentTypeRequiredNotes
ingredientstringYes1–100 characters

food_use_soon

What in the household's pantry needs using soon (within days, 3 by default; leftovers included) and the person's recipes that use the most of it ("what should I cook with what's expiring?").

Scope: food:read

ArgumentTypeRequiredNotes
daysintegerNo1–14

food_spending

The household's grocery spending by month, from the receipts it added to Food (Coles and Woolworths e-receipts), and what it last paid for things when asked about one (item).

Scope: food:read

ArgumentTypeRequiredNotes
monthsintegerNo1–24
itemstringNoup to 100 characters

food_plan_meals

Plans meals for the days ahead from the person's recipes (e.g. "dinners this week under 30 minutes, vegetarian", "under $120 this week"): fills the days without that meal yet, varying cuisines and main ingredients, preferring what's in the pantry and about to expire; with budget (dollars for the meals planned) it prefers recipes whose estimated cost fits and says roughly what they'll cost. Without apply it only proposes: show the plan and ask before calling again with apply: true.

Scope: food:read

ArgumentTypeRequiredNotes
fromstringNomatches ^\d{4}-\d{2}-\d{2}$
daysintegerNo1–14
meal"breakfast" | "lunch" | "dinner" | "snack"No
maxMinutesintegerNo5–600
diets[]Noup to 5 items
budgetnumberNo1–100000
applybooleanNo

food_plan_add

Puts a meal on the household's plan: a recipe (by id) or a note such as "Leftovers" or "Eating out".

Scope: food:read

ArgumentTypeRequiredNotes
daystringYesmatches ^\d{4}-\d{2}-\d{2}$
meal"breakfast" | "lunch" | "dinner" | "snack"Yes
recipeIdstringNoup to 40 characters
titlestringNoup to 200 characters
servingsintegerNo1–100

food_shopping_list

Makes a shopping list ("turn this into a shopping list"): from the plan between two days, or from recipes at given servings. Lines are merged by ingredient, sorted by aisle, without what the pantry has. Adds to an existing list when listId is given.

Scope: food:read

ArgumentTypeRequiredNotes
fromPlanobjectNo
fromPlan.fromstringYesmatches ^\d{4}-\d{2}-\d{2}$
fromPlan.tostringYesmatches ^\d{4}-\d{2}-\d{2}$
recipesobject[]Noup to 30 items
recipes[].recipeIdstringYesup to 40 characters
recipes[].servingsintegerNo1–100
listIdstringNoup to 40 characters
namestringNoup to 100 characters

food_list_add

Adds things to a shopping list (the most recent one unless listId says), one item per string ("2 L milk", "dishwashing liquid").

Scope: food:read

ArgumentTypeRequiredNotes
itemsstring[]Yes1–50 items; each 1–200 characters
listIdstringNoup to 40 characters

food_pantry_add

Records what the household has in: one item per string ("2 L milk", "spinach"), placed where it keeps and given an estimated use-by unless useBy (YYYY-MM-DD) says, added to the same thing when it's there already.

Scope: food:read

ArgumentTypeRequiredNotes
itemsstring[]Yes1–50 items; each 1–200 characters
useBystringNomatches ^\d{4}-\d{2}-\d{2}$

food_recipe_save

Saves a recipe to the person's Food: from a web page (url, read from its recipe data), or written out (title, ingredients one per line, steps one per line or paragraph). Confirm with the person before saving one you wrote yourself.

Scope: food:read

ArgumentTypeRequiredNotes
urlstringNoup to 2,000 characters; URL
titlestringNoup to 200 characters
servingsintegerNo1–100
ingredientsstringNoup to 20,000 characters
stepsstringNoup to 40,000 characters
minutesintegerNo1–2000

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
querystringYes1–200 characters
type"folder" | "document" | "spreadsheet" | "presentation" | "pdf" | "image" | "video" | "audio" | "archive" | "code" | "text" | "other"No
limitintegerNo1–100

drive_list

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
folderIdstringNoup to 64 characters
limitintegerNo1–500

drive_get

Details of a file or folder: where it is, size, type, versions, who it's shared with (for editors) and its link setting.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
itemIdstringYesup to 64 characters

drive_read

Read a text file (plain text, Markdown, CSV, JSON, code…), up to 1 MB. Other files: use drive_download_url.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
itemIdstringYesup to 64 characters

drive_download_url

A link to download a file, valid for an hour.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
itemIdstringYesup to 64 characters

drive_folder_create

Create a folder. Without parentId: at the top of My Drive. Fails if the name is taken there.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
namestringYes1–255 characters
parentIdstringNoup to 64 characters

drive_file_write

Save a small text file (up to 1 MB). Without parentId: at the top of My Drive. A file with the same name there gets a new version.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
namestringYes1–255 characters
contentstringYesup to 1,048,576 characters
parentIdstringNoup to 64 characters
mimestringNoup to 100 characters

drive_share

Share a file or folder with a member (by email) or a team (by name), as viewer, commenter or editor. Needs edit access.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
itemIdstringYesup to 64 characters
emailstringNoemail address
teamstringNoup to 100 characters
role"viewer" | "commenter" | "editor"Yes

document_create

Create a document (Documents), optionally with content in Markdown (headings, lists, tables, links). In My Drive unless folderId names a folder. Returns its id and link.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
titlestringYes1–255 characters
folderIdstringNoup to 64 characters
markdownstringNoup to 200,000 characters
spaceany JSONYes

document_read

Read a document: as Markdown (format: "markdown", the default) or its outline of headings ("outline"). Suggested deletions are left out.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
format"markdown" | "outline"No
spaceany JSONYes

document_edit

Change a document. Operations run in order: append (Markdown at the end), insert_after_heading (Markdown after the section heading whose text is heading), replace_text (every find → replace, within paragraphs), insert_table (rows of cells, the first the header, after heading or at the end). People with it open see the changes arrive.

Scope: none, every key gets it · destructive

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
operations(object | object | object | object)[]Yes1–50 items
spaceany JSONYes

document_comment

Comment on a document: on the text quoted (quote, a short passage as it appears) or on the whole document. Mention someone as @Name.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
bodystringYes1–8,000 characters
quotestringNoup to 500 characters
spaceany JSONYes

sheet_create

Create a spreadsheet (Sheets), optionally with sheets of rows: strings starting with "=" are formulas (A1 references), numbers and dates as typed.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
titlestringYes1–255 characters
folderIdstringNoup to 64 characters
sheetsobject[]Noup to 20 items
sheets[].namestringYes1–100 characters
sheets[].rows((string | number | boolean | null)[])[]Yesup to 5,000 items; each up to 200 items, each up to 50,000 characters
spaceany JSONYes

sheet_read

Read cells of a spreadsheet: range in A1 form with an optional sheet ("Budget!A1:D20"; the first sheet without one). Values are as the cells show them, worked out: formulas come with their A1 text and their computed value (errors as codes like #DIV/0!), and cells filled by a spilled array or a pivot table have their values too.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
rangestringYes2–100 characters
spaceany JSONYes

sheet_write

Write cells from the top-left of range ("Sheet1!B2"): values as rows; strings starting with "=" are formulas. People with the spreadsheet open see the change arrive.

Scope: none, every key gets it · destructive

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
rangestringYes2–100 characters
values((string | number | boolean | null)[])[]Yes1–5,000 items; each up to 200 items, each up to 50,000 characters
spaceany JSONYes

sheet_add_chart

Add a chart over a range (headers in its first row, categories in its first column): column, bar, line, area, pie, donut or scatter.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
rangestringYes2–100 characters
type"column" | "bar" | "stackedColumn" | "stackedBar" | "line" | "area" | "pie" | "donut" | "scatter"Yes
titlestringNoup to 200 characters
spaceany JSONYes

slides_create

Create a presentation (Slides) from an outline: a title slide, then one slide per entry (bullets make a title-and-body slide, none a section slide), with speaker notes. Themes: plain, bold, editorial, pitch.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
titlestringYes1–255 characters
outlineobject[]Yes1–60 items
outline[].titlestringYesup to 300 characters
outline[].bulletsstring[]Noup to 12 items; each up to 500 characters
outline[].notesstringNoup to 5,000 characters
theme"plain" | "bold" | "editorial" | "pitch"No
folderIdstringNoup to 64 characters
spaceany JSONYes

slides_read

Read a presentation: each slide's title, text and speaker notes, in order.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
spaceany JSONYes

slides_add

Add slides to a presentation after the slide after (a slide id from slides_read; the end without it).

Scope: none, every key gets it

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
afterstringNoup to 40 characters
slidesobject[]Yes1–40 items
slides[].titlestringYesup to 300 characters
slides[].bulletsstring[]Noup to 12 items; each up to 500 characters
slides[].notesstringNoup to 5,000 characters
spaceany JSONYes

Find documents, spreadsheets and presentations by what's in them (every word must appear), with a snippet each. kind narrows to one.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
querystringYes1–200 characters
kind"document" | "spreadsheet" | "presentation" | "video"No
limitintegerNo1–50
spaceany JSONYes

office_export

A download link (an hour) for a document, spreadsheet or presentation in another format: md or txt for documents, csv or tsv for spreadsheets, txt for presentations; docx, xlsx, pptx and pdf where the platform has them on.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
format"docx" | "odt" | "pdf" | "md" | "txt" | "xlsx" | "ods" | "csv" | "tsv" | "pptx" | "odp" | "png"Yes
spaceany JSONYes

video_read

Read a video project (Video): its sequences with size, rate and length; tracks with their clips (media names, start and end as timecode, where each starts in its media); markers; caption tracks with their text and times; and the media. Use it to answer questions about a cut or to draft chapters and descriptions from the captions.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
spaceany JSONYes

video_create

Make a video project (Video) from Drive files in order: a rough cut on one sequence, each clip optionally trimmed (in and out in seconds of its file). Files are MP4, QuickTime or M4A (others can be added in the app). In My Drive unless folderId names a folder; preset sets the sequence's size and rate. Returns its id and link; editing, effects and export happen in the app.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
titlestringYes1–255 characters
clipsobject[]Yes1–200 items
clips[].fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
clips[].innumberNo≥ 0
clips[].outnumberNo≥ 0
folderIdstringNoup to 64 characters
preset``No
spaceany JSONYes

video_transcribe

Transcribe one media item of a video project into a new caption track (Amazon Transcribe; speakers labelled). mediaId is the item's id from video_read. The captions start where the item's first clip starts on the sequence (or at 0). It takes a minute or more: the answer is the job; check it with transcriptionId, or read the project later. Counts against the person's daily transcription minutes.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
fileIdstringYesmatches ^fil_[0-9a-z]{6,40}$
mediaIdstringNo4–64 characters
languagestringNo2–10 characters
speakersintegerNo0–30
transcriptionIdstringNoup to 64 characters
spaceany JSONYes

photos_albums

List the albums in your photo library (title, number of photos, id).

Scope: none, every key gets it · read-only

No arguments.

photos_album

The photos in one album, in the album's order (up to 200).

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
albumIdstringYes3–64 characters
limitintegerNo1–200

Find photos and videos by when they were taken (from/to: 2024-06-12 or ISO date-times), where (near a latitude/longitude within km, or a box), words in names and descriptions, type, favourites. Use coordinates for places (e.g. Melbourne is -37.81, 144.96).

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
fromstringNoup to 40 characters
tostringNoup to 40 characters
nearobjectNo
near.latnumberYes-90–90
near.lonnumberYes-180–180
near.kmnumberNo0.1–5000
bboxobjectNo
bbox.southnumberYes-90–90
bbox.westnumberYes-180–180
bbox.northnumberYes-90–90
bbox.eastnumberYes-180–180
textstringNoup to 200 characters
type"photo" | "video" | "live" | "raw"No
favouritesbooleanNo
includeArchivebooleanNo
limitintegerNo1–200

photos_get

A photo's details: when and where it was taken, camera, size, description, albums, and a link to see it (an hour).

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
photoIdstringYes3–64 characters

mirage_servers

The person's Mirage servers (Discord-style communities), in their order, with unread and mention counts and the channels they can see (ids for the other Mirage tools).

Scope: none, every key gets it · read-only

No arguments.

mirage_inbox

What needs the person's attention in Mirage: recent messages that mention them (by name, their roles or @everyone), newest first, and the channels they haven't read, by server, with mention counts.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
limitintegerNo1–25

mirage_messages

A Mirage channel's or thread's recent messages, oldest first (before: a message id, for the ones before it). Reading doesn't mark them read.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
channelIdstringYes1–64 characters
beforestringNoup to 64 characters
limitintegerNo1–50

Search a Mirage server's messages the person can read: words, and optionally who sent them (from, a user id), where (in, a channel id) or what they have (link, file, image, video). Newest first.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
serverIdstringYes1–64 characters
querystringNoup to 500 characters
fromstringNoup to 64 characters
instringNoup to 64 characters
has("link" | "file" | "image" | "video")[]Noup to 4 items
limitintegerNo1–25

mirage_send

Send a message in a Mirage channel or thread as the person (Markdown; mention someone as <@userId>). replyTo: a message id to reply to. Not for direct messages, which are end-to-end encrypted.

Scope: none, every key gets it

ArgumentTypeRequiredNotes
channelIdstringYes1–64 characters
contentstringYes1–4,000 characters
replyTostringNoup to 64 characters

health_summary

The person's Health summary for today and this week: each metric they let you read (steps, sleep, heart rate and so on) with today's value, the week's daily average, the trend against the week before and the latest reading. Fails if they haven't turned on your access in Health → Privacy; tell them where.

Scope: none, every key gets it · read-only

No arguments.

health_metric

One Health metric's daily values between two days (at most a year), with the average and best day. Use metric ids from health_summary (e.g. steps, sleep, resting_heart_rate).

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
metricIdstringYes
fromstringYes
tostringYes

context_get

Read a context entry by namespace and key.

Scope: knowledge:read · read-only

ArgumentTypeRequiredNotes
namespacestringYes1–128 characters
keystringYes1–512 characters

context_list

List context entries in a namespace, optionally filtered by key prefix.

Scope: knowledge:read · read-only

ArgumentTypeRequiredNotes
namespacestringYes1–128 characters
prefixstringNoup to 512 characters
cursorstringNo

pages_list

List Notes pages (the organization's pages and databases) under a parent (default: top level).

Scope: knowledge:read · read-only

ArgumentTypeRequiredNotes
parentIdstringNo

page_get

Read a Notes page as Markdown with front matter (title, version, ...). Databases include their rows as a table; rows include their property values.

Scope: knowledge:read · read-only

ArgumentTypeRequiredNotes
pageIdstringYes1–200 characters; trimmed

Search Notes pages by title and text. Returns up to 20 matches with snippets.

Scope: knowledge:read · read-only

ArgumentTypeRequiredNotes
querystringYes1–200 characters; trimmed

context_put

Create or replace a context entry. Use namespaces to group related entries.

Scope: knowledge:write

ArgumentTypeRequiredNotes
namespacestringYes1–128 characters
keystringYes1–512 characters
valuestringYesup to 100,000 characters
tagsstring[]Noup to 20 items; each up to 64 characters
ttlSecondsintegerNo> 0

context_delete

Delete a context entry.

Scope: knowledge:write · destructive

ArgumentTypeRequiredNotes
namespacestringYes1–128 characters
keystringYes1–512 characters

page_upsert

Create a Notes page from Markdown, or replace an existing page's content. Pass pageId to replace (title/icon/fullWidth/parentId change only when given); omit it to create a page under parentId (default: top level). For a new page without a title, a leading # Heading becomes the title. Pass baseVersion from page_get to fail instead of overwriting newer edits.

Scope: knowledge:write

ArgumentTypeRequiredNotes
pageIdstringNo1–200 characters; trimmed
parentIdstringNo1–200 characters; trimmed
titlestringNoup to 200 characters
iconstringNoup to 16 characters
fullWidthbooleanNo
markdownstringYesup to 990,000 characters
baseVersionintegerNo≥ 0

agent_job_create

Queue work for one of the organization's self-hosted agents. http.batch runs HTTP requests limited to hosts (obeys robots.txt); exec runs a shell command (agents with full network access, or agents that limit shell commands to their allowlist); browser.batch loads up to 100 pages one at a time in the agent's installed Chrome (input { pages: [{ id, url, waitForSelector?, waitMs?, scroll?, capture?: { urlPattern, max? }, extract?: ["nextData" | "nuxtData" | "jsonLd" | "html"], select?: { nextData?: path | path[], nuxtData?: ..., jsonLd?: ... } }], delayMs? } where a path is dot-separated keys, indexes or * (e.g. "props.pageProps.products.*.name"); obeys robots.txt, identifies itself, at least 5 s between pages). ttlSeconds (60 to 604800, default 7 days) is how long the job may wait for a device. Results are delivered to callbackUrl.

Scope: agents:run · Also checks: agents:write (when args.type === "exec")

ArgumentTypeRequiredDefaultNotes
type"http.batch" | "exec" | "browser.batch"Yes
labelstringNoup to 120 characters
hostsstring[]No[]up to 50 items; each matches ^(\*\.)?([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$
inputobjectYesvalues: any JSON
callbackUrlstringNoURL
callbackSecretstringNoup to 200 characters
ttlSecondsintegerNo60–604800

agent_job_cancel

Cancel an agent job: a queued job is canceled at once; a running job stops at its device's next check (status canceling, then canceled).

Scope: agents:run

ArgumentTypeRequiredNotes
jobIdstringYes

agent_job_get

Status of an agent job, with a temporary results URL once done.

Scope: agents:read · read-only

ArgumentTypeRequiredNotes
jobIdstringYes

issues_meta

Issue tracking catalogs: spaces (keys), issue types, statuses, priorities, resolutions, link types, custom fields and people. Read this first to know valid names.

Scope: issues:read · read-only

No arguments.

Search issues with the query language (JQL-compatible), e.g. project = WEB AND status != Done AND assignee = "ada@example.com" ORDER BY priority DESC. Fields: project/space, key, type, status, statusCategory, priority, resolution, assignee, reporter, labels, component, fixVersion, sprint, parent, created, updated, resolved, due, summary, description, text (~ for contains), custom fields by name. Functions: currentUser() (none for keys), openSprints(), unreleasedVersions(), startOfWeek(), membersOf(team)…

Scope: issues:read · read-only

ArgumentTypeRequiredNotes
jqlstringYesup to 10,000 characters
startAtintegerNo0–100000
maxResultsintegerNo1–100

issues_report

Report over the issues a query matches. Types: createdVsResolved, cumulativeFlow, averageAge, resolutionTime (trends over days); controlChart (cycle times of resolved issues); statistics (counts by groupBy: status, assignee, priority, type, labels, components, fixVersions, sprint, resolution, space or a custom field id; each row's clause narrows the query to it); twoDimensional (groupBy × groupBy2); timeTracking; workload (open issues per assignee); epicProgress; versionReport (scope, done, pace and forecast of the version id the query's issues belong to).

Scope: issues:read · read-only

ArgumentTypeRequiredNotes
type"createdVsResolved" | "cumulativeFlow" | "controlChart" | "statistics" | "twoDimensional" | "averageAge" | "resolutionTime" | "timeTracking" | "workload" | "epicProgress" | "versionReport"Yes
jqlstringYesup to 10,000 characters
daysintegerNo1–730
interval"day" | "week" | "month"No
groupBystringNoup to 64 characters
groupBy2stringNoup to 64 characters
versionstringNoup to 64 characters

issues_agenda

Your Tasks dates between from and to (YYYY-MM-DD, at most 100 days): issues assigned to you by due and start date, and sprint starts, sprint ends and releases of the spaces you work in.

Scope: issues:read · read-only

ArgumentTypeRequiredNotes
fromstringYesmatches ^\d{4}-\d{2}-\d{2}$
tostringYesmatches ^\d{4}-\d{2}-\d{2}$

issue_get

One issue by key (e.g. WEB-12): fields, description (Markdown), comments, links, subtasks and the transitions available now.

Scope: issues:read · read-only

ArgumentTypeRequiredNotes
keystringYes1–64 characters

boards_list

Boards with their type (scrum or kanban), spaces and columns, plus the open sprints of scrum boards.

Scope: issues:read · read-only

ArgumentTypeRequiredNotes
spacestringNoup to 64 characters

board_get

A board's cards by column: the active sprint for scrum boards, the flow for kanban boards.

Scope: issues:read · read-only

ArgumentTypeRequiredNotes
boardIdstringYes1–64 characters

filters_list

Saved filters shared with the organization or with this key's teams: name and query (run one with issues_search).

Scope: issues:read · read-only

No arguments.

sprint_create

Create a future sprint on a scrum board (see boards_list for board ids).

Scope: issues:write

ArgumentTypeRequiredNotes
boardIdstringYes1–64 characters
namestringNoup to 80 characters
goalstringNoup to 1,000 characters

sprint_plan

Put issues (keys) into a sprint, or back into the backlog with sprintId null.

Scope: issues:write

ArgumentTypeRequiredNotes
issuesstring[]Yes1–100 items; each up to 64 characters
sprintIdstringYesup to 64 characters; can be null

sprint_start

Start a future sprint. endDate is an ISO date or date-time.

Scope: issues:write

ArgumentTypeRequiredNotes
sprintIdstringYes1–64 characters
endDatestringYes10–40 characters
goalstringNoup to 1,000 characters

sprint_complete

Complete an active sprint. Open issues move to moveTo: a future sprint id, "new" (a new sprint) or "backlog".

Scope: issues:write

ArgumentTypeRequiredNotes
sprintIdstringYes1–64 characters
moveTostringYes1–64 characters

issue_create

Create an issue. space is the space key (issues_meta lists them); leave it out when there's only one space. A space that doesn't exist gets the list of spaces back. type, priority, components, versions and sprint take names; people take emails; parent takes an issue key (epics for stories, a standard issue for subtasks); custom fields go in fields by name. description is Markdown.

Scope: issues:write

ArgumentTypeRequiredNotes
spacestringNoup to 64 characters
summarystringYes1–255 characters; trimmed
typeany JSONYes
descriptionany JSONYes
priorityany JSONYes
assigneeany JSONYes
reporterany JSONYes
labelsany JSONYes
componentsany JSONYes
fixVersionsany JSONYes
affectsVersionsany JSONYes
dueDateany JSONYes
startDateany JSONYes
storyPointsany JSONYes
originalEstimateany JSONYes
remainingEstimateany JSONYes
environmentany JSONYes
parentany JSONYes
sprintany JSONYes
securityLevelany JSONYes
fieldsany JSONYes

issue_update

Change an issue's fields (not its status: use issue_transition). Only the fields given change; null clears a field.

Scope: issues:write

ArgumentTypeRequiredNotes
keystringYes1–64 characters
summaryany JSONYes
typeany JSONYes
descriptionany JSONYes
priorityany JSONYes
assigneeany JSONYes
reporterany JSONYes
labelsany JSONYes
componentsany JSONYes
fixVersionsany JSONYes
affectsVersionsany JSONYes
dueDateany JSONYes
startDateany JSONYes
storyPointsany JSONYes
originalEstimateany JSONYes
remainingEstimateany JSONYes
environmentany JSONYes
parentany JSONYes
sprintany JSONYes
securityLevelany JSONYes
fieldsany JSONYes

issue_transition

Move an issue through its workflow by transition or target status name (see issue_get for the available ones). Optionally set fields the transition asks for and add a comment.

Scope: issues:write

ArgumentTypeRequiredNotes
keystringYes1–64 characters
transitionstringYes1–80 characters
fieldsobjectNo
fields.typestringNoup to 80 characters
fields.summarystringNoup to 255 characters
fields.descriptionstringNoup to 65,536 characters
fields.prioritystringNoup to 80 characters; can be null
fields.assigneestringNoup to 320 characters; can be null
fields.reporterstringNoup to 320 characters; can be null
fields.labelsstring[]Noup to 30 items; each up to 64 characters
fields.componentsstring[]Noup to 50 items; each up to 100 characters
fields.fixVersionsstring[]Noup to 50 items; each up to 100 characters
fields.affectsVersionsstring[]Noup to 50 items; each up to 100 characters
fields.dueDatestringNomatches ^\d{4}-\d{2}-\d{2}$; can be null
fields.startDatestringNomatches ^\d{4}-\d{2}-\d{2}$; can be null
fields.storyPointsnumberNo0–10000; can be null
fields.originalEstimatenumber | stringNo0–315360000; up to 40 characters; can be null
fields.remainingEstimatenumber | stringNo0–315360000; up to 40 characters; can be null
fields.environmentstringNoup to 32,768 characters; can be null
fields.parentstringNoup to 64 characters; can be null
fields.sprintstringNoup to 100 characters; can be null
fields.securityLevelstringNoup to 80 characters; can be null
fields.resolutionstringNoup to 80 characters; can be null
fields.fieldsobjectNokeys up to 100 characters; values: any JSON
fields.requestTypestringNoup to 80 characters
fields.participantsstring[]Noup to 100 items; each up to 320 characters
commentstringNoup to 32,768 characters

issue_comment

Add a Markdown comment to an issue. internal comments (service desk spaces) are visible to agents only.

Scope: issues:write

ArgumentTypeRequiredNotes
keystringYes1–64 characters
bodystringYes1–32,768 characters
internalbooleanNo

Link two issues, e.g. key=WEB-1, type="blocks", issue=WEB-2 (WEB-1 blocks WEB-2). Either wording works: "is blocked by", "relates to", "duplicates"…

Scope: issues:write

ArgumentTypeRequiredNotes
keystringYes1–64 characters
typestringYes1–80 characters
issuestringYes1–64 characters

issue_worklog

Log work on an issue, e.g. timeSpent "1h 30m". The remaining estimate goes down by the same amount.

Scope: issues:write

ArgumentTypeRequiredNotes
keystringYes1–64 characters
timeSpentstringYes1–40 characters
commentstringNoup to 4,000 characters

issues_rank

Reorder issues in the backlog: put issues (keys, in order) right before or right after another issue.

Scope: issues:write

ArgumentTypeRequiredNotes
issuesstring[]Yes1–50 items; each up to 64 characters
beforestringNoup to 64 characters
afterstringNoup to 64 characters

issue_move

Move an issue (and its subtasks) to another space. It gets a new key; the old key keeps resolving.

Scope: issues:write

ArgumentTypeRequiredNotes
keystringYes1–64 characters
spacestringYes1–64 characters
typestringNoup to 80 characters

issue_delete

Delete an issue with its comments, attachments, work logs and subtasks. This can't be undone.

Scope: issues:write · destructive

ArgumentTypeRequiredNotes
keystringYes1–64 characters

space_create

Create a space (project) from a template: scrum, kanban, bugs, service or basic. Keys are 2–10 capital letters or digits.

Scope: issues:write

ArgumentTypeRequiredNotes
keystringYes2–10 characters
namestringYes1–80 characters; trimmed
template"scrum" | "kanban" | "bugs" | "service" | "basic"Yes
descriptionstringNoup to 2,000 characters

crm_objects

The objects in Customers (accounts, contacts, leads, opportunities, activities and custom ones) with their fields: ids, types, picklist values and lookups' targets, and the pipelines with their stages. Read this first to know valid field ids and values.

Scope: crm:read · read-only

No arguments.

Find records in Customers by words of their name, company, email, phone or website (prefixes match), or by id. Returns ids to read with crm_record_get.

Scope: crm:read · read-only

ArgumentTypeRequiredNotes
querystringYes1–200 characters
objectsstring[]Noup to 10 items; each up to 40 characters
limitintegerNo1–50

crm_records_list

Scope: crm:read · read-only

ArgumentTypeRequiredNotes
objectstringYesup to 40 characters
filtersobject[]Noup to 10 items
filters[].fieldstringYesup to 60 characters
filters[].op"eq" | "ne" | "in" | "gt" | "gte" | "lt" | "lte" | "contains" | "startsWith" | "blank" | "notBlank"Yes
filters[].valueany JSONNo
sortobjectNo
sort.fieldstringYesup to 60 characters
sort.dir"asc" | "desc"Yes
limitintegerNo1–100
cursorstringNoup to 8,000 characters

crm_record_get

Read a record in Customers by id: its fields (lookups and owners by name), what the caller may do with it, its related records and its latest activities.

Scope: crm:read · read-only

ArgumentTypeRequiredNotes
idstringYesup to 40 characters

crm_record_create

Create a record in Customers: the object id and field values by field id (crm_objects lists them; picklists take a value or its label, lookups a record id, dates YYYY-MM-DD). The caller owns it unless ownerId is given.

Scope: crm:write

ArgumentTypeRequiredNotes
objectstringYesup to 40 characters
fieldsobjectYeskeys up to 60 characters; values: any JSON
ownerIdstringNoup to 40 characters

crm_record_update

Change a record's fields in Customers (by field id; null clears one) or owner. Pass the version you read to refuse the change if someone edited it since.

Scope: crm:write

ArgumentTypeRequiredNotes
idstringYesup to 40 characters
fieldsobjectNokeys up to 60 characters; values: any JSON
ownerIdstringNoup to 40 characters
versionintegerNo

crm_activity_log

Log an activity on records in Customers: a task (open, with a due date), call, meeting, note or email, related to one or more records (contacts, accounts, opportunities, leads).

Scope: crm:write

ArgumentTypeRequiredNotes
relatedIdsstring[]Yes1–24 items; each up to 40 characters
type"task" | "call" | "meeting" | "note" | "email"Yes
subjectstringYes1–255 characters
bodystringNoup to 32,000 characters
dueDatestringNomatches ^\d{4}-\d{2}-\d{2}$
startAtstringNoup to 40 characters
durationMinutesintegerNo0–100000
status"open" | "completed"No

crm_pipeline_summary

The sales pipeline at a glance: open opportunities by stage (count, amount, weighted), won and lost this month and the last six months, per pipeline, and how many records each object has.

Scope: crm:read · read-only

No arguments.

marketing_segments_list

The organization's Marketing segments (saved audiences over contacts and leads): ids, names, their groups' filters and the last size estimate.

Scope: marketing:read · read-only

No arguments.

marketing_segment_get

One segment: its groups (Customers filters, engagement and list conditions) and the last size estimate.

Scope: marketing:read · read-only

ArgumentTypeRequiredNotes
segmentIdstringYes1–60 characters

marketing_segment_estimate

Counts a segment's people (each address once) in the background and returns the segment: counting while it runs, then estimate. Read it again with marketing_segment_get for the result.

Scope: marketing:read · read-only

ArgumentTypeRequiredNotes
segmentIdstringYes1–60 characters
channel"email" | "sms"No

marketing_lists_list

Marketing lists: static lists and suppression lists (never sent to), by channel, with member counts.

Scope: marketing:read · read-only

No arguments.

marketing_campaigns_list

Marketing campaigns, newest first: status (draft, waiting for approval, scheduled, sending, sent, paused, cancelled), topic, schedule and, once sending started, their numbers. Returns a cursor for the next page.

Scope: marketing:read · read-only

ArgumentTypeRequiredNotes
status"draft" | "pendingApproval" | "approved" | "scheduled" | "sending" | "sent" | "paused" | "cancelled" | "failed"No
limitintegerNo1–100
cursorstringNoup to 2,000 characters

marketing_campaign_get

One campaign and its results: audience, topic, approval, schedule, send progress and numbers (sent, delivered, opened, clicked, bounced, complained, unsubscribed, skipped, conversions, revenue).

Scope: marketing:read · read-only

ArgumentTypeRequiredNotes
campaignIdstringYes1–60 characters

marketing_journeys_list

Marketing journeys: status (draft, running, paused, stopped), the live version and how many people entered, are in them, completed and reached the goal.

Scope: marketing:read · read-only

No arguments.

marketing_journey_get

One journey: its draft (entry, re-entry, goal and steps), versions, approval, and its numbers: totals, each step's (entered, completed, exited, goal) and each email and text step's sends.

Scope: marketing:read · read-only

ArgumentTypeRequiredNotes
journeyIdstringYes1–60 characters

An email address's or mobile number's Marketing consent: status (subscribed, pending, unsubscribed, bounced, complained), each topic's choice, and the history of changes with their evidence.

Scope: marketing:read · read-only

ArgumentTypeRequiredNotes
addressstringYes3–254 characters

marketing_stats_daily

The organization's Marketing numbers per UTC day and their totals: emails sent, delivered, opened, clicked, bounced, unsubscribed, conversions and revenue, texts, form submissions, journey entries and page views. Days are YYYYMMDD (the last 30 by default, 400 at most).

Scope: marketing:read · read-only

ArgumentTypeRequiredNotes
fromstringNomatches ^\d{8}$
tostringNomatches ^\d{8}$

marketing_forms_list

Marketing forms (web-to-lead): what they create, whether they're open, and their submissions and the spam they turned away.

Scope: marketing:read · read-only

No arguments.

marketing_campaign_create

Drafts a campaign: a name, a topic id (from the settings' topics), an audience (segments and lists to include and exclude) and content (a block document, or a template id). It's only a draft: a person reviews, schedules and sends it in the Marketing app.

Scope: marketing:write

ArgumentTypeRequiredNotes
namestringYes1–120 characters
topicIdstringYes1–60 characters
include(object | object)[]Yesup to 20 items
exclude(object | object)[]Noup to 20 items
documentobjectNo
document.subjectstringYesup to 200 characters
document.preheaderstringNoup to 250 characters
document.blocksobject[]Yesup to 200 items; each values: any JSON
templateIdstringNo1–60 characters

marketing_campaign_request_approval

Asks the organization's approvers to approve a draft campaign as it stands (when the organization requires approvals). It never schedules or sends: once approved, a person schedules it in the Marketing app. Pass the version you read.

Scope: marketing:write

ArgumentTypeRequiredNotes
campaignIdstringYes1–60 characters
versionintegerYes≥ 0

marketing_journey_create

Drafts a journey with a name and description (and optionally a definition: entry, re-entry, goal and steps). It's only a draft: a person builds it on the canvas and publishes it in the Marketing app.

Scope: marketing:write

ArgumentTypeRequiredNotes
namestringYes1–120 characters
descriptionstringNoup to 500 characters
definitionobjectNovalues: any JSON

aircraft_find

Where is an aircraft now: by ICAO hex (7C6B2D), registration (VH-ABC) or callsign (QFA1). Answers from the live flight picture (areas being watched or viewed); an aircraft outside them falls back to its recorded track when a watch covers it.

Scope: maps:read · read-only

ArgumentTypeRequiredNotes
querystringYes2–16 characters

aircraft_track

Recorded track of a watched aircraft over the last hours (positions every ~10 s while a watch covers it): start, end, distance and sampled points.

Scope: maps:read · read-only

ArgumentTypeRequiredNotes
hexstringYesmatches ^[0-9a-fA-F]{6}$
hoursnumberNo0.25–24

flight_watches_list

Flight watches you can see, with targets, areas, which events notify, and when each last fired.

Scope: maps:read · read-only

No arguments.

flight_logs_list

Flights a watch logged (each airframe by ICAO hex): when, start and end, distance, highest altitude, roads followed and events. Newest first.

Scope: maps:read · read-only

ArgumentTypeRequiredNotes
watchIdstringYesup to 40 characters
hexstringNoup to 8 characters
limitintegerNo1–100

flight_log_get

One logged flight: its events and road spans with a sampled track, or the whole track as a GPX, KML or CSV file (format).

Scope: maps:read · read-only

ArgumentTypeRequiredNotes
watchIdstringYesup to 40 characters
flightIdstringYesup to 40 characters
format"summary" | "gpx" | "kml" | "csv"No

flight_watch_events

Recent events of a flight watch (takeoffs, landings, signal lost or back, areas, orbits, roads followed, thresholds), newest first.

Scope: maps:read · read-only

ArgumentTypeRequiredNotes
watchIdstringYesup to 40 characters
limitintegerNo1–100

maps_locations_list

The org's alert locations (bases, hospitals, airfields): name, position and on-site radius. Watches alert near one with near: { location: <locationId>, radiusKm }.

Scope: maps:read · read-only

No arguments.

my_location_status

Whether your phone shares its location with Maps for near-me alerts (from the Maps app): phones, background or not, and until when the current fix counts. Never returns coordinates.

Scope: maps:read · read-only

No arguments.

flight_watch_create

Scope: maps:write

ArgumentTypeRequiredNotes
namestringYes1–120 characters
hexstringNoup to 8 characters
registrationstringNoup to 16 characters
callsignstringNoup to 16 characters
typestringNoup to 8 characters
anyAircraftbooleanNo
aircraftClass"helicopter" | "light" | "turboprop" | "jet" | "heavy" | "glider" | "balloon" | "drone"No
presetstringNoup to 40 characters
nearobjectNo
near.locationstringYes2–40 characters
near.radiusKmnumberNo0.2–100
userIdsstring[]Noup to 50 items; each up to 60 characters
excludeobject[]Noup to 20 items
exclude[].kind"hex" | "registration" | "callsign" | "type"Yes
exclude[].valuestringYes1–16 characters
areastringNoup to 40 characters
eventsstring[]Noup to 16 items
channels[]No
groupIdsstring[]Noup to 10 items; each up to 40 characters
roadRepeatMinutesintegerNo0–240
visibility"private" | "org"No
pinFirstMatchbooleanNo
untilstringNoup to 40 characters
forHoursnumberNo0.25–87600
maxNotificationsintegerNo1–1000000
maxFlightsintegerNo1–100000
scheduleDaysinteger[]Noup to 7 items; each 0–6
scheduleStartstringNoup to 5 characters
scheduleEndstringNoup to 5 characters
timeZonestringNoup to 64 characters
logFlightsbooleanNo
logRetentionDaysintegerNo0–3650

circling_alert_create

Alert when aircraft circle or hold somewhere (searching, orbiting, holding), below 5,000 ft and ignoring airfield circuits within 3 km. where: a preset area (area), a circle, an org location (locationId) or near you (nearMe, your phone's location in the Maps app; to you only). aircraft: "any", a class (e.g. helicopter), { preset } or { callsign }; noCallsignOnly limits it to aircraft broadcasting no callsign. sensitivity: sensitive (0.75 turns within 3 km in 10 min), normal (1 turn, 2 km, 8 min; the default) or strict (2 turns, 1.5 km, 8 min), or explicit numbers. Alerts go by mobile and web push; add sms to channels to text them too.

Scope: maps:write

ArgumentTypeRequiredNotes
namestringYes1–120 characters
whereobjectYes
where.areastringNoup to 40 characters
where.circleobjectNo
where.circle.latnumberYes-90–90
where.circle.lonnumberYes-180–180
where.circle.radiusKmnumberYes0.5–250
where.locationIdstringNoup to 40 characters
where.nearMeobjectNo
where.nearMe.radiusKmnumberYes0.5–50
aircraft"any" | "helicopter" | "light" | "turboprop" | "jet" | "heavy" | "glider" | "balloon" | "drone" | object | objectYes
noCallsignOnlybooleanNo
sensitivity | objectNo
channels[]No
smsEventsstring[]Noup to 16 items
groupIdsstring[]Noup to 10 items; each up to 40 characters
userIdsstring[]Noup to 50 items; each up to 60 characters
quietHoursobjectNo
quietHours.startstringYesup to 5 characters
quietHours.endstringYesup to 5 characters
quietHours.timeZonestringYesup to 64 characters

maps_location_create

Add an org alert location (a base, a hospital, an airfield): name, lat, lon and the on-site radius in metres (50–5,000; default 300). Watches then alert near it; someone on site gets one alert, the location's.

Scope: maps:write

ArgumentTypeRequiredNotes
namestringYes1–120 characters
latnumberYes-90–90
lonnumberYes-180–180
siteRadiusMintegerNo50–5000
addressstringNoup to 400 characters
notestringNoup to 2,000 characters

maps_location_update

Change an org alert location (its owner or an org admin). Moving it moves every watch that uses it.

Scope: maps:write

ArgumentTypeRequiredNotes
locationIdstringYesup to 40 characters
namestringNo1–120 characters
latnumberNo-90–90
lonnumberNo-180–180
siteRadiusMintegerNo50–5000
addressstringNoup to 400 characters
notestringNoup to 2,000 characters

maps_location_delete

Delete an org alert location (its owner or an org admin). Refused while watches use it; the error names them.

Scope: maps:write

ArgumentTypeRequiredNotes
locationIdstringYesup to 40 characters

my_location_delete

Delete your location from Maps: every phone's current fix, the phones sharing and their keys. Near-me alerts wait until the Maps app shares again.

Scope: maps:write · destructive

No arguments.

flight_watch_pause

Pause a flight watch (nothing is evaluated or sent) or resume it with paused: false.

Scope: maps:write

ArgumentTypeRequiredNotes
watchIdstringYesup to 40 characters
pausedbooleanNo

flight_watch_restart

Start an ended flight watch again (after its end time, notification or flight limit) with its counters at zero.

Scope: maps:write

ArgumentTypeRequiredNotes
watchIdstringYesup to 40 characters

incidents_list

Current emergency incidents and warnings in Australia from the state agencies' public feeds (VicEmergency, NSW RFS, Queensland Fire Department, ACT ESA): Australian Warning System level, hazard, status, what to do and the agency's page. Filter by hazards, minimum level, state or a bounding box; near sorts by distance. Always point people to the official source for decisions.

Scope: maps:read · read-only

ArgumentTypeRequiredNotes
nearobjectNo
near.latnumberYes
near.lonnumberYes
bboxobjectNo
bbox.westnumberYes
bbox.southnumberYes
bbox.eastnumberYes
bbox.northnumberYes
hazards("bushfire" | "grass_fire" | "burn_off" | "structure_fire" | "vehicle_fire" | "fire" | "flood" | "storm" | "cyclone" | "tree_down" | "heat" | "tsunami" | "earthquake" | "landslide" | "hazmat" | "smoke" | "rescue" | "medical" | "accident" | "power" | "animal" | "other")[]No
minLevel"none" | "advice" | "watch_and_act" | "emergency_warning"No
state"ACT" | "NSW" | "NT" | "QLD" | "SA" | "TAS" | "VIC" | "WA"No
limitintegerNo1–100

incident_get

One incident or warning by id (from incidents_list): everything the agency says, and its history of level and status changes. Ended ones return their last version.

Scope: maps:read · read-only

ArgumentTypeRequiredNotes
incidentIdstringYesup to 200 characters

watch_zones_list

Watch zones in Maps: areas where emergency incidents and warnings alert people (by push, email or text), with their hazards, minimum level and status.

Scope: maps:read · read-only

No arguments.

watch_zone_events

Recent alerts of a watch zone, newest first, with what was sent.

Scope: maps:read · read-only

ArgumentTypeRequiredNotes
zoneIdstringYesup to 40 characters
limitintegerNo1–100

watch_zone_create

Make a watch zone that alerts on emergency incidents and warnings in Australia: areas (a circle around a point, an org location, your phone's location with near_me, a drawn polygon or a whole state), hazards, minimum warning level and which changes alert (new, escalated, downgraded, closed, updated). Channels default to push and email, plus texts when you have a verified number.

Scope: maps:write

ArgumentTypeRequiredNotes
namestringYes1–120 characters
areasobject[]Yes1–10 items
areas[].kind"circle" | "location" | "near_me" | "state" | "polygon"Yes
areas[].latnumberNo-90–90
areas[].lonnumberNo-180–180
areas[].radiusKmnumberNo0.5–500
areas[].locationIdstringNoup to 40 characters
areas[].state"ACT" | "NSW" | "NT" | "QLD" | "SA" | "TAS" | "VIC" | "WA"No
areas[].ringobject[]No3–500 items
areas[].ring[].latnumberYes
areas[].ring[].lonnumberYes
areas[].labelstringNoup to 80 characters
hazards("bushfire" | "grass_fire" | "burn_off" | "structure_fire" | "vehicle_fire" | "fire" | "flood" | "storm" | "cyclone" | "tree_down" | "heat" | "tsunami" | "earthquake" | "landslide" | "hazmat" | "smoke" | "rescue" | "medical" | "accident" | "power" | "animal" | "other")[]No
minLevel"none" | "advice" | "watch_and_act" | "emergency_warning"No
events("new" | "escalated" | "downgraded" | "closed" | "updated")[]No
channels("mobile" | "web" | "email" | "sms" | "call")[]No
smsMinLevel"none" | "advice" | "watch_and_act" | "emergency_warning"No
groupIdsstring[]Noup to 10 items; each up to 40 characters
userIdsstring[]Noup to 50 items; each up to 60 characters
visibility"private" | "org"No

watch_zone_update

Change a watch zone (its owner, or an org admin for org zones): fields given replace the current ones.

Scope: maps:write

ArgumentTypeRequiredNotes
zoneIdstringYesup to 40 characters
namestringNo1–120 characters
areasobject[]No1–10 items
areas[].kind"circle" | "location" | "near_me" | "state" | "polygon"Yes
areas[].latnumberNo-90–90
areas[].lonnumberNo-180–180
areas[].radiusKmnumberNo0.5–500
areas[].locationIdstringNoup to 40 characters
areas[].state"ACT" | "NSW" | "NT" | "QLD" | "SA" | "TAS" | "VIC" | "WA"No
areas[].ringobject[]No3–500 items
areas[].ring[].latnumberYes
areas[].ring[].lonnumberYes
areas[].labelstringNoup to 80 characters
hazards("bushfire" | "grass_fire" | "burn_off" | "structure_fire" | "vehicle_fire" | "fire" | "flood" | "storm" | "cyclone" | "tree_down" | "heat" | "tsunami" | "earthquake" | "landslide" | "hazmat" | "smoke" | "rescue" | "medical" | "accident" | "power" | "animal" | "other")[]No
minLevel"none" | "advice" | "watch_and_act" | "emergency_warning"No
events("new" | "escalated" | "downgraded" | "closed" | "updated")[]No
channels("mobile" | "web" | "email" | "sms" | "call")[]No
smsMinLevel"none" | "advice" | "watch_and_act" | "emergency_warning"No
groupIdsstring[]Noup to 10 items; each up to 40 characters
userIdsstring[]Noup to 50 items; each up to 60 characters
visibility"private" | "org"No

watch_zone_pause

Pause a watch zone (no alerts) or resume it with paused: false.

Scope: maps:write

ArgumentTypeRequiredNotes
zoneIdstringYesup to 40 characters
pausedbooleanNo

watch_zone_delete

Delete a watch zone (its owner, or an org admin for org zones). Its alert history expires on its own.

Scope: maps:write · destructive

ArgumentTypeRequiredNotes
zoneIdstringYesup to 40 characters

tenant_overview

The organization's tenant overview: properties, member counts, the sign-in policy and security recommendations (members without a passkey or two-step sign-in, old invites, expiring keys and secrets).

Scope: tenant:read · read-only

No arguments.

tenant_users_list

List the organization's members with role, title, department, status (active or blocked), guest access, groups, passkeys and last sign-in; and pending invites. Filter by text, role, status, sign-in age or two-step.

Scope: tenant:read · read-only

ArgumentTypeRequiredNotes
qstringNoup to 200 characters
role"owner" | "admin" | "developer" | "viewer"No
status"active" | "blocked" | "guest" | "member"No
signIn"never" | "30d" | "90d"No
mfa"yes" | "no"No

tenant_user_get

One member in detail: groups, browser sessions, keys they created, app assignments and recent sign-ins.

Scope: tenant:read · read-only

ArgumentTypeRequiredNotes
userIdstringYes1–64 characters

tenant_groups_list

List the organization's groups with their size, owners and the roles they grant.

Scope: tenant:read · read-only

No arguments.

tenant_group_get

One group: members and owners, granted roles, Serverless App Service and repository access, and app assignments.

Scope: tenant:read · read-only

ArgumentTypeRequiredNotes
teamIdstringYes1–64 characters

tenant_roles_list

Built-in and custom roles with their scopes, and the members and groups holding each.

Scope: tenant:read · read-only

No arguments.

tenant_sign_ins

Members' sign-ins and failed sign-ins, newest first: method, address, approximate place and device.

Scope: tenant:read · read-only

ArgumentTypeRequiredNotes
userIdstringNoup to 64 characters
result"success" | "failure"No
cursorstringNoup to 4,096 characters

tenant_policy_get

The organization's sign-in policy and the members it would leave without access.

Scope: tenant:read · read-only

No arguments.

tenant_invite

Invite someone to the organization by email. The invite is mailed; the link is returned to share. Guests (external people) can be developers or viewers, with an access lifetime in days.

Scope: tenant:write

ArgumentTypeRequiredDefaultNotes
emailstringYesemail address
role"owner" | "admin" | "developer" | "viewer"No"developer"
titlestringNoup to 100 characters
departmentstringNoup to 100 characters
guestbooleanNo
guestDaysintegerNo
teamIdsstring[]Noup to 20 items; each up to 64 characters

tenant_user_update

Change a member's role, title or department. Only owners change owners; nobody assigns a role above their own.

Scope: tenant:write

ArgumentTypeRequiredNotes
userIdstringYes1–64 characters
role"owner" | "admin" | "developer" | "viewer"No
titlestringNoup to 100 characters; can be null
departmentstringNoup to 100 characters; can be null

tenant_user_block

Block a member's sign-in to this organization: no new tokens, and current ones stop within 30 seconds. They stay a member.

Scope: tenant:write · destructive

ArgumentTypeRequiredNotes
userIdstringYes1–64 characters
reasonstringNoup to 200 characters

tenant_user_unblock

Unblock a member's sign-in; they sign in again to reach the organization.

Scope: tenant:write

ArgumentTypeRequiredNotes
userIdstringYes1–64 characters

tenant_user_revoke_sessions

End a member's sessions for this organization (they sign in again) and disconnect their MCP clients here; keys also revokes keys they created here.

Scope: tenant:write · destructive

ArgumentTypeRequiredDefaultNotes
userIdstringYes1–64 characters
keysbooleanNofalse

tenant_group_member_set

Add a member to a group, make them a group owner, or take them out (role null).

Scope: tenant:write

ArgumentTypeRequiredNotes
teamIdstringYes1–64 characters
userIdstringYes1–64 characters
role"owner" | "member"Yescan be null

databases_list

The organization's databases (DynamoDB tables): id, name, region and linked Serverless App Service.

Scope: resources:read · read-only

No arguments.

database_describe

Key schema, indexes, status and approximate item count of a database.

Scope: resources:read · read-only

ArgumentTypeRequiredNotes
resourceIdstringYes

database_query

Query a database (or one of its indexes) by partition key, with an optional sort key condition and filters. Returns at most limit items and a cursor for the next page. Values are typed DynamoDB JSON.

Scope: resources:read · read-only

ArgumentTypeRequiredDefaultNotes
resourceIdstringYes
indexstringNoup to 255 characters
partitionobject | object | object | object | objectYes
sortobjectNo
sort.op"=" | "<" | "<=" | ">" | ">=" | "begins_with" | "between"Yes
sort.valueobject | object | object | object | objectYes
sort.value2object | object | object | object | objectNo
filtersobject[]No[]up to 10 items
filters[].attributestringYes1–255 characters
filters[].op"=" | "<>" | "<" | "<=" | ">" | ">=" | "begins_with" | "contains" | "between" | "exists" | "not_exists"Yes
filters[].valueobject | object | object | object | objectNo
filters[].value2object | object | object | object | objectNo
match"all" | "any"No"all"
limitintegerNo251–100
forwardbooleanNotrue
cursorstringNoup to 8,000 characters

database_scan

Scan a database page by page, optionally with filters. Prefer database_query when you know the partition key.

Scope: resources:read · read-only

ArgumentTypeRequiredDefaultNotes
resourceIdstringYes
indexstringNoup to 255 characters
filtersobject[]No[]up to 10 items
filters[].attributestringYes1–255 characters
filters[].op"=" | "<>" | "<" | "<=" | ">" | ">=" | "begins_with" | "contains" | "between" | "exists" | "not_exists"Yes
filters[].valueobject | object | object | object | objectNo
filters[].value2object | object | object | object | objectNo
match"all" | "any"No"all"
limitintegerNo251–100
cursorstringNoup to 8,000 characters

database_item_get

Read one item by its key (strongly consistent).

Scope: resources:read · read-only

ArgumentTypeRequiredNotes
resourceIdstringYes
keyobjectYesvalues: any JSON

buckets_list

The organization's buckets (S3): id, name, region and linked Serverless App Service.

Scope: resources:read · read-only

No arguments.

bucket_list

List one folder of a bucket: subfolders and files (key, size, last modified). prefix is a folder path ending in / (empty for the root).

Scope: resources:read · read-only

ArgumentTypeRequiredDefaultNotes
resourceIdstringYes
prefixstringNo""up to 1,024 characters
cursorstringNoup to 2,048 characters
limitintegerNo1001–1000

bucket_download_url

A link that downloads one file for the next 5 minutes.

Scope: resources:read · read-only

ArgumentTypeRequiredNotes
resourceIdstringYes
keystringYesup to 1,024 characters

database_item_put

Create an item (an existing key is an error), or with replace replace the existing item with the same key (a missing one is an error).

Scope: resources:write

ArgumentTypeRequiredDefaultNotes
resourceIdstringYes
itemobjectYesvalues: any JSON
replacebooleanNofalse

database_item_delete

Delete one item by its key.

Scope: resources:write · destructive

ArgumentTypeRequiredNotes
resourceIdstringYes
keyobjectYesvalues: any JSON

bucket_upload_url

A link (15 minutes) to upload one file with an HTTP PUT, up to 5 GB. Send the same Content-Type header as contentType.

Scope: resources:write

ArgumentTypeRequiredNotes
resourceIdstringYes
keystringYesup to 1,024 characters
contentTypestringNoup to 255 characters
sizeintegerYes≥ 0

bucket_delete

Delete files (keys) and folders (prefixes ending in /, with everything in them). done: false means call again to finish large folders.

Scope: resources:write · destructive

ArgumentTypeRequiredDefaultNotes
resourceIdstringYes
keysstring[]No[]up to 1,000 items; each up to 1,024 characters
prefixesstring[]No[]up to 100 items; each up to 1,024 characters

project_traffic

Traffic of the organization's deployments (or one Serverless App Service's): requests, bandwidth, status classes, cache hits, p50/p95 latency, a series over the range and top paths, countries and deployments. Rolled up hourly from edge logs.

Scope: analytics:read · read-only

ArgumentTypeRequiredDefaultNotes
range"24h" | "7d" | "30d" | "90d"No"24h"
projectIdstringNomatches ^prj_[0-9a-z]{10,40}$

keys_list

Keys that protect the organization's data (with keys:read: Drive, secrets, connectors and integrations too) and its own keys for encrypting and signing: id, name, what it protects, algorithm, current version, uses in the last 30 days. Never key material.

Scope: none, every key gets it · read-only · Also checks: keys:read

No arguments.

key_get

One key by id (ck_…) or name: versions still in use, created, last rotated, last used, uses in the last 30 days, rotation schedule and recent re-encryption jobs. Never key material.

Scope: none, every key gets it · read-only

ArgumentTypeRequiredNotes
keystringYes1–100 characters

keys_encrypt

Encrypts up to 64 KB with one of the organization's aes-256-gcm keys. Returns a ciphertext (k1.…) to store; keys_decrypt opens it.

Scope: keys:use

ArgumentTypeRequiredDefaultNotes
keystringYes1–100 characters
plaintextstringYesup to 90,000 characters
encoding"utf8" | "base64"No"utf8"
contextobjectNokeys 1–128 characters; values: string (up to 1,024 characters)

keys_decrypt

Decrypts a ciphertext (k1.…) made with one of the organization's keys, with the context it was encrypted with.

Scope: keys:use

ArgumentTypeRequiredDefaultNotes
ciphertextstringYes1–200,000 characters
encoding"utf8" | "base64"No"utf8"
contextobjectNokeys 1–128 characters; values: string (up to 1,024 characters)

keys_sign

Signs up to 64 KB with one of the organization's ed25519 or ecdsa-p256 keys. Returns a signature (k1s.…).

Scope: keys:use

ArgumentTypeRequiredDefaultNotes
keystringYes1–100 characters
messagestringYesup to 90,000 characters
encoding"utf8" | "base64"No"utf8"

keys_verify

Checks a signature (k1s.…) from keys_sign against a message. Returns valid: true or false.

Scope: keys:use · read-only

ArgumentTypeRequiredDefaultNotes
messagestringYesup to 90,000 characters
signaturestringYes1–2,000 characters
encoding"utf8" | "base64"No"utf8"

secrets_list

Secrets (sensitive environment variables) of a Serverless App Service, or the organization's shared ones: name, environments, version, rotation reminder and when it's due. Never values.

Scope: env:read · read-only

ArgumentTypeRequiredNotes
projectstringNoup to 100 characters

secret_get

A secret's value, only if its access rule lets the caller read it (owners and admins, plus the roles and groups it names). Every read is in the audit log. Prefer not to repeat values back unless asked.

Scope: env:read · Also checks: env:write

ArgumentTypeRequiredNotes
projectstringNoup to 100 characters
keystringYes1–256 characters

secret_set

Sets a secret (a sensitive environment variable) to a new value: a new version, for the given environments (default all three). Takes effect on the next deployment.

Scope: env:write

ArgumentTypeRequiredNotes
projectstringNoup to 100 characters
keystringYes1–256 characters
valuestringYesup to 65,536 characters
targets("production" | "preview" | "development")[]Noat least 1 item

connectors_list

Remote MCP servers connected to this organization and the tool names they add here.

Scope: connectors:read · read-only

No arguments.

Connector tools

With connectors:read, every enabled connector adds its cached tools, named <slug>__<tool>: the connector's slug, two underscores, and the tool's own name with characters other than letters, digits, _ and - replaced by _, cut at 64 characters. Their descriptions and arguments are the connector's own.

At most 200 connector tools are added per key, from the oldest connector on. If two tools end up with the same name, the first keeps it.