snoozestackdocs

MCP tool catalogue

This is the complete list of tools an AI client is offered when it connects to a project's management MCP endpoint — the answer to “what can the agent actually see and do?” before you hand it a token. Each entry says what the tool is for in plain terms and whether it only observes the project or changes it; the parameters and an example call are a click further down.

It is a list of what the endpoint exposes to an agent, not of everything snoozestack can do. Operations kept off it on purpose — deleting the project, inviting members, minting tokens — are covered under what a token can't do. If it isn't on this page, an agent holding a token has no way to do it.

How to read it

Every tool carries one of three access types, the same annotation the endpoint sends to clients so they can confirm a deletion and not a read:

  • read — only looks. Logs, the schema, the user list, analytics. Calling it changes nothing.
  • write — creates or updates something: a schedule, a secret value, a bucket's visibility, an auth setting. Reversible by another change.
  • destroy — removes something, and the endpoint offers no way to get it back. 15 of the tools are this kind; they are the ones to weigh before giving an agent a token for a project with real data.

The counts on the filter chips are the shape of the whole surface: of 80 tools, 40 only read. A token is scoped to one project, so every tool here acts on the project the token was made for and no other.

Project#

The project as a whole: its connection details, the publish history, and the logs and audit trail that say what has happened to it.

project_info read Connection details for this project: its API URL, publishable and service keys, primary website and auth settings. Start here when wiring an app to the project.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
project_info()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the organizations-projects-sources page — the same page an agent is pointed at in the tool's own description.

