Skip to main content
Glama

Server Details

Everything your AI agents need to do their jobs, with a spending cap they can't go over.

Ownership verified
Status
Healthy
Uptime
99.9% over 58 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
CNR-Consulting/tillpad-mcp
GitHub Stars
1
Server Listing
tillpad-mcp

TDQS

A4.2/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target a clearly distinct resource+action (inbox webhooks vs. blocklist vs. inbox, KV vs. memory vs. RAG). The only genuine overlaps — manage_kv vs. manage_memory, and get_usage vs. estimate_usage vs. get_storage_summary — are explicitly disambiguated in the descriptions ('use manage_memory when the namespace is prefs, facts, or run'; 'choose estimate_usage before a spend'). An agent should be able to select correctly without much risk.

Naming Consistency4/5

All names are snake_case verb_noun (get_usage, create_api_key, search_documents, read_inbox_message), and the migration away from old forms like keys_create/run_finish is documented. The only wrinkle is a structural one: some resource families are collapsed under a manage_* umbrella with an action parameter (manage_inbox, manage_kv, manage_schedule) while sibling operations are split into standalone tools (read_inbox_message, index_document, list_files), which makes the pattern slightly uneven.

Tool Count4/5

18 tools is on the high side but justified by a genuinely broad platform surface: agent bootstrap, API keys, billing, usage, KV, memory, RAG indexing/search, files, inboxes, webhooks, blocklist, and schedules. No tool looks redundant enough to cut, though a couple of the manage_* action buckets could plausibly be consolidated.

Completeness3/5

Several sub-domains follow a create+read-only shape with no lifecycle closure: API keys can be minted but never listed or revoked (only run keys die via finish_run/TTL), files can be indexed and listed but not deleted or fetched back via MCP, and memory supports put/get with no delete. KV, inboxes, webhooks, and schedules are well covered, so these are real but localized gaps rather than a broken surface.

Available Tools

18 tools
bootstrap_agentAInspect

Start zero-human onboarding from an email address. Does not charge. Step 1: call with email. The result has verificationRequired=true and a 6-digit code is emailed to that address (10 minutes, single use), whether or not an account exists. Step 2: call again with email and code. Returns bootstrapToken, accountId, expiresIn, next, and machinePay (url, sku, amount). When you have no tp_ key yet, use REST POST /api/agents/bootstrap instead. The MCP endpoint requires Authorization: Bearer tp_… before any tool runs. After bootstrap, call manage_billing action=machine_pay, or POST /api/billing/machine-pay with Authorization: Bearer bootstrapToken. Use create_api_key afterward to mint run or sub keys from the resulting account tp_ key. No quota spend. Former name: agent_bootstrap.

NameRequiredDescriptionDefault
codeNo6-digit code from the verification email. Omit on the first call; required on the second.
emailYesAccount email. Required. Disposable domains are rejected. A verification code is sent to this address on the first call.
labelNoOptional label stored on the bootstrap account. Omit for none.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden and does so: it discloses no charge / no quota spend, a 10-minute single-use code, that a code is sent whether or not an account exists, the exact auth prerequisite (Bearer tp_… required before any tool runs), and the token-based auth for the follow-up billing call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and the step sequence, and most sentences carry unique operational value. The generic MCP auth line ('Authorization: Bearer tp_… before any tool runs') is boilerplate that applies to every tool and dilutes an otherwise dense, well-ordered description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates fully by enumerating the return payload (verificationRequired, bootstrapToken, accountId, expiresIn, next, machinePay with url/sku/amount). Auth, sequencing, alternatives, and follow-up calls are all covered, so an agent needs nothing else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema by tying the parameters to the two-call workflow and by explaining code behavior (emailed regardless of account existence, 10-minute expiry, single use). It does not add anything about the optional 'label' parameter, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Start zero-human onboarding from an email address' — and immediately names the former name (agent_bootstrap) plus the sibling tools it feeds into (create_api_key, manage_billing). An agent can distinguish it from every sibling without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit two-step sequencing ('Step 1: call with email', 'Step 2: call again with email and code'), states when to avoid this tool ('When you have no tp_ key yet, use REST POST /api/agents/bootstrap instead'), and routes the agent onward to manage_billing and create_api_key.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

contact_supportAInspect

Email Tillpad support from a Pro account. Sends subject and message to the Tillpad team. Replies go to the account email. Returns {ok:true}. Requires an active Pro subscription. Checks ACL support_contact with no quota spend. Does not change billing, storage, or inboxes.

NameRequiredDescriptionDefault
messageYesEmail body. Required. Sent to the Tillpad team.
subjectYesEmail subject line. Required.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so well: it declares the Pro-subscription prerequisite, the ACL check (support_contact), that no quota is spent, the exact return shape ({ok:true}), and explicitly enumerates what it does NOT touch (billing, storage, inboxes). That is unusually complete side-effect disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the qualifying condition, then each subsequent sentence carries distinct information (delivery, return value, prerequisites, non-effects) with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema, the description supplies everything an agent needs: preconditions, the return value, and the boundaries of its side effects. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are already documented with required flags and purpose, so the baseline is 3. The description adds only that subject/message are 'sent to the Tillpad team', which is marginal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Email Tillpad support') and scope ('from a Pro account'), with no sibling in the list doing anything similar. An agent can immediately tell this is the support-contact channel rather than any inbox/billing/document tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear qualifying context — must be an active Pro account, and replies are routed to the account email — so the agent knows when this tool is applicable. It does not name an alternative path for non-Pro accounts or state explicit exclusions, which keeps it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_api_keyAInspect

Mint a run or sub API key from the calling account tp_ key. Requires kind=account on the caller and an active plan. Writes a key row and returns the secret once, plus id, name, prefix, namespaces, tools, expiresAt, opBudgetTotal, and wipeOnExpire. No quota spend and no email. Run keys default to a 24 hour TTL, wipeOnExpire true, and one auto-generated namespace. Use finish_run to wipe a run key early. The tools array is the stored ACL allow-list of per-operation names, not these merged MCP names. manage_kv action=put is allowed only when the list includes kvp_put (or the list is omitted, which allows every operation). Unknown names are dropped. Former name: keys_create.