logs_read read Recent log output: "runtime" is the project's container (functions, auth, storage — one process, one log); "queues" and "sites" are the queue-trigger and website activity the portal logs for it.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
service requiredstringWhich log to tail One of: runtime, queues, sites
linesintegerHow many lines (default 200, max 1000)
Example
logs_read({ "service": "runtime" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the logs page — the same page an agent is pointed at in the tool's own description.

audit_list read Recent changes to this project and who made them — from the portal, the CLI, or an AI agent (credited to its MCP token's name). Newest first. Use it to see what has already been changed before changing more, or to explain how the project got into its current state. Reads are not recorded, so this call does not appear in its own results.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
areastringNarrow to one part of the project One of: auth, storage, functions, sites, domains, database, queues, signals, project
actorstringNarrow to where the change came from One of: portal, cli, mcp
Example
audit_list()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the portal-tour page — the same page an agent is pointed at in the tool's own description.

releases_list read The project's releases, newest first: every immutable package a `snoozestack publish` cut and deployed to production — its number, who published it, what it contains, what it dropped from the database (with how many values each dropped column or table held), and whether it is live. This reads history; it does not trigger a publish.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
releases_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the releases page — the same page an agent is pointed at in the tool's own description.

release_get read One release in full: its manifest (artifact ids, a sha256 per file, the schema plan against the release production served when it was published, what it dropped, the declarations it applies, provenance), what it changed against that release, and every deployment of it.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
release requiredstringRelease number ("12") or id, from releases_list
Example
release_get({ "release": "<Release number (\"12\") or id, from releases_list>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the releases page — the same page an agent is pointed at in the tool's own description.

release_deploy write Deploy a recorded release to production again — `snoozestack publish --release <n>`. The exact package, by artifact id, never a rebuild: the runtime and site pointers move, then the package's queues, triggers, webhooks, notification services, schedules and auth declarations are applied in the manifest's order. An older release than the live one is a rollback, recorded as one. A rollback restores code, not data: the schema stays where it is, and nothing a later release added is dropped.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
release requiredstringRelease number or id from releases_list
Example
release_deploy({ "release": "<Release number or id from releases_list>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the releases page — the same page an agent is pointed at in the tool's own description.

deployments_list read Every deployment of this project, newest first: each publish and rollback — which release went live, from which, who did it, and how production answered afterwards.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
deployments_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the releases page — the same page an agent is pointed at in the tool's own description.

previews_list read The project's previews: one per person who has run `snoozestack preview`, named after them (preview-@<handle>) — its URL, its state (building / ready / failed / expired / cleaned) and how long until it expires. A preview expires thirty minutes after it last came up.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
previews_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the releases page — the same page an agent is pointed at in the tool's own description.

preview_status read One preview's status: whose it is, URL, health, seed outcome and anonymization policy, the schema plan against production, and expiry. Reading it also probes a preview that is still building.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
name requiredstringPreview name, from previews_list
Example
preview_status({ "name": "<Preview name, from previews_list>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the releases page — the same page an agent is pointed at in the tool's own description.

preview_delete destroy Clean a preview up now instead of at expiry: its container, data, queues, schedule rows and secret overrides are removed. Releases are never touched.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
name requiredstringPreview name
Example
preview_delete({ "name": "<Preview name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the releases page — the same page an agent is pointed at in the tool's own description.

preview_outbox read The email a preview's runtime tried to send — captured, never delivered — so a sign-up link or confirmation can be followed without a real inbox.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
name requiredstringPreview name
Example
preview_outbox({ "name": "<Preview name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the releases page — the same page an agent is pointed at in the tool's own description.

Database#

The tables the runtime built from schema.mjs — their shape, not their contents. No tool here reads or changes a row: an app reaches rows only through a function, and a developer reads them on the control plane with "snoozestack data" under their own login or a project service token.

tables_list read Every table the project's runtime currently holds, with its columns and row count — the shape schema.mjs produced, read back from the running database.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
tables_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the database page — the same page an agent is pointed at in the tool's own description.

Functions, schedules & secrets#

What the runtime is serving, the cron timers that invoke it, and the secret values functions read. Function code itself is published from the repo, not through a tool.

functions_list read The functions the project's runtime is serving right now — each with its path, auth mode (public / optional / required), declared capabilities and the secrets it may read. This is what the last `snoozestack publish` put live; the source lives in the project's repo under snoozestack/functions/<name>/.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
functions_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

schedules_list read Cron schedules that invoke this project's functions, in one namespace. Only the default namespace's schedules ever auto-fire on the shared cron sweep — a preview's schedules only ever run via schedule_run.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
schedules_list()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

schedule_create write Invoke a function on a UTC cron timer (five fields: minute hour day month weekday). Only a "default"-namespace schedule ever auto-fires — one created in a preview namespace sits idle until schedule_run.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
name requiredstringSchedule name
function_name requiredstringFunction to invoke
cron requiredstringCron expression, e.g. "0 * * * *"
payloadobjectJSON body POSTed to the function on each run
enabledbooleanStart enabled (default true)
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
schedule_create({ "name": "<Schedule name>", "function_name": "<Function to invoke>", "cron": "0 * * * *" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

schedule_update write Change a schedule's function, cron, payload, or enabled state.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
name requiredstringSchedule name
function_namestringFunction to invoke
cronstringCron expression
payloadobjectJSON body POSTed to the function
enabledbooleanEnable or disable it
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
schedule_update({ "name": "<Schedule name>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

schedule_run write Fire a schedule immediately, off-cycle. Returns the run's result. The one way to run a non-default-namespace schedule at all, since only default auto-fires.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
name requiredstringSchedule name
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
schedule_run({ "name": "<Schedule name>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

schedule_delete destroy Delete a schedule — its function stops firing on that timer.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
name requiredstringSchedule name
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
schedule_delete({ "name": "<Schedule name>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

secrets_list read Names of the project's secrets and which namespaces override each — the values a function reads through its `secrets` capability. Values are never returned.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
secrets_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

secrets_set write Set one or more secret values. Running runtimes pick a new value up at their next start; the declaration (which functions may read it) is project.toml's [[secrets]], not this call.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
secrets requiredobjectName → value, e.g. {"STRIPE_KEY": "sk_live_…"}
Example
secrets_set({ "secrets": {"STRIPE_KEY": "sk_live_…"} })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

secrets_unset destroy Remove a secret's value. The name stays declared in project.toml until the file changes.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
name requiredstringSecret name
Example
secrets_unset({ "name": "<Secret name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the functions page — the same page an agent is pointed at in the tool's own description.

Queues, triggers & notifications#

Message queues, what runs when a message lands, the webhook URLs that enqueue one, and the push notification services a trigger can deliver through.

queues_list read Message queues with approximate message counts, in one namespace.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
queues_list()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

queue_create write Create a message queue.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
name requiredstringQueue name
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
queue_create({ "name": "<Queue name>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

queue_send write Enqueue a message — useful for smoke-testing a queue and its triggers.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
name requiredstringQueue name
body requiredstringMessage body
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
queue_send({ "name": "<Queue name>", "body": "<Message body>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

queue_delete destroy Delete a queue and every message in it.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
name requiredstringQueue name
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
queue_delete({ "name": "<Queue name>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

triggers_list read Queue triggers — what runs for messages on which queue (functions, a notification service, or both), and how the last run went.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
triggers_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

trigger_create write Process every message drained from a queue: invoke functions, send it as a push notification, or both. At least one destination is required. A message is removed only once every destination succeeded.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
name requiredstringTrigger name
queue_name requiredstringQueue to drain
function_namesstring[]Functions to invoke, in order
notification_servicestringNotification service to push through
Example
trigger_create({ "name": "<Trigger name>", "queue_name": "<Queue to drain>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

trigger_update write Change a trigger's destinations or enabled state.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
name requiredstringTrigger name
function_namesstring[]Replacement function list
notification_servicestringNotification service to push through
enabledbooleanEnable or disable it
Example
trigger_update({ "name": "<Trigger name>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

trigger_delete destroy Delete a queue trigger.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
name requiredstringTrigger name
Example
trigger_delete({ "name": "<Trigger name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

webhooks_list read Public inbound URLs that write to a queue.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
webhooks_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

webhook_create write Create a public URL that writes every POST straight to a queue. Add a trigger on the same queue to process the messages.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
name requiredstringWebhook name
queue_name requiredstringQueue it writes to
Example
webhook_create({ "name": "<Webhook name>", "queue_name": "<Queue it writes to>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

webhook_delete destroy Delete a webhook — its public URL stops accepting messages.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
name requiredstringWebhook name
Example
webhook_delete({ "name": "<Webhook name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

notification_services_list read Push destinations a trigger can send through, with the Apple team, key and bundle IDs each one signs with (never the .p8 itself).
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
notification_services_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

notification_service_enable write Turn on push notifications. Takes no credentials: APNs signs with the project's existing Apple sign-in key. That key and the App ID must both have the APNs capability ticked in Apple's developer portal, which only the account holder can do.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
namestringService name (default "apple")
Example
notification_service_enable()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

notification_service_delete destroy Turn off a push destination. Triggers using it stop sending; the Apple key itself is untouched.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
name requiredstringService name
Example
notification_service_delete({ "name": "<Service name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

push_devices read Registered push devices: active/retired counts, a breakdown by APNs environment, and recent registrations (tokens truncated).
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
push_devices()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the queues page — the same page an agent is pointed at in the tool's own description.

Storage#

Buckets, the objects in them, and signed URLs for reaching private ones.

buckets_list read Storage buckets and whether each is public, in one namespace.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
buckets_list()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the storage page — the same page an agent is pointed at in the tool's own description.

objects_list read Files in a bucket, optionally under a path prefix.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
bucket requiredstringBucket name
prefixstringPath prefix, e.g. "avatars/"
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
objects_list({ "bucket": "<Bucket name>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the storage page — the same page an agent is pointed at in the tool's own description.

object_upload write Upload a file to a bucket. Pass base64 for binary content.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
bucket requiredstringBucket name
path requiredstringObject key, e.g. "avatars/me.png"
content requiredstringFile contents
encodingstringHow `content` is encoded (default utf8) One of: utf8, base64
contentTypestringMIME type, e.g. "image/png"
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
object_upload({ "bucket": "<Bucket name>", "path": "avatars/me.png", "content": "<File contents>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the storage page — the same page an agent is pointed at in the tool's own description.

object_delete destroy Delete one file from a bucket.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
bucket requiredstringBucket name
key requiredstringObject key
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
object_delete({ "bucket": "<Bucket name>", "key": "<Object key>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the storage page — the same page an agent is pointed at in the tool's own description.

object_sign_url read A time-limited signed URL for one object in a private bucket.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
bucket requiredstringBucket name
key requiredstringObject key
namespacestringNamespace to operate in: "default" (the live project; default when omitted) or "preview:<name>" — a person's preview, the namespace `snoozestack preview` pushed to (names from previews_list).
Example
object_sign_url({ "bucket": "<Bucket name>", "key": "<Object key>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the storage page — the same page an agent is pointed at in the tool's own description.

Websites#

Static sites served on the project host: uploading files, publishing a version, and choosing which one is live.

sites_list read Published static websites with their file counts and URLs.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
sites_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the websites page — the same page an agent is pointed at in the tool's own description.

site_files read Every published file of one site with its content hash — the manifest a sync diffs against.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
site requiredstringSite name
Example
site_files({ "site": "<Site name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the websites page — the same page an agent is pointed at in the tool's own description.

site_upload_file write Stage one file for a site. Upload each file, then call site_publish once to create a version — previewable immediately, never live on its own: a site goes live only as part of a release (snoozestack publish).
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
site requiredstringSite name
path requiredstringSite-relative path, e.g. "index.html"
content requiredstringFile contents
encodingstringHow `content` is encoded (default utf8) One of: utf8, base64
Example
site_upload_file({ "site": "<Site name>", "path": "index.html", "content": "<File contents>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the websites page — the same page an agent is pointed at in the tool's own description.

site_delete_files destroy Remove specific files from a site — the prune half of a publish.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
site requiredstringSite name
paths requiredstring[]Files to remove
Example
site_delete_files({ "site": "<Site name>", "paths": ["<Files to remove>"] })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the websites page — the same page an agent is pointed at in the tool's own description.

site_delete destroy Delete a whole site. It stops serving immediately.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
site requiredstringSite name
Example
site_delete({ "site": "<Site name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the websites page — the same page an agent is pointed at in the tool's own description.

site_set_primary write Serve this site at the bare project host root. It must already be published.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
site requiredstringSite name
Example
site_set_primary({ "site": "<Site name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the websites page — the same page an agent is pointed at in the tool's own description.

site_publish write Turn whatever was staged with site_upload_file/site_delete_files into a new version. Returns a preview URL — the version is viewable there immediately but does not go live: a site goes live only as part of a release (snoozestack publish, or release_deploy of a recorded one).
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
site requiredstringSite name
Example
site_publish({ "site": "<Site name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the websites page — the same page an agent is pointed at in the tool's own description.

site_versions read Version history for a site — id, created_at, size, status, and which one (if any) is live.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
site requiredstringSite name
Example
site_versions({ "site": "<Site name>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the websites page — the same page an agent is pointed at in the tool's own description.

Domains#

Custom domains, their DNS records, and the CDN distributions in front of them.

domains_list read Custom domains connected to this project, with their nameservers and certificate status.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
domains_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

domain_connect write Connect a custom domain: creates its hosted zone and certificate. Point the registrar at the returned nameservers.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
domain requiredstringApex domain, e.g. example.com
Example
domain_connect({ "domain": "example.com" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

domain_disconnect destroy Disconnect a custom domain and tear down its zone.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
domain requiredstringDomain to remove
Example
domain_disconnect({ "domain": "<Domain to remove>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

domain_records_list read DNS records in a connected domain's hosted zone.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
domain requiredstringConnected domain
Example
domain_records_list({ "domain": "<Connected domain>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

domain_record_upsert write Create or replace a DNS record in a connected domain's zone.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
domain requiredstringConnected domain
name requiredstringRecord name, e.g. mail.example.com
type requiredstringRecord type, e.g. A, CNAME, TXT, MX
values requiredstring[]Record values
ttlintegerTTL in seconds (default 300)
Example
domain_record_upsert({ "domain": "<Connected domain>", "name": "mail.example.com", "type": "A", "values": ["<Record values>"] })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

domain_record_delete destroy Delete a DNS record from a connected domain's zone.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
domain requiredstringConnected domain
name requiredstringRecord name
type requiredstringRecord type
Example
domain_record_delete({ "domain": "<Connected domain>", "name": "<Record name>", "type": "<Record type>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

distributions_list read CDN distributions attaching custom domains to this project's websites and API.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
distributions_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

distribution_create write Attach a custom domain (or subdomain) to a published site or to the project API.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
domain requiredstringConnected apex domain
target_kind requiredstringWhat the domain should serve One of: site
sitestringSite name when target_kind is "site"
subdomainstringSubdomain label, e.g. "app"; omit for the apex
Example
distribution_create({ "domain": "<Connected apex domain>", "target_kind": "site" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

distribution_delete destroy Detach a distribution: the domain stops serving and its alias records go away.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
id requiredstringDistribution id from distributions_list
Example
distribution_delete({ "id": "<Distribution id from distributions_list>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the domains page — the same page an agent is pointed at in the tool's own description.

Authentication#

How users sign in: the identity service, sign-in providers, redirect URLs, email templates, and the user list itself.

identity_config_get read The redirect-URL allowlist and OAuth provider declarations for this project's hosted application-identity service (magic-link + OAuth sign-in behind the whoami cookie) — what the last `snoozestack publish` applied from project.toml's [auth] table. Distinct from auth_config_get, which covers the separate GoTrue-backed auth service.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
identity_config_get()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_config_get read Auth URL configuration and which sign-in providers are on.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
auth_config_get()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_config_update write Set the site URL and the redirect URLs auth is allowed to send users back to. Restarts the auth service.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
siteUrlstringWhere auth redirects land by default
additionalRedirectUrlsstring[]Other allowed redirect URLs
Example
auth_config_update()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_provider_update write Turn a sign-in provider on or off. For google, pass the OAuth client id; the secret can be omitted once one is stored. For apple, pass the services id plus the team id, key id and .p8, and a clientSecret from auth_apple_secret_generate.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
provider requiredstringProvider to configure One of: email, google, apple
enabled requiredbooleanOn or off
clientIdstringGoogle OAuth client id
clientSecretstringGoogle OAuth client secret, or generated Apple client secret
servicesIdstringApple services id — the web client the secret is signed for
bundleIdsstringBundle ids of native apps that sign in by ID token, comma-separated
secretExpiresAtstringExpiry of the Apple client secret, as returned by auth_apple_secret_generate
teamIdstringApple developer team id
keyIdstringApple signing key id
privateKeystringContents of the Apple .p8 signing key; stored so the secret can be regenerated
skipNonceCheckbooleanGoogle only: accept ID tokens with any nonce (needed by some native flows)
Example
auth_provider_update({ "provider": "email", "enabled": true })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_apple_secret_generate write Sign an Apple client secret from the project's .p8 key and return it with its expiry — Apple's secret is a token that expires after six months, not a fixed string. Saves nothing: pass the result to auth_provider_update. Services id, team id, key id and private key fall back to what's already stored.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
servicesId requiredstringServices id the secret is signed for — never a native bundle id
teamIdstringApple developer team id
keyIdstringApple signing key id
privateKeystringContents of the Apple .p8 signing key
Example
auth_apple_secret_generate({ "servicesId": "<Services id the secret is signed for — never a native bundle id>" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_provider_delete destroy Remove a provider's stored credentials entirely.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
provider requiredstringProvider to remove One of: google, apple
Example
auth_provider_delete({ "provider": "google" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_users_list read End users of this project's auth service, with sign-in and confirmation timestamps.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
auth_users_list()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_user_set_banned write Ban or unban one end user.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
id requiredstringUser id
banned requiredbooleanBanned or not
Example
auth_user_set_banned({ "id": "<User id>", "banned": true })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_user_delete destroy Delete an end user account.
Access

Removes something, and what it removes is not recoverable through the endpoint. Clients that honour the endpoint's annotations ask before running it.

Inputs
ParameterTypeDescription
id requiredstringUser id
Example
auth_user_delete({ "id": "<User id>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_user_send_email write Send an existing user their sign-in link — which is also how a forgotten password is recovered. There is no invite or re-confirmation: accounts exist only because someone signed up.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
type requiredstringWhich email to send One of: recovery
email requiredstringRecipient address
Example
auth_user_send_email({ "type": "recovery", "email": "<Recipient address>" })
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_emails_get read The project's auth email templates, the from address, and whether signups require email confirmation.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
auth_emails_get()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_emails_update write Override auth email templates and/or the email-confirmation requirement. A template set to null resets to the default.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
emailConfirmationsbooleanRequire email confirmation on signup
templatesobjectType → { subject, body } or null, e.g. {"invite": {"subject": "…", "body": "<p>…</p>"}}
Example
auth_emails_update()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_landing_config_get read Where the hosted password page sends users instead of rendering its own form.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
auth_landing_config_get()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

auth_landing_config_update write Set where the hosted password page hands off to instead of rendering its own form. Pass null for a field to clear that override.
Access

Creates or updates something in the project. Reversible by a further change.

Inputs
ParameterTypeDescription
mobileUrlstringDeep link for mobile clients
webUrlstringWhere browsers go instead of the hosted page
Example
auth_landing_config_update()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the authentication page — the same page an agent is pointed at in the tool's own description.

Signals#

Product analytics — the events, users and metrics the SDKs report. Read-only.

signals_overview read Product-analytics aggregates for a time range: totals, per-bucket series and the top events.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
rangestringTime range (default 7d) One of: 24h, 7d, 30d, 90d
Example
signals_overview()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the signals page — the same page an agent is pointed at in the tool's own description.

signals_events read The newest-first stream of raw signals, filterable by type, name, user and free text. `type` defaults to "event" (product analytics); set it to log/metric/trace/audit to read those instead — they don't carry a user (distinct_id is event-only).
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
typestringSignal type (default event) One of: event, log, metric, trace, audit
rangestringTime range (default 7d) One of: 24h, 7d, 30d, 90d
eventsstring[]Only these names
distinct_idstringOnly this user's events (type=event only)
qstringFree-text match on name or user
before_tsstringPage back: `ts` of the last signal you saw
before_idstringPage back: `id` of the last signal you saw
Example
signals_events()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the signals page — the same page an agent is pointed at in the tool's own description.

signals_users read User profiles derived from events.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
qstringSearch by user id or trait
offsetintegerRow offset for paging
Example
signals_users()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the signals page — the same page an agent is pointed at in the tool's own description.

signals_meta read Event names and property keys seen in a range — the vocabulary available for filters. With `property` set, returns that key's top values instead.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
rangestringTime range (default 7d) One of: 24h, 7d, 30d, 90d
propertystringProperty key to list values for
Example
signals_meta()

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the signals page — the same page an agent is pointed at in the tool's own description.

Documentation & versions#

These docs, served over the same connection, plus the currently published CLI and SDK versions. Read-only, and about snoozestack rather than the project.

docs_index read The snoozestack documentation table of contents: every page with its summary, its sections, and the management tools it explains. Read this first when you need to know how a feature is meant to be used, or which tool to reach for.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
docs_index()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the mcp page — the same page an agent is pointed at in the tool's own description.

docs_read read Read a documentation page in full, or one section of it. Covers the concepts, the design patterns snoozestack expects, and worked examples — the reasoning behind an operation rather than just its arguments.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
slug requiredstringPage slug from docs_index, e.g. "functions" or "permissions"
sectionstringSection id from the page's `sections` list; omit for the whole page
Example
docs_read({ "slug": "functions" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the mcp page — the same page an agent is pointed at in the tool's own description.

docs_search read Search the documentation for a term and get back the pages and sections that discuss it, with a snippet of each. Use it when you know the concept but not which page covers it.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs
ParameterTypeDescription
query requiredstringWhat to look for, e.g. "committed function" or "signed url"
limitintegerMaximum hits to return (default 8)
Example
docs_search({ "query": "committed function" })

Shown with the required arguments only. Anything not required is optional and defaults as its description says.

Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the mcp page — the same page an agent is pointed at in the tool's own description.

sdk_versions read The currently published versions of the snoozestack CLI and client SDKs, with the exact install command for each. Packages are served from version-pinned URLs rather than a registry, so check here before writing an install line.
Access

Only observes. Nothing about the project changes when an agent calls it.

Inputs

None. The project is never an argument — it comes from the token — so the call is bare.

Example
sdk_versions()
Returns

The same JSON the Management API route behind this tool returns — the tool is a thin wrapper over it, not a separate implementation. A refused call comes back as that route's own error message.

Explained on the installation page — the same page an agent is pointed at in the tool's own description.

Where this list comes from#

The page is generated, not written. The endpoint's tool table — the one file that declares every tool, its description and its argument schema, and the one tools/list is answered from — is flattened into the data this page renders, and the portal's test suite compares the two on every run. A tool added, renamed or re-described without regenerating this page fails those tests, so what you read here is what an agent is offered, described in the same words the agent reads.

The access type is the tool's own readOnlyHint / destructiveHint annotation, so it can't disagree with what a client is told. To see the live catalogue for a specific project, including any schema detail this page abbreviates, ask the endpoint directly:

terminal
curl -s https://snoozestack.com/api/mcp/<ref> \
-H "Authorization: Bearer sb_mcp_..." \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Everything an agent does with these tools is recorded in the project's audit log, credited to the token's name — audit_list above reads it, and so does the Audit page in the console. Reads are not recorded; changes and deletions are.