NameRequiredDescriptionDefault
kindYesrun: temporary job key with its own namespace. sub: longer-lived scoped key. Required. Account keys cannot be minted here.
nameNoDisplay name. Default run-key or sub-key when omitted.
toolsNoACL allow-list of per-operation names stored on the key. These are the names REST and metering already use. Examples: usage_get, usage_periods_list, budget_get, budget_estimate, billing_machine_pay, kvp_put, kvp_get, kvp_delete, kvp_list, memory_put, memory_get, memory_search, file_upload, files_list, files_types, file_get, file_delete, rag_note, rag_search, inspect_storage, run_finish, keys_create, keys_list, keys_revoke, support_contact, inbox_create, inbox_list, inbox_get, inbox_delete, inbox_messages_list, inbox_message_get, inbox_message_raw, inbox_attachment_get, inbox_webhook_create, inbox_webhook_list, inbox_webhook_delete, inbox_webhook_deliveries_list, inbox_audit_list, inbox_blocklist_list, inbox_blocklist_add, inbox_blocklist_delete, schedule_create, schedule_list, schedule_get, schedule_delete, schedule_runs_list. Merged MCP tools check the matching name per action (manage_kv action=put checks kvp_put, search_documents source=documents checks rag_search, search_documents source=memory checks memory_search, index_document kind=file checks file_upload, index_document kind=note checks rag_note). Omit to allow every operation. Names outside this list are dropped.
opBudgetNoMaximum metered operations this key may spend. Omit for no per-key cap. Values of 0 or less mean no cap.
namespacesNoNamespace allow-list. Omit on a run key to bind one generated run_ namespace. Omit on a sub key to allow every namespace.
ttlSecondsNoLifetime in seconds. Omit for the default: 24 hours on a run key, no expiry on a sub key.
wipeOnExpireNoWhen true, namespaces bound to the key are wiped at expiry. Default true for run keys and false for sub keys.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well. It discloses that the tool writes a key row, returns the secret once, returns specific metadata fields, spends no quota, sends no email, applies run-key TTL and wipe defaults, and enforces ACL allow-list rules.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded and every sentence carries operational value: prerequisites, return values, side effects, defaults, ACL rules, and the former name. There is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, mutation-like tool with no annotations and no output schema, the description is complete enough. It covers authorization, side effects, return behavior, key defaults, and the non-obvious ACL semantics that an agent would otherwise miss.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema, especially that tools is an ACL allow-list of per-operation names, not merged MCP tool names, and that manage_kv action=put requires kvp_put or an omitted list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: minting run or sub API keys from the calling account tp_ key. It distinguishes the two key kinds and notes that account keys cannot be minted here, giving an agent enough to separate it from unrelated sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear prerequisites: the caller must have kind=account and an active plan. It also mentions the related cleanup tool finish_run for wiping a run key early, but it does not explicitly contrast create_api_key with alternate creation paths or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimate_usageAInspect

Predict whether a future meter spend would be rejected with 402 (no active plan) or 429 (hard cap) before calling a write or search tool. Returns {estimate} with allowed, would402, amount, and budget. For kind=rag_index, pass textLength or byteLength to estimate chunk count instead of amount. Read only: no writes, no quota spend, no email. Use get_usage view=budget to see what is already remaining. Use before manage_kv, index_document, search_documents, or read_inbox_message action=raw or action=attachment. Same behavior as the former budget_estimate tool. ACL is not consulted.

NameRequiredDescriptionDefault
kindYesMeter to preflight. kvp_ops: key-value ops. storage_bytes: stored bytes. rag_index: document indexing chunks. rag_query: semantic search. inbound_email: received messages. outbound_http: scheduled HTTPS attempts.
amountNoUnits to preflight. Default 1. For kind=rag_index, ignored when textLength or byteLength is set.
byteLengthNoByte length used to estimate rag_index chunks when textLength is omitted. Only for kind=rag_index.
textLengthNoCharacter length used to estimate rag_index chunks. Only for kind=rag_index. Omit to use amount.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it discloses that the tool is read-only, performs no writes or quota spend, sends no email, does not consult ACL, and returns allowed/would402/amount/budget. The 402/429 outcomes and legacy budget_estimate equivalence are also explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense, front-loaded with the purpose and return shape, and every sentence adds actionable context: return fields, rag_index special case, safety profile, alternative tool, target tools, and migration note. There is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a preflight estimator with no output schema and no annotations, the description supplies the return keys, usage context, behavioral constraints, and sibling routing. An agent has everything needed to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters thoroughly, including kind enum values and the rag_index handling of textLength/byteLength. The description's rag_index note is largely redundant with the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: predict whether a future meter spend would be rejected with 402 or 429 before calling a write or search tool. It distinguishes itself from get_usage by naming that sibling and from write/search siblings by naming them as targets to preflight.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it (before manage_kv, index_document, search_documents, or read_inbox_message raw/attachment) and names get_usage view=budget as the alternative for seeing remaining budget. It also clarifies it is read-only and does not spend quota.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

finish_runAInspect

Wipe every namespace bound to this run key and return a signed wipe receipt. Deletes stored data for those namespaces. Valid only for a run key. Checks ACL run_finish. No usage-meter spend and no email. Use manage_kv action=delete to remove one key, or let wipeOnExpire clear a run key at TTL. Former name: run_finish.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that stored data is deleted, that the ACL run_finish is checked, that there is no usage-meter spend and no email, and that a signed receipt is returned. It stops short of stating irreversibility or any confirmation/undo behavior, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the core action and its data-destruction semantics, followed by constraints and alternatives. The trailing 'Former name: run_finish' is useful for tool discovery but slightly less essential; otherwise there is no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description names the return value (signed wipe receipt), and with no annotations it covers permissions, side effects, and alternatives. A note on irreversibility or post-conditions would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema-side burden is nil and the baseline is 4. The description correctly does not invent parameter details, and the 'run key' scoping is conveyed through context rather than an input field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Wipe every namespace bound to this run key') plus the return artifact (signed wipe receipt), and explicitly scopes it to run keys only. It is clearly distinguishable from siblings like manage_kv and the implicit TTL-based wipeOnExpire.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing rules: use manage_kv action=delete to remove a single key, or let wipeOnExpire clear a run key at TTL. Combined with the constraint 'Valid only for a run key', the agent has clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_storage_summaryAInspect

Summarize storage for this account. Returns namespaces with key counts and file or vector inventory, narrowed to the key's namespace allow-list when one is set. Read only: no writes, no deletes, no quota spend, no email. Checks ACL inspect_storage. Use manage_kv action=list to page keys inside one namespace, and list_files view=files for file rows. Former name: inspect_storage.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so: it declares read-only semantics ('no writes, no deletes, no quota spend, no email'), discloses the required ACL ('Checks ACL inspect_storage'), and notes the former name for alias resolution. This is unusually complete behavioral disclosure for an annotation-free tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with what it returns, then the read-only/ACL guarantees, then the sibling routing. Every clause earns its place, including the former-name alias hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must describe return values, and it does at an appropriate level of abstraction (namespace names, key counts, file/vector inventory). With zero params and covered ACL/read-only behavior, nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; per the baseline rule for parameterless tools this is a 4. No parameter-level confusion is possible.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Summarize storage for this account') and immediately enumerates the return contents (namespaces, key counts, file/vector inventory). It distinguishes itself from siblings by naming manage_kv and list_files as the tools for the narrower operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes to alternatives with their exact selectors: 'manage_kv action=list' for paging keys in one namespace and 'list_files view=files' for file rows. It also states the scoping condition ('narrowed to the key's namespace allow-list when one is set'), so an agent knows both when to use this tool and when to use a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageAInspect

Read this account's usage and quotas. Use view=summary for one calendar month (omit periodYm for the current UTC month, or pass YYYY-MM). Returns usage totals, the budget view, and whether that month is current. Use view=periods to page stored months newest-first. Returns periods, hasMore, and currentPeriodYm. Use view=budget for remaining included quota, hard caps, soft thresholds, checkout URLs, and this key's op budget when one is set. Returns budget and keyBudget. Read only: no writes, no deletes, no quota spend, no email. Choose estimate_usage before a spend, and manage_billing to pay. ACL is not consulted; usage_get, usage_periods_list, and budget_get were ungated reads.

NameRequiredDescriptionDefault
viewYesWhich usage read to run. summary: one month (ACL name usage_get). periods: paged history (ACL name usage_periods_list). budget: remaining quotas and checkout URLs (ACL name budget_get). Required. No default.
limitNoPage size when view=periods. Default 12, maximum 100. Ignored by view=summary and view=budget.
cursorNoWhen view=periods, return months strictly older than this YYYY-MM. Omit for the first page. Ignored by other views.
periodYmNoUTC calendar month YYYY-MM. Used when view=summary. Omit for the current month. Ignored by view=periods and view=budget.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it explicitly declares the read-only profile ("no writes, no deletes, no quota spend, no email") and discloses an auth nuance most tools omit ("ACL is not consulted; usage_get, usage_periods_list, and budget_get were ungated reads"). It falls short of a 5 only because it says nothing about rate limits, error behavior, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and dense, with the three views presented in a consistent pattern and the read-only/safety note placed after the functional content. The repeated "Returns X, Y, Z" cadence is slightly mechanical and longer than strictly necessary, but every sentence carries usable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating what each view returns (usage totals/budget view/current flag; periods/hasMore/currentPeriodYm; budget/keyBudget), which is the key missing structured data. It is nearly complete, lacking only error/edge-case behavior for an unknown view or empty period.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already spells out each parameter's meaning, defaults, and cross-view ignoring (e.g. limit default 12/max 100, cursor format). The description largely restates that information rather than adding new semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Read this account's usage and quotas") and immediately decomposes the resource into three named views (summary, periods, budget) with their scopes. Naming estimate_usage and manage_billing as the adjacent tools makes it distinguishable from siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit conditions per view: view=summary for one calendar month with the periodYm-omit rule, view=periods to page stored months, view=budget for quotas and checkout URLs. It also names the alternatives and their trigger points ("Choose estimate_usage before a spend, and manage_billing to pay"), which is exactly the routing an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

index_documentAInspect

Add UTF-8 text to the RAG index. kind=file stores a named text file and checks ACL file_upload (former file_upload). kind=note stores a short note titled title or note.txt and checks ACL rag_note (former rag_note). Both preflight rag_index capacity, then meter 1 kvp_ops for the upload. Chunk indexing spends rag_index later on the queue. Returns file, an estimated chunk count, budget, and keyBudget. PDF and Excel binaries belong on REST multipart POST /api/files/:namespace. Use search_documents to query and list_files to list what was uploaded. No email.

NameRequiredDescriptionDefault
kindYesfile checks ACL file_upload and requires filename. note checks ACL rag_note and uses title as the filename. Required. No default.
textNoUTF-8 document body. Required for file and note.
titleNoFilename for kind=note, up to 180 characters. Default note.txt. Ignored for kind=file.
filenameNoFile name including extension. Required for kind=file. Ignored for kind=note (use title).
namespaceNoNamespace that will own the file. Required for file and note. Must be in the key namespace allow-list when that list is set.
contentTypeNoMIME type for kind=file. Default text/plain. Ignored for kind=note, which is stored as text/plain.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden well: it discloses capacity preflight, metering (1 kvp_ops), ACL checks, and return fields. It doesn't mention rate limits, idempotency, or failure modes, but covers core behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the core action, then mode-specific details and cross-references. It's appropriately sized, though slightly crowded with parenthetical former ACL names.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is complete: it covers both modes, ACL requirements, metering, return values, and points to related tools. An agent has enough to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully documented in the schema. The description adds some context about 'kind' defaults and 'title' behavior, but largely repeats what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: 'Add UTF-8 text to the RAG index.' It clearly distinguishes the two modes (file vs note) and their ACL checks, but doesn't fully separate itself from all siblings beyond naming search_documents and list_files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use each kind, points to search_documents for querying and list_files for listing, and directs PDF/Excel binaries to the REST endpoint. However, it doesn't provide when-not-to-use guidance for text uploads or alternative indexing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_filesAInspect

File catalog reads. view=files lists uploaded file metadata, optionally filtered by namespace, and checks ACL files_list. Returns {files}. view=supported_types returns kinds, extensions, mimeTypes, and extract notes for RAG uploads. That view checks no ACL and spends no quota (former files_types). Neither view writes, deletes, or sends email. Use index_document to upload. MCP indexing accepts UTF-8 text; REST multipart accepts PDF and Excel too.

NameRequiredDescriptionDefault
viewYesfiles checks ACL files_list and lists uploads. supported_types returns the supported-type catalog and checks no ACL. Required. No default.
namespaceNoWhen view=files, limit results to this namespace. Omit to list every namespace the key may access. Ignored by view=supported_types.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and delivers: ACL checks (files_list for files, none for supported_types), quota behavior (supported_types spends no quota), the former name of supported_types, that neither view mutates or sends mail, and the MCP-vs-REST input-format constraint (UTF-8 only vs PDF/Excel).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and then organized by view, with each sentence carrying distinct information. It is fairly dense and the opening fragment "File catalog reads" is slightly clipped, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite there being no output schema, the description sketches the return shapes ({files}; kinds/extensions/mimeTypes/extract notes) and discloses the key operational constraints. An agent has everything needed to select a view and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3; the description goes beyond it by restating view effects in the narrative (ACL/quota per view) and clarifying that namespace filtering is optional and ignored by supported_types, adding context the schema only partly conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("File catalog reads") and then enumerates both operating modes with their exact contents. It clearly distinguishes itself from index_document by stating "Use index_document to upload," so an agent can route without inspecting the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly ties each view to its condition (view=files for upload metadata filtered by namespace, view=supported_types for the type catalog) and names the alternative tool for the write case. It further rules out misuse by stating neither view writes, deletes, or sends email.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_billingAInspect

Payment helpers. Use action=machine_pay to learn how to unlock Pro or buy an agent SKU with Stripe Machine Payments. Returns sku, amount, currency, periodDays, and the POST URL the agent must call with an MPP Payment credential. This call does not charge. Default sku is pro_prepaid_30d. Use action=portal for a Stripe Customer Portal URL (subscription and invoices, for a human). Returns {url}. Fails when the account cannot open a portal. Use action=purchases to list local MPP purchases and logged Stripe events. Returns purchases and a cursor. Pass includeStripe=true to merge unlogged Stripe charges when a customer exists. No quota spend and no email. Sibling bootstrap_agent creates the account first. get_usage reads quotas. ACL is not consulted (billing_machine_pay, billing_portal, and billing_purchases_list were ungated).

NameRequiredDescriptionDefault
skuNoAgent SKU for action=machine_pay. Default pro_prepaid_30d. Top-up SKUs require active Pro. Ignored by portal and purchases.
limitNoPage size for action=purchases. Default 20, maximum 100. Ignored by machine_pay and portal.
actionYesmachine_pay: MPP instructions (former billing_machine_pay). portal: Stripe Customer Portal URL (former billing_portal). purchases: payment history (former billing_purchases_list). Required. No default.
cursorNoOpaque cursor from a previous purchases page. Omit for the first page. Ignored by machine_pay and portal.
includeStripeNoWhen action=purchases and true, merge Stripe charges and invoices that are not already logged locally. Default false. Ignored by machine_pay and portal.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: 'This call does not charge', 'No quota spend and no email', 'Fails when the account cannot open a portal', and the notable 'ACL is not consulted'. These are the side-effect, cost, and authorization disclosures an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence earns its place by tying an action to its return value, default, or constraint. The opening 'Payment helpers' is slightly vague, but action-by-action structure keeps it navigable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-action tool with no output schema, the description documents each action's return shape ('sku, amount, currency, periodDays, and the POST URL', '{url}', 'purchases and a cursor') and the relevant failure and cost behavior, leaving no material gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents defaults, enums, and the includeStripe merge behavior in nearly identical wording. The description restates defaults ('Default sku is pro_prepaid_30d') rather than adding meaning beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and then breaks down all three actions with their exact effects: machine_pay returns MPP payment instructions, portal returns a Stripe Customer Portal URL, purchases lists payment history. It explicitly distinguishes itself from siblings bootstrap_agent and get_usage, so an agent can route correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes each action: 'Use action=machine_pay to...', 'Use action=portal for a Stripe Customer Portal URL', 'Use action=purchases to list...'. It also names prerequisites (top-up SKUs require active Pro), sibling ordering (bootstrap_agent creates the account first), and a failure condition ('fails when the account cannot open a portal').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_inboxAInspect

Create, read, delete, and audit receive-only email inboxes. action=create writes an address on the inbound domain and returns inbox plus address (ACL inbox_create). Requires an active plan. Temporary inboxes expire and purge. action=list returns active inboxes (ACL inbox_list). action=get returns one inbox (ACL inbox_get). action=delete deletes the inbox and purges stored messages (ACL inbox_delete). action=audit lists account audit entries (ACL inbox_audit_list). These calls do not meter; inbound mail later meters inbound_email. No outbound email. Use read_inbox_message for mail, manage_inbox_webhook for HTTPS notifications, and manage_inbox_blocklist for sender blocks.

NameRequiredDescriptionDefault
kindNotemporary expires after ttlSeconds (default 86400, max 604800 unless the deployment overrides those). permanent does not expire. Required for action=create. Omit otherwise.
limitNoPage size for action=audit. Default 50. Ignored by create, list, get, and delete.
actionYescreate checks ACL inbox_create and writes an inbox. list checks inbox_list. get checks inbox_get. delete checks inbox_delete and purges messages. audit checks inbox_audit_list. Required. No default.
domainNoInbound domain for action=create. Default is the deployment inbound domain. Must already be configured. Ignored by other actions.
offsetNoRow offset for action=audit. Default 0. Ignored by create, list, get, and delete.
inboxIdNoInbox id. Required for get and delete. Omit for create, list, and audit.
localPartNoAddress prefix before @domain. Required for action=create except on deployments with a fixed inbound email pool (QA), where omitting assigns the next free pool address. Stored lowercased. Omit for other actions.
ttlSecondsNoLifetime for kind=temporary. Default 86400 seconds. Ignored for permanent and for actions other than create.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses ACL scopes per action, the plan prerequisite, that delete purges stored messages, that temporary inboxes expire and purge, and that calls themselves do not meter but inbound mail meters inbound_email. It stops short of stating reversibility of delete, error behavior on an inactive plan, or whether list is paged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, then one clause per action, then cost and sibling routing. Dense but every sentence carries information; the ACL parentheticals make some clauses run long and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, five-action tool with no output schema and no annotations, this covers purpose, gating, destruction, cost, and alternatives. The remaining gap is return shape for list/get and whether list results are bounded, which matters more here because limit/offset apply only to audit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds action-level meaning beyond the schema by mapping each action to its ACL and noting that delete purges messages and create returns inbox plus address. It does not restate per-parameter detail, which the schema already supplies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb set and resource: "Create, read, delete, and audit receive-only email inboxes," and closes by naming each sibling it is not (read_inbox_message, manage_inbox_webhook, manage_inbox_blocklist). An agent can distinguish this tool from its neighbors without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the selection rule for every action (action=create/list/get/delete/audit) and explicitly routes mail reading, HTTPS notifications, and sender blocks to the three sibling tools. Also gives the precondition (requires an active plan) and the exclusion (no outbound email).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_inbox_blocklistAInspect

Block senders for every inbox on the account. action=list returns entries (ACL inbox_blocklist_list). action=add writes an address or domain block and returns the entry (ACL inbox_blocklist_add). action=delete removes one entry by id (ACL inbox_blocklist_delete). No quota spend and no email. Use manage_inbox to manage the inboxes these rules apply to.

NameRequiredDescriptionDefault
kindNoaddress blocks one sender email. domain blocks every sender at that domain. Required for action=add. Omit for list and delete.
valueNoEmail address or domain to block. Required for action=add. Omit for list and delete.
actionYeslist checks ACL inbox_blocklist_list. add checks inbox_blocklist_add and writes a block. delete checks inbox_blocklist_delete and removes one entry. Required. No default.
entryIdNoBlocklist entry id. Required for action=delete. Omit for list and add.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that listing/adding/deleting checks specific ACLs, that there is no quota spend, and that no email is sent. It omits auth requirements and reversibility of a delete, but the quota and side-effect disclosure is meaningful context an agent would otherwise lack.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose, then enumerates actions in a compact, parallel structure. Slightly redundant in repeating the ACL names that also appear in the action parameter's schema description, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-action mutation tool with no output schema, the description explains what each action returns (entries / the entry / removal) and the side-effect profile. Only authorization requirements are left unstated, which is a gap but not a blocker.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, including the action/kinds and their required-for-action conditions. The description largely restates the action enum semantics already present, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (block) and resource (senders for every inbox on the account), then enumerates the three supported actions with their backing ACLs. An agent can distinguish it from manage_inbox, which the description explicitly names as the sibling for a different concern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear per-action context (list vs add vs delete) and routes the agent to manage_inbox for managing the inboxes themselves. It does not state prerequisites such as required permissions, but the when-to-use signal is explicit for each action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_inbox_webhookAInspect

HTTPS webhooks for email.received metadata (no message body). action=create registers a URL and returns the webhook plus the signing secret once (ACL inbox_webhook_create). action=list returns registered webhooks (ACL inbox_webhook_list). action=delete sets disabled_at so the webhook stops firing; the row stays (ACL inbox_webhook_delete). action=deliveries lists attempts; status=failed means retries are exhausted (ACL inbox_webhook_deliveries_list). These calls do not meter and do not send email. Later delivery attempts are separate from this call. Use manage_inbox for the inbox itself.

NameRequiredDescriptionDefault
urlNoHTTPS endpoint for action=create. Required then. Notifications are metadata only. Omit for other actions.
limitNoPage size for action=deliveries. Default 50, maximum 100. Ignored by create, list, and delete.
actionYescreate checks ACL inbox_webhook_create and stores a webhook. list checks inbox_webhook_list. delete checks inbox_webhook_delete and disables the webhook. deliveries checks inbox_webhook_deliveries_list. Required. No default.
offsetNoRow offset for action=deliveries. Default 0. Ignored by create, list, and delete.
secretNoHMAC secret for action=create. Omit to have one generated. Returned once on create. Ignored by other actions.
statusNoFilter for action=deliveries. failed means every retry is exhausted. Omit for all statuses. Ignored by other actions.
webhookIdNoWebhook id. Required for action=delete. Optional filter for action=deliveries. Omit for create and list.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: delete is a soft disable (sets disabled_at, row stays), create returns the signing secret exactly once, calls do not meter and do not send email, and ACLs are named per action. These are non-obvious behaviors an agent could not infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the most important constraint (metadata only, no body), then walks through actions in order. It is a single long paragraph, so it is slightly harder to scan than a bulleted structure would be, but nearly every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-action tool with no annotations and no output schema, the description covers per-action semantics, the one-time secret, soft-delete behavior, and non-metering. It does not describe the shape of list/deliveries results, but with no output schema that is the only meaningful residual gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents url, limit, offset, secret, status, and webhookId per action. The description largely restates the same routing (create/list/delete/deliveries) and adds no format or syntax detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (HTTPS webhooks for email.received metadata) and enumerates the four operations it multiplexes via action. It also explicitly excludes the message body and routes the agent away from the sibling manage_inbox, so the tool's identity is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each action is documented with its effect and the ACL it checks, which tells the agent exactly which action to pick for which goal. It closes with an explicit alternative ('Use manage_inbox for the inbox itself') and clarifies that later delivery attempts are not part of this call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_kvAInspect

Read and write arbitrary namespace strings. Use manage_memory when the namespace is prefs, facts, or run. action=put stores value and returns the stored row plus budget and keyBudget (writes; meters 1 kvp_ops; ACL kvp_put). action=get returns {value, budget, keyBudget} (meters 1 kvp_ops; ACL kvp_get). action=delete removes one key and returns {ok, budget, keyBudget} (deletes; meters 1 kvp_ops; ACL kvp_delete). action=list returns {keys, cursor, budget, keyBudget} (meters 1 kvp_ops; ACL kvp_list). No email. Use index_document and search_documents for semantic search, and get_storage_summary for a namespace inventory.

NameRequiredDescriptionDefault
keyNoKey name inside namespace. Required for put, get, and delete. Omit for list.
limitNoPage size for list. Default 100, maximum 500. Ignored by put, get, and delete.
valueNoString to store. Required for put. Omit for get, delete, and list.
actionYesput checks ACL kvp_put and writes. get checks kvp_get and reads one value. delete checks kvp_delete and removes one key. list checks kvp_list and pages keys. Required. No default.
cursorNoOffset cursor from a previous list response. Omit for the first page. Ignored by put, get, and delete.
namespaceNoKVP namespace. Required for put, get, delete, and list. Must be in the key namespace allow-list when that list is set.
expirationTtlNoTTL in seconds for put. Omit to keep the value until it is deleted. Ignored by get, delete, and list.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it discloses writes vs reads vs deletes, per-action ACL checks (kvp_put, kvp_get, kvp_delete, kvp_list), metering (1 kvp_ops), and return shapes for each action. It stops short of error behavior, atomicity, or rate limits, but is unusually thorough for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads purpose, then routing guidance, then per-action details. Every sentence has a job, and the density is appropriate for a four-action tool. It could be slightly more scannable with list formatting, but there is little wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description compensates by listing return payloads for each action ({value, budget, keyBudget}, {ok, budget, keyBudget}, {keys, cursor, budget, keyBudget}). Combined with full schema coverage for parameters and explicit sibling alternatives, it is nearly complete, missing only error and edge-case behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description largely restates action-specific requirements already documented in the schema (key required for put/get/delete, namespace allow-list, action behavior) and adds no new parameter syntax, format, or constraint details beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Read and write arbitrary namespace strings') and enumerates the four supported actions. It clearly distinguishes this tool from siblings manage_memory, index_document, search_documents, and get_storage_summary, so an agent can route without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly directs to manage_memory when the namespace is prefs, facts, or run, to index_document/search_documents for semantic search, and to get_storage_summary for inventory. It also states a clear exclusion ('No email'), leaving no ambiguity about when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_memoryAInspect

Store and read short strings in the memory scopes prefs, facts, and run. Run uses the run key's bound namespace. action=put writes and returns scope, namespace, budget, and keyBudget (meters 1 kvp_ops; ACL memory_put). action=get returns {value, scope, namespace, budget, keyBudget} (meters 1 kvp_ops; ACL memory_get). No deletes and no email. Use search_documents source=memory for semantic recall, manage_kv for any other namespace, and finish_run to wipe the run namespace.

NameRequiredDescriptionDefault
keyNoKey name inside the scope namespace. Required for put and get.
scopeNoMemory scope. prefs and facts are fixed namespaces. run maps to the run key namespace, or the namespace run when the key has none. Required for put and get.
valueNoString to store. Required for put. Omit for get.
actionYesput checks ACL memory_put and writes. get checks ACL memory_get and reads. Required. No default.
expirationTtlNoTTL in seconds for put. Omit to keep the value until it is deleted. Ignored by get.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so: it discloses the ACLs checked (memory_put/memory_get), the metering cost (1 kvp_ops per call), the exact return shapes for both actions, and the read/write asymmetry of the actions. This is unusually rich behavioral disclosure for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and scope, then behavior, then alternatives; every sentence earns its place. Slightly dense with parenthetical ACL/metering clauses, but none are wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by spelling out the return objects for both actions. Combined with the scope/namespace semantics and the sibling routing, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds real meaning: it clarifies that the run scope maps to the run key's bound namespace (or 'run' when unbound) and that put returns budget/keyBudget meters. That goes beyond the schema's field-level descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verbs and resources ('Store and read short strings') and enumerates the exact scopes (prefs, facts, run), which immediately distinguishes it from the generic manage_kv sibling. An agent can tell what this tool does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: semantic recall goes to search_documents source=memory, other namespaces to manage_kv, and run-namespace cleanup to finish_run. It also states exclusions ('No deletes and no email'), covering when-not as well as when.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_scheduleAInspect

Account HTTPS interval jobs. action=create writes a schedule and returns it plus the delivery contract (ACL schedule_create). Requires an active plan. This call does not meter. Each later attempt meters outbound_http. Success actions store_kvp meter kvp_ops, store_rag meters rag_index, and notify_webhook meters another outbound_http. Contract: 10 second timeout, up to 3 attempts, exponential backoff capped at 300 seconds, success is HTTP 2xx, auto-disable after 5 consecutive exhausted failures, pause with disabled_reason=no_active_plan when the account lapses (resumes on plan activation). Minimum interval is 5 minutes. action=list returns schedules (ACL schedule_list). action=get returns one schedule and the contract (ACL schedule_get). action=delete sets enabled off and disabled_reason deleted, which stops future runs and keeps the row (ACL schedule_delete). action=runs lists attempts (ACL schedule_runs_list). No email from this call. Use get_usage to see outbound_http remaining.

NameRequiredDescriptionDefault
urlNoHTTPS URL to call. Required for action=create. Omit otherwise.
nameNoDisplay name for action=create, up to 120 characters. Default empty. Ignored by other actions.
limitNoPage size for action=runs. Default 50, maximum 100. Ignored by create, list, get, and delete.
actionYescreate checks ACL schedule_create and writes a schedule. list checks schedule_list. get checks schedule_get. delete checks schedule_delete and disables future runs. runs checks schedule_runs_list. Required. No default.
methodNoHTTP method for action=create. Default GET. POST may send bodyTemplate. Ignored by other actions.
offsetNoRow offset for action=runs. Default 0. Ignored by create, list, get, and delete.
statusNoFilter for action=runs. failed means retries are exhausted. Omit for every status. Ignored by other actions.
authModeNoHow action=create authenticates the outbound call. Default none. bearer and header require authSecret. Ignored by other actions.
timezoneNoTimezone label stored on the schedule. Default UTC. Used when action=create. Ignored by other actions.
onFailureNoActions after retries are exhausted, for action=create. Same object shapes as onSuccess. Omit for none.
onSuccessNoActions after a 2xx response, for action=create. Each item is {type:store_kvp, namespace, key}, {type:store_rag, namespace}, or {type:notify_webhook, url}. Omit for none. store_kvp meters kvp_ops, store_rag meters rag_index, notify_webhook meters outbound_http when the run happens.
authSecretNoSecret for authMode=bearer or header on action=create. Stored encrypted. Required for those modes. Omit for authMode=none.
scheduleIdNoSchedule id. Required for get and delete. Optional filter for runs. Omit for create and list.
bodyTemplateNoPOST body for action=create when method=POST. Omit for an empty body. Ignored for GET and for other actions.
authHeaderNameNoHeader name when authMode=header. Default authorization. Ignored unless action=create and authMode=header.
includeExcerptNoFor action=runs only: when true, include responseExcerpt (up to 4KB). Default false so list stays small. Ignored by other actions.
intervalMinutesNoMinutes between runs. Required for action=create. Minimum 5. Ignored by other actions.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: it discloses metering (create does not meter, later attempts meter outbound_http, success actions meter kvp_ops/rag_index/outbound_http), the delivery contract (10s timeout, 3 attempts, exponential backoff capped at 300s, 2xx success, auto-disable after 5 consecutive exhausted failures), lapse behavior with disabled_reason=no_active_plan, and that delete retains the row. These are exactly the side effects and constraints an agent needs before mutating state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and nearly every clause carries operational information, but the delivery-contract details interrupt the action enumeration in the middle of the paragraph, so create/list/get/delete/runs are not presented in one clean block. Slightly reordering would improve scanability without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter tool with no annotations and no output schema, the description covers actions, permissions, metering, failure/lapse behavior, and delete semantics. Return values are only summarized ('returns schedules', 'returns one schedule and the contract'), so an agent still does not know the field shape of a schedule or run record, which keeps this from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds meaning beyond the schema by tying action values to ACLs and metering, defining the delivery contract that governs intervalMinutes and retry semantics, and clarifying that delete only disables future runs. It does not explain the onFailure/onSuccess object shapes beyond pointing at the schema, but the added contract context is substantive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Account HTTPS interval jobs') and then enumerates every action (create/list/get/delete/runs) with what each writes or returns, plus the ACL each checks. An agent can distinguish this from siblings like get_usage or manage_inbox without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action-by-action breakdown effectively tells the agent which mode to pick, and it explicitly routes the related-but-different need ('Use get_usage to see outbound_http remaining'). What is missing is a clear when-not-to-use statement or named alternative for scheduling itself, but the context is otherwise unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_inbox_messageAInspect

Read mail already stored on an inbox. action=list returns message metadata newest-first (ACL inbox_messages_list, no quota spend). action=get returns one message plus its attachment list (ACL inbox_message_get, no quota spend). action=raw returns raw MIME as rawBase64 and meters 1 kvp_ops (ACL inbox_message_raw). action=attachment returns filename, contentType, sizeBytes, and dataBase64 and meters 1 kvp_ops (ACL inbox_attachment_get). No deletes and no email send. Use manage_inbox to create the inbox first.

NameRequiredDescriptionDefault
limitNoPage size for action=list. Default 50. Ignored by get, raw, and attachment.
actionYeslist checks ACL inbox_messages_list. get checks inbox_message_get. raw checks inbox_message_raw and meters 1 kvp_ops. attachment checks inbox_attachment_get and meters 1 kvp_ops. Required. No default.
offsetNoRow offset for action=list. Default 0. Ignored by get, raw, and attachment.
inboxIdNoInbox id. Required for list, get, raw, and attachment.
messageIdNoMessage id. Required for get, raw, and attachment. Omit for list.
attachmentIdNoAttachment id from action=get. Required for action=attachment. Omit otherwise.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does so: it discloses ACL checks per action, that list/get spend no quota while raw/attachment meter 1 kvp_ops each, and that pagination is newest-first. These are exactly the operational costs and constraints an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then moves in parallel per-action sentences that each carry quota, ACL, and return info with no filler. It is dense and fairly long, but essentially every clause earns its place; only the duplicate of schema-level ACL text is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must describe returns itself, and it does for all four actions (metadata, message+attachments, rawBase64 MIME, filename/contentType/sizeBytes/dataBase64). Combined with cost and prerequisite disclosure, nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents limit, offset, inboxId, messageId, and attachmentId, including which actions ignore or require them. The description largely restates the enum's own ACL/quota documentation for the action parameter rather than adding new parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (read mail stored on an inbox) and then decomposes the tool into four named actions with their distinct return shapes (metadata list, full message + attachment list, raw MIME as rawBase64, single attachment bytes). An agent can tell exactly what each mode produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives per-action routing (list vs get vs raw vs attachment), states explicit exclusions ("No deletes and no email send"), and names the prerequisite tool ("Use manage_inbox to create the inbox first"). This is when-to-use and when-not guidance in explicit form.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_documentsAInspect

Semantic search over indexed notes and files. Meters 1 rag_query. Returns hits plus budget and keyBudget. source=documents searches the whole index or one namespace and checks ACL rag_search (former rag_search). source=memory limits the search to prefs, facts, or run and checks ACL memory_search (former memory_search). That response also includes scope and namespace. Read only: no writes and no email. Use index_document to add text first. Use manage_memory action=get to read an exact key.

NameRequiredDescriptionDefault
topKNoMaximum hits. Default 5, maximum 20.
queryNoNatural-language query. Required for both sources.
scopeNoLimit source=memory to this scope. Omit to search without a scope filter. Ignored when source=documents.
sourceYesdocuments checks ACL rag_search and accepts namespace. memory checks ACL memory_search and accepts scope. Required. No default.
namespaceNoLimit source=documents to this namespace. Omit to search every namespace the key may access. Ignored when source=memory.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does: it discloses metering cost ('Meters 1 rag_query'), ACL checks per source (rag_search vs memory_search), the return payload ('hits plus budget and keyBudget', plus scope and namespace for memory), and safety posture ('Read only: no writes and no email'). These are exactly the behavioral traits an agent needs before invoking it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and cost, then mode behavior, then alternatives in a logical order. It is dense but almost every clause earns its place; the parenthetical legacy names ('former rag_search'/'former memory_search') and a few repeated wordings add slight bulk without new decision value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, no-output-schema tool, the description covers the return shape, metering, ACL requirements, both source modes, and sibling alternatives, so an agent has enough to call it correctly without reading the schema. Nothing material for correct invocation appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description goes further by explaining the semantic role of source (which index and which ACL each value implies) rather than restating types. It adds marginal value on scope/namespace via the mode descriptions, though much of that ('ignored when') is already duplicated in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Semantic search over indexed notes and files') and immediately branches into its two modes, source=documents vs source=memory, so an agent can tell what it is and how it differs from siblings like manage_memory. It also surfaces the ACL each mode checks, which is a distinct, discriminable facet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: 'Use index_document to add text first' and 'Use manage_memory action=get to read an exact key', naming the alternatives and the conditions that select them. It also states which source enum value to pick and what each scopes over, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedmanage_inbox1 field changed
      • changedInput schema / properties / localPart / description
        Previous value: -"Address prefix before @domain. Required for action=create. Stored lowercased. Omit for other actions."New value: +"Address prefix before @domain. Required for action=create except on deployments with a fixed inbound email pool (QA), where omitting assigns the next free pool address. Stored lowercased. Omit for other actions."
    • Changedmanage_schedule1 field changed
      • addedInput schema / properties / includeExcerpt
        Added value: +{
        +  "description": "For action=runs only: when true, include responseExcerpt (up to 4KB). Default false so list stays small. Ignored by other actions.",
        +  "type": "boolean"
        +}
  2. 1 tool update
    • Changedbootstrap_agent2 fields changed
      • addedInput schema / properties / code
        Added value: +{
        +  "description": "6-digit code from the verification email. Omit on the first call; required on the second.",
        +  "type": "string"
        +}
      • changedInput schema / properties / email / description
        Previous value: -"Account email. Required. Disposable domains are rejected. No message is sent to this address."New value: +"Account email. Required. Disposable domains are rejected. A verification code is sent to this address on the first call."
  3. 63 tool updates
    • Removedagent_bootstrap
    • Removedbilling_machine_pay
    • Removedbilling_portal
    • Removedbilling_purchases_list
    • Addedbootstrap_agent
    • Removedbudget_estimate
    • Removedbudget_get
    • Addedcontact_support
    • Addedcreate_api_key
    • Addedestimate_usage
    • Removedfile_upload
    • Removedfiles_list
    • Removedfiles_types
    • Addedfinish_run
    • Addedget_storage_summary
    • Addedget_usage
    • Removedinbox_attachment_get
    • Removedinbox_audit_list
    • Removedinbox_blocklist_add
    • Removedinbox_blocklist_delete
    • Removedinbox_blocklist_list
    • Removedinbox_create
    • Removedinbox_delete
    • Removedinbox_get
    • Removedinbox_list
    • Removedinbox_message_get
    • Removedinbox_message_raw
    • Removedinbox_messages_list
    • Removedinbox_webhook_create
    • Removedinbox_webhook_delete
    • Removedinbox_webhook_deliveries_list
    • Removedinbox_webhook_list
    • Addedindex_document
    • Removedinspect_storage
    • Removedkeys_create
    • Removedkvp_delete
    • Removedkvp_get
    • Removedkvp_list
    • Removedkvp_put
    • Addedlist_files
    • Addedmanage_billing
    • Addedmanage_inbox
    • Addedmanage_inbox_blocklist
    • Addedmanage_inbox_webhook
    • Addedmanage_kv
    • Addedmanage_memory
    • Addedmanage_schedule
    • Removedmemory_get
    • Removedmemory_put
    • Removedmemory_search
    • Removedrag_note
    • Removedrag_search
    • Addedread_inbox_message
    • Removedrun_finish
    • Removedschedule_create
    • Removedschedule_delete
    • Removedschedule_get
    • Removedschedule_list
    • Removedschedule_runs_list
    • Addedsearch_documents
    • Removedsupport_contact
    • Removedusage_get
    • Removedusage_periods_list
  4. 2 tool updates
    • Changedusage_get2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / periodYm
        Added value: +{
        +  "description": "Billing period as YYYY-MM (UTC calendar month)",
        +  "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
        +  "type": "string"
        +}
    • Addedusage_periods_list
  5. 10 tool updates
    • Changedbudget_estimate1 field changed
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "kvp_ops",
        -  "storage_bytes",
        -  "rag_index",
        -  "rag_query",
        -  "inbound_email"
        -]New value: +[
        +  "kvp_ops",
        +  "storage_bytes",
        +  "rag_index",
        +  "rag_query",
        +  "inbound_email",
        +  "outbound_http"
        +]
    • Addedmemory_get
    • Addedmemory_put
    • Addedmemory_search
    • Addedrag_note
    • Addedschedule_create
    • Addedschedule_delete
    • Addedschedule_get
    • Addedschedule_list
    • Addedschedule_runs_list
  6. 19 tool updates
    • Addedbilling_portal
    • Addedbilling_purchases_list
    • Changedbudget_estimate1 field changed
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "kvp_ops",
        -  "storage_bytes",
        -  "rag_index",
        -  "rag_query"
        -]New value: +[
        +  "kvp_ops",
        +  "storage_bytes",
        +  "rag_index",
        +  "rag_query",
        +  "inbound_email"
        +]
    • Addedinbox_attachment_get
    • Addedinbox_audit_list
    • Addedinbox_blocklist_add
    • Addedinbox_blocklist_delete
    • Addedinbox_blocklist_list
    • Addedinbox_create
    • Addedinbox_delete
    • Addedinbox_get
    • Addedinbox_list
    • Addedinbox_message_get
    • Addedinbox_message_raw
    • Addedinbox_messages_list
    • Addedinbox_webhook_create
    • Addedinbox_webhook_delete
    • Addedinbox_webhook_deliveries_list
    • Addedinbox_webhook_list
  7. 17 tool updates
    • First observedagent_bootstrap
    • First observedbilling_machine_pay
    • First observedbudget_estimate
    • First observedbudget_get
    • First observedfile_upload
    • First observedfiles_list
    • First observedfiles_types
    • First observedinspect_storage
    • First observedkeys_create
    • First observedkvp_delete
    • First observedkvp_get
    • First observedkvp_list
    • First observedkvp_put
    • First observedrag_search
    • First observedrun_finish
    • First observedsupport_contact
    • First observedusage_get

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to track real-time token spend and cost velocity, automatically throttle or freeze execution when budgets are exceeded, and enforce sandbox and safety guardrails.
    7
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI agents with a prepaid, capped payment method so they can request charges without accessing real accounts. Enforces spending limits, requires human approval for larger transactions, and supports out-of-band approvals via CLI, dashboard, or Telegram.
    MIT
  • -
    license
    Not graded
    quality
    F
    maintenance
    Enables AI agents to manage and use prepaid virtual Visa cards with hard budget limits for secure online transactions. It provides tools for creating cards, checking balances, and retrieving payment credentials with human-in-the-loop approvals.
    1
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.