Skip to main content
Glama

Server Details

AI-first file sharing and collaboration. 251 tools give agents a full workspace: file storage, branded shares, comments, workflows, and built-in RAG. 50GB free, no credit card.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 20 of 20 tools scored. Lowest: 3.2/5.

Server CoherenceA
Disambiguation4/5

Most tools have clearly distinct purposes, but there is minor overlap between 'find' (unified search) and narrower search tools ('storage action=search', 'metadata action=search'), as well as between 'share' and 'fileshare'. Descriptions clarify usage, but an agent might occasionally misselect.

Naming Consistency5/5

All tool names are single-word nouns or hyphenated compounds (e.g., 'fileshare', 'how-to'), following a consistent, predictable pattern. No mixing of conventions or verb styles.

Tool Count5/5

20 tools is appropriate for the server's broad scope (file management, collaboration, workflows, etc.). Each tool earns its place with well-defined actions, and the count is not overwhelming.

Completeness5/5

The tool surface covers the entire lifecycle of file storage, sharing, collaboration, tasks, workflows, and administration. No obvious gaps are apparent; even edge cases like metadata extraction and e-signatures are addressed.

Available Tools

20 tools
aiA
Destructive
Inspect

Ripley — the MCP delegation surface over Fastio's RAG agent. Ripley is read-only for storage CONTENT: it answers natural-language questions about workspace/share files & folders (with citations) and never creates/edits/deletes your files — for content writes, call the primitive MCP tools directly. It DOES create/manage chat threads (chat-create/chat-update/chat-delete/message-send) and can generate shares (share-generate). Prefer Ripley over issuing many primitive reads: ask one NL question and let the server-side agent search + synthesize. Quick start: action='ask' (question + profile) → returns {answer_text, citations, chat_id, message_id, web_url}; action='status' for an engineered workspace-status summary. Lower-level chat/message actions remain for multi-turn control. Call action='describe' for the full action/param reference. Destructive: chat-delete. Side effects: ask/status/chat-create/message-send consume credits; chat-cancel terminates an in-progress message (partial tokens billed; idempotent). Verbosity (detail param): chat-list/message-list default to terse (compact rows). chat-details/message-details default to full (drill-down). Pass an explicit detail='standard'|'full' to override (best-effort: chat/message/activity endpoints may not yet honor detail server-side).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNochat-create (workspace only): 'user' (default) or 'agent' — flags the chat as agentic; set at creation, immutable; not accepted on share chats. chat-list:…
nameNoNew chat name.
waitNomessage-read only. Default true: bounded-wait for completion (up to ~24s on a workspace via the activity long-poll). Set false for a single-shot status probe…
filesNoFile opaque IDs (max 25, share share-generate).
limitNochat-list/message-list page size. Best-effort: the AI API spec documents NO pagination on the chat-list or message-list endpoints (both return all rows under…
actionYesOperation. Use 'describe' for full action reference.
detailNoPer-entity verbosity for chat-list/chat-details/message-list/message-details (best-effort: chat/message/activity endpoints may not yet honor detail…
offsetNochat-list/message-list pagination offset — see the limit caveat (no documented paging on these endpoints; forwarded best-effort).
chat_idNoAI chat ID.
privacyNoChat privacy (default: private). Workspace chat-create only — share chats are always private.
node_idsNoFile node IDs (max 25, workspace share-generate).
share_idNoAlias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted).
context_idNoAlias for profile_id (either name works)
message_idNoAI message ID.
profile_idNoPolymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also…
query_textNoQuestion or prompt (max 12,768 chars).
instance_idNoAlias for profile_id (REST/how-to name; profile_id is canonical).
context_typeNoAlias for profile_type (either name works)
files_attachNoAttach workspace FILES for the AI to read directly (comma-separated nodeId:versionId pairs; versionId optional → backend resolves current). Works regardless of…
profile_typeNoProfile type: "workspace" or "share".
workspace_idNoAlias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted).
folders_attachNoAttach workspace FOLDERS for the AI to read (comma-separated folder nodeIds; no depth). Denied on restricted-view shares. See describe.
include_deletedNochat-list: if true, list deleted chats via the /deleted variant (workspace AND share).
Behavior5/5

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

Discloses read-only behavior for content, destructive actions (chat-delete), side effects (credit consumption for ask/status/chat-create/message-send), idempotency of chat-cancel, and verbosity defaults. Annotations are consistent (destructiveHint true corresponds to chat-delete).

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 well-organized, starting with high-level purpose then detailing actions and caveats. Could be slightly more concise, but every sentence adds value. Front-loaded with core concept.

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 23 parameters and no output schema, the description covers all major actions, their behaviors, side effects, and default modes. It also directs to 'describe' for full reference, completing the information needed for an agent to select and invoke the tool 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 100% with parameter descriptions. The tool description adds context beyond schema, such as default verbosity per action, best-effort nature of detail parameter, and clarification for file_attach/folders_attach. Provides additional usage-level guidance that enhances 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?

The description clearly states that Ripley is a delegation surface for a RAG agent, answering natural-language questions about files/folders while managing chat threads and generating shares. It distinguishes itself from sibling primitive tools by advising to prefer Ripley over issuing many primitive reads.

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 provides when to use and when not: 'Prefer Ripley over issuing many primitive reads' and 'for content writes, call the primitive MCP tools directly.' Also gives quick start action='ask' and mentions lower-level actions for multi-turn control.

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

assetB
Destructive
Inspect

Brand asset management (logos, banners, profile photos) on org/workspace/share/user. Upload, delete, list, read. Call action='describe' for the full action/param reference. Destructive: delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesOperation. Use 'describe' for full action reference.
contentNoPlain text content (e.g. SVG).
asset_idNoAsset ID or name.
metadataNoAdditional metadata as JSON array string.
entity_idNoOpaque ID of a specific object (file, comment, etc.). Pair with entity_type to disambiguate. Entity ID (optional for user).
file_nameNoOriginal file name.
asset_typeNoAsset type key (e.g. 'logo', 'banner', 'photo').
entity_typeNoEntity type.
file_base64NoBase64-encoded binary content.
content_typeNoMIME type (default application/octet-stream).
Behavior3/5

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

Annotations already declare destructiveHint=true, and the description confirms 'Destructive: delete.' It adds the note to call 'describe' for full reference but does not disclose other behaviors like overwrite policies or listing limits.

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 extremely concise, with two sentences covering purpose, operations, and reference. Every sentence is necessary and front-loaded.

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

Completeness3/5

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

Given the tool has 10 parameters and no output schema, the description is somewhat incomplete. It relies on the agent calling 'describe' to get full action/param reference. The core purpose is clear, but behavioral details are lacking.

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 the baseline is 3. The description gives examples of asset types (logos, banners, profile photos) and mentions entity scopes, but these are also covered in the schema. It adds minimal extra meaning.

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 clearly states it manages brand assets (logos, banners, profile photos) across entities (org, workspace, share, user) and lists main operations (upload, delete, list, read). It distinguishes itself from siblings by focusing on brand assets, though it doesn't explicitly differentiate from the 'upload' sibling tool.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings like 'upload' or 'storage'. It does not state when not to use it or provide examples of appropriate contexts.

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

authA
Destructive
Inspect

Auth & sessions: signin, signup, signout, 2FA, PKCE, API keys, OAuth sessions. Call action='describe' for the full action/param reference. Destructive: api-key-delete, oauth-revoke, oauth-revoke-all.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoVerification or authorization code. Meaning is action-specific — see action='describe' for the per-action reference (e.g. 2FA code for 2fa-verify, reset code…
nameNoAPI key label.
emailNoEmail address.
tokenNo2FA / verification token. Meaning is action-specific — see action='describe' for the per-action reference (e.g. 2FA-disable token, 2fa-verify-setup token, 2FA…
actionYesOperation. Use 'describe' for full action reference.
key_idNoAPI key identifier.
scopesNoScope strings, e.g. ['org:123:rw']. Omit for full access.
api_keyNoFastio API key.
channelNo2FA channel.
expiresNoToken lifetime in seconds.
passwordNoAccount password.
last_nameNoFamily name.
password1NoNew password.
password2NoNew password confirmation.
agent_nameNoAgent name for approval screen and audit logs.
first_nameNoGiven name.
scope_typeNoPKCE scope type. Default 'user' (full access).
session_idNoOAuth session identifier.
email_tokenNoEmail verification code.
key_expiresNoISO 8601 expiration datetime.
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'status'). Omit to get the compact action index.
exclude_currentNoSkip current session in revoke-all.
current_session_idNoCurrent session ID for exclusion.
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=true. The description adds value by listing specific destructive actions (api-key-delete, oauth-revoke, oauth-revoke-all) and highlighting the 'describe' action for detailed reference. No contradiction with annotations.

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 three sentences, efficiently listing the core functionality, the discoverability mechanism, and destructive actions. Every sentence adds value; no redundancy or fluff.

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?

Given the tool's complexity (23 parameters, no output schema), the description provides an entry point and relies on the 'describe' action for completeness. It covers enough context for initial use, though return values and detailed parameter usage are deferred.

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 baseline is 3. The description does not add meaning beyond the schema; it only directs to the 'describe' action for param details. No additional parameter semantics are provided.

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 clearly identifies the tool as handling authentication and sessions (signin, signup, signout, 2FA, PKCE, API keys, OAuth sessions). It distinguishes from sibling tools like 'user' or 'org' by focusing on auth operations. The verb+resource pattern is specific and unambiguous.

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

Usage Guidelines3/5

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

The description instructs to call action='describe' for full action/param reference, providing a discoverability mechanism. However, it does not explicitly state when to use this tool vs alternatives (e.g., when to use 'auth' vs 'user' for user management) or 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.

commentA
Destructive
Inspect

Comments on files: add/list/delete/react, anchor to image regions, A/V timestamps, PDF pages, or text selections, link to tasks. Call action='describe' for the full action/param reference. Destructive: delete, bulk-delete. Verbosity (detail param): list/list-all/linked default to terse (compact rows). details defaults to full (drill-down). Pass an explicit detail='standard'|'full' to override (best-effort — may be a silent no-op until the comments API honors output=; see describe).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort: 'created' or '-created' (default newest first).
textNoComment body (max 8192 chars; max 500 display chars with mention tags stripped). Supports @[profile|user|file:...] mentions.
emojiNoSingle emoji character.
limitNoPage size 2-200.
actionYesOperation. Use 'describe' for full action reference.
detailNoPer-comment verbosity for list/list-all/details/linked. Defaults: terse for list/list-all/linked (compact rows), full for details (drill-down). See…
offsetNoOffset for pagination.
node_idNoStorage tree node opaque ID. Both files and folders are nodes — use this name regardless of which.
share_idNoAlias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted).
referenceNoAnchor: image region, A/V timestamp, PDF page, or text selection.
comment_idNoComment opaque ID.
context_idNoAlias for profile_id (either name works)
profile_idNoPolymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also…
propertiesNoArbitrary key-value JSON object metadata (edit action only). Accepts a native object or a JSON string. Merged into the comment's stored properties;…
comment_idsNoArray of comment opaque IDs.
context_typeNoAlias for profile_type (either name works)
profile_typeNoProfile type.
workspace_idNoAlias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted).
display_limitNolist-all only — ignored on the markdown list action. Number of comments to return to the agent (default 10, max 200). Backend page_size unchanged for cache…
include_totalNoInclude total count in response.
reference_typeNoFilter by anchor type.
include_deletedNoInclude soft-deleted.
linked_entity_idNoTask opaque ID.
parent_comment_idNoParent comment ID for reply (single-level threading).
linked_entity_typeNoLinked entity type — only 'task' is supported today.
Behavior4/5

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

Description adds context beyond annotations: identifies destructive actions (delete, bulk-delete), explains verbosity behavior and that override may be a silent no-op. No contradiction with annotations.

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?

Description is well-structured with a front-loaded overview, followed by specifics on destructive actions and verbosity. It is slightly dense but each sentence adds value; could be more concise but still effective.

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?

Given the tool's complexity (25 parameters, multiple actions, nested objects, no output schema), the description covers essential behavioral aspects (destroy, verbosity, describe action). Lacks example usage or return format, but adequate for a complex tool.

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%, baseline 3. Description adds meaningful semantics: clarifies that node_id applies to both files and folders, share_id implies profile_type=share, and workspace_id similarly. Also explains the purpose of the 'describe' action and verbosity defaults.

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 clearly states the resource (comments) and specific operations: add, list, delete, react, anchor to various media, link to tasks. It distinguishes itself from sibling tools like 'how-to' or 'task' by focusing on commenting functionality.

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?

Provides explicit guidance to call 'action=describe' for full reference, explains verbosity defaults and overrides. However, lacks explicit when-not-to-use or alternative tools among siblings.

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

downloadA
Read-onlyIdempotent
Inspect

Download URLs for files (file-url), folder ZIPs (zip-url), and quickshare links (quickshare-details — DEPRECATED, use the fileshare tool's create action for new shares). Consumes bandwidth credits. Call action='describe' for the full action/param reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesOperation. Use 'describe' for full action reference.
node_idNoStorage tree node opaque ID. Both files and folders are nodes — use this name regardless of which.
share_idNoAlias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted).
context_idNoAlias for profile_id (either name works)
profile_idNoPolymorphic context ID. Pair with profile_type=workspace|share. Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also…
version_idNoSpecific file version ID.
instance_idNoAlias for profile_id (REST/how-to name; profile_id is canonical).
context_typeNoAlias for profile_type (either name works)
profile_typeNoProfile type.
workspace_idNoAlias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted).
quickshare_idNoQuickshare opaque identifier.
Behavior4/5

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

The description adds behavioral context beyond annotations: it mentions bandwidth credit consumption and deprecation of quickshare-details. Annotations already indicate read-only and idempotent behavior, so the description provides useful additional detail without contradiction.

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 extremely concise: two sentences that front-load the main actions, include a deprecation warning, and point to the describe action for further reference. No wasted words.

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

Completeness3/5

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

While the schema covers all parameters and annotations add safety context, the description itself defers to action='describe' for full reference, indicating it is not fully self-contained. It lacks details on return values (no output schema) and does not explain bandwidth credits.

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 each parameter has individual descriptions. The tool description adds no extra parameter-level semantics beyond categorizing actions and noting deprecation. Baseline score 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?

The description clearly states the tool's function: downloading URLs for files, folder ZIPs, and (deprecated) quickshare links. It specifies the verb 'download' and the resource types (file-url, zip-url), and distinguishes itself from the fileshare tool for the deprecated action.

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

Usage Guidelines3/5

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

The description only provides usage guidance for the deprecated quickshare-details action, directing users to the fileshare tool. It does not offer when-to-use or when-not-to-use guidance for the primary actions (file-url, zip-url) or compare with other sibling tools like upload or storage.

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

eventA
Idempotent
Inspect

Event log and activity monitoring for workspaces and shares. Also surfaces the per-member DASHBOARD — a 'what's on your plate' feed of cards (obligations, @mentions, file activity, pending signatures) for one workspace, with view-only dismiss/snooze and a best-effort AI overlay. Call action='describe' for the full action/param reference. Verbosity (detail param): search/activity-list/activity-poll default to terse (compact rows). summarize defaults to standard (envelope around the AI summary). details defaults to full (drill-down). Pass an explicit detail='terse'|'standard'|'full' to override (best-effort on summarize/activity-list/activity-poll — only search/details honor output=; see describe).

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoMax seconds server holds connection (1-95, default 95).
eventNoExact event name. See describe action for catalog.
limitNoMax results (1-250, default 100).
actionYesOperation. Use 'describe' for full action reference.
cursorNoLast activity timestamp for incremental polling.
detailNoPer-record verbosity for search/summarize/details/activity-list/activity-poll. Defaults: terse for search/activity-list/activity-poll (compact rows), standard…
offsetNoPagination offset.
org_idNoFilter by organization profile ID.
user_idNoFilter by user profile ID.
card_keyNoDashboard card identity "<lane>:<id>" (e.g. "obligation:123"). From a dashboard-list card. Required for dashboard-dismiss/dashboard-undismiss; URL-encoded into…
categoryNoEvent category. See describe action for valid values.
event_idNoAlphanumeric event opaque ID.
share_idNoFilter by share profile ID.
entity_idNoOpaque ID of a specific object (file, comment, etc.). Pair with entity_type to disambiguate. 19-digit workspace, share, or File Share ID to monitor…
object_idNoFilter by related object opaque ID (file, folder, etc.).
context_idNoAlias for profile_id (either name works)
profile_idNoPolymorphic context ID. Pair with profile_type=workspace|share|org|fileshare. Use workspace_id instead when only workspaces are valid. 19-digit profile ID…
visibilityNoFilter by event visibility level (external_audit_log | external). Default returns both, excludes internal.
created_maxNoISO 8601 datetime — events on or before.
created_minNoISO 8601 datetime — events on or after.
envelope_idNoSignature envelope id (a signature card's target.id). Required for dashboard-sign-link.
subcategoryNoEvent subcategory. See describe action for valid values.
acknowledgedNoFilter by acknowledgment status.
context_typeNoAlias for profile_type (either name works).
lastactivityNoTimestamp from prior poll's response. Omit on first call.
profile_typeNoProfile type: "workspace", "share", or "fileshare". `fileshare` is valid for activity-list (long-poll a File Share's feed — workspace members only; recipients…
snooze_untilNoOptional for dashboard-dismiss: a future "Y-m-d H:i:s UTC" timestamp to snooze the card until (it reappears after). Omit for a permanent dismiss.
user_contextNoFocus guidance for AI summary, e.g. "Focus on uploads".
workspace_idNoWorkspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Filter by workspace…
calling_user_idNoFilter by the user who triggered the event.
parent_event_idNoFilter by parent event ID for serial/batch events. SCOPE-EXCLUSIVE: cannot combine with any filter other than acknowledged, limit, offset.
Behavior4/5

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

The description adds valuable context beyond annotations: it explains that dashboard actions are 'view-only dismiss/snooze', mentions 'best-effort AI overlay', and clarifies that verbosity overrides are best-effort. This aligns with idempotentHint=true and destructiveHint=false, with no contradiction.

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

Conciseness3/5

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

The description is relatively long but front-loads the main purpose and then dives into verbosity details. It could be more structured (e.g., bullet points) and slightly more concise, but it is not excessively verbose.

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

Completeness3/5

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

Given 31 parameters and no output schema, the description explains the major actions and defaults, and points to 'describe' for full details. However, it does not describe return values or response structure, leaving some gaps for a complex tool.

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 parameters thoroughly. The description adds some meta-context (e.g., default verbosity rules), but this is mostly a reorganization of schema info. The added value is limited.

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 clearly states the tool is for event log and activity monitoring for workspaces and shares, and also surfaces a dashboard feed. It specifies multiple actions and provides a clear verb-resource relationship. However, it does not explicitly differentiate from sibling tools like 'activity' or 'user', which might also deal with events.

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

Usage Guidelines3/5

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

The description advises to call action='describe' for full reference, which is helpful. It explains default verbosity for different actions, but does not provide explicit guidance on when to use this tool versus alternatives, nor 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.

fileshareA
Destructive
Inspect

File Shares: durable single-file share links. create/list/details/update/delete, per-user grants (grant-list/grant-add/grant-revoke incl. grant-by-email with pending invites), and direct read/preview/version URLs. Call action='describe' for the full action/param reference. Bound to ONE workspace file (immutable binding); deletion NEVER touches the bound file. Recipient 404 is UNIFORM — not-found / revoked / expired are indistinguishable by design (do not speculate). Passwords are supplied via the x-ve-password header (the password input) — never placed in URLs. Destructive: delete (removes the share, not the file). Reversible access change: grant-revoke (re-grantable). download-url / preview-url / version-download-url return a DIRECT API URL — gated shares require Authorization and/or x-ve-password HEADERS on the GET (the password is never embedded in the URL).

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeNocreate: the workspace FILE node opaque ID to bind the share to (required). The binding is immutable — share a different file by creating a new File Share.
userNogrant-add / grant-revoke: the grantee's numeric user ID (19-digit). EXACTLY ONE of user / email.
emailNogrant-add / grant-revoke: the grantee's email. EXACTLY ONE of user / email. An unregistered email becomes a PENDING invite (auto-activates on signup; capped to…
limitNolist: page size (1-500, default 100).
titleNoHuman-readable share title. create / update.
actionYesOperation. Use 'describe' for full action reference.
offsetNolist: pagination offset (default 0).
expiresNocreate/update: relative expiry in SECONDS from now (1..3155760000). Mutually exclusive with expires_at.
passwordNocreate/update: SET the share password. On consumer actions (details / download-url / preview-url / versions-list / version-download-url): supply the recipient…
capabilityNogrant-add: the capability to grant — view | download | edit (ordered). `edit` allows content write-back. Required for grant-add.
expires_atNocreate/update: absolute expiry as 'YYYY-MM-DD HH:MM:SS UTC' (no timezone = UTC). Mutually exclusive with expires. update: send '' (empty string) to CLEAR the…
version_idNoversion-download-url: the specific version OpaqueId to download (from versions-list / details).
fileshare_idNoFile Share ID (19-digit numeric). Required for every action except create / list.
preview_typeNopreview-url: the preview variant (e.g. 'image', 'pdf', 'video'). Multi-file previews 307-redirect to a token-bearing sub-file URL.
workspace_idNoParent workspace ID (19-digit or custom name). create / list — the management authz anchor.
access_optionNoAccess tier: anyone_with_link | any_registered | named_people. create / update. `edit` capability is NEVER conferred by a tier — it always needs an explicit…
Behavior5/5

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

The description goes beyond annotations by detailing critical behaviors: deletion never touches the bound file, uniform 404 for security, password handling via header, and reversible access changes. These details provide rich transparency that annotations alone do not cover.

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 a single paragraph with dense information. It is front-loaded with the core purpose and efficiently covers all capabilities. While it is somewhat long, every sentence adds value, and it is well-structured for the complexity.

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?

Given the tool's complexity (16 parameters, no output schema), the description provides a comprehensive overview of actions, constraints, and security. It explains key design decisions like immutable binding and uniform 404. However, it lacks details on return values for each action, which a complete description would include.

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 input schema has 100% description coverage, so the baseline is 3. The description adds extra value by clarifying that password must be supplied via header and by emphasizing constraints like EXACTLY ONE of user/email for grant-add/grant-revoke. This improves parameter understanding 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?

The description clearly states it manages 'durable single-file share links' with operations like create/list/details/update/delete, per-user grants, and direct URLs. It differentiates from sibling tools by focusing specifically on file shares and emphasizing immutable binding to a workspace file, which distinguishes it from generic sharing tools.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives. While the description mentions binding to a workspace file and uniform 404, it does not provide context for choosing fileshare over sibling tools like 'share' or 'upload'. The lack of usage criteria makes it less helpful for an AI agent to decide.

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

findA
Read-only
Inspect

Unified search across a workspace or share — ONE query, results GROUPED BY TYPE into buckets (files, metadata [workspace only], comments, workflows), each independently paginated and health-reported. Call action='describe' for the full action/param reference. This is the grouped SUPERSET; for a single result type prefer the narrower tools: storage action=search (files only), metadata action=search (lexical metadata fields only). The code-mode search tool searches the API endpoint catalog, not your content.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoAlias for search (the name storage + code-mode search use).
actionYesOperation. Use 'describe' for full action reference.
searchNoSearch query string. 1-1024 chars; empty/blank rejected (platform 1605). Searched across every applicable bucket. (Alias: query.)
share_idNoAlias for profile_id when profile_type=share.
context_idNoAlias for profile_id.
profile_idNoWorkspace or share opaque ID (19-digit numeric ID or custom name). Pair with profile_type. Four accepted aliases besides this one (five id params total):…
files_limitNofiles bucket page size (default 25).
instance_idNoAlias for profile_id (REST/how-to name; profile_id is canonical).
context_typeNoAlias for profile_type.
files_offsetNofiles bucket result offset (default 0).
profile_typeNoProfile to search: "workspace" or "share". (Alias: context_type.)
workspace_idNoAlias for profile_id when profile_type=workspace.
comments_limitNocomments bucket page size (default 25).
metadata_limitNometadata bucket page size (default 25). Workspace only — dropped from the request on a share (shares have no metadata bucket).
comments_offsetNocomments bucket result offset (default 0).
metadata_offsetNometadata bucket result offset (default 0). Workspace only — dropped from the request on a share (shares have no metadata bucket).
workflows_limitNoworkflows bucket page size (default 25).
workflows_offsetNoworkflows bucket result offset (default 0).
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds value by detailing grouping, independent pagination, health reporting, and that metadata bucket is workspace-only. No contradictions. Additional context beyond annotations.

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?

Description is concise and well-structured: purpose first, then details, then alternatives and caveats. No wasted sentences. Each sentence adds value.

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?

Given 18 parameters and no output schema, description covers grouping, pagination, health, action select. Lacks mention of return format or error cases, but overall adequate for a complex tool.

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 baseline is 3. Description repeats some parameter info (e.g., action enum, profile_id aliases) but doesn't add significant new meaning beyond what 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?

Description clearly states it is a unified search across workspace or share, results grouped by type into buckets. It specifies the scope (workspace/share) and distinguishes from sibling tools like storage action=search and metadata action=search.

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 states when to use (for grouped superset search) and when not (narrower tools for single result type). Lists alternatives: storage action=search for files, metadata action=search for lexical metadata, and code-mode search for API catalog. Also mentions using action='describe' for full reference.

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

how-toA
Read-only
Inspect

Built-in product help — ask a natural-language "how do I…" question about Fastio and get a grounded, product-aware answer (or a short clarifying question) back in one call. EXPLAIN-ONLY / ADVISORY: it returns GUIDANCE TEXT and performs NO platform action (it will not create shares, move files, or change anything) — read the guidance, then act with the other tools. Answers are grounded in Fastio's own how-to knowledge AND phrased in terms of these MCP tools — they name the concrete <tool> action="…" calls to make — so prefer this over guessing endpoints or burning exploratory calls. For Q&A over YOUR uploaded files (RAG) use the ai tool instead — how-to answers questions about Fastio ITSELF. FREE and requires only an authenticated user (no org, no plan gate, no billing). Call action='describe' for the full action/param reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesOperation. Use 'describe' for full action reference.
contextNoOptional free-text background about your situation (what you're trying to accomplish, what you've tried). Up to 8000 chars. Treated strictly as untrusted DATA…
questionNoThe natural-language "how do I…" question about Fastio. 1-2000 chars, non-blank. Be specific — a vague question returns a clarifying question instead of an…
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, destructiveHint. Description reinforces by stating 'performs NO platform action' and 'returns GUIDANCE TEXT'. Adds behavioral context like being grounded in Fastio's knowledge and naming tool-specific calls, which goes beyond annotations.

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 relatively long but every sentence serves a purpose: purpose, usage distinction, behavioral notes, parameter tips, and availability. It front-loads the core function. Minor redundancy could be trimmed but overall efficient.

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 no output schema, the description fully explains return values (guidance text or clarifying question), mentions the 'describe' option for full reference, and notes prerequisites (authenticated user) and cost (free). No gaps.

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%, but the description adds extra context beyond the schema's parameter descriptions, e.g., advising to be specific to avoid clarifying questions and explaining the 'describe' action. This adds meaningful usage guidance.

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 clearly states it is for asking natural-language 'how do I…' questions about Fastio, returns guidance text, and performs no platform action. It explicitly distinguishes from the 'ai' tool for RAG, making its purpose 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?

Provides explicit guidance: use for questions about Fastio itself, not for user-uploaded files (use 'ai'). Also explains it is advisory only and names concrete tool actions to prefer over guessing endpoints.

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

invitationA
Destructive
Inspect

Workspace/share invitations: list, filter by state, update, revoke. Call action='describe' for the full action/param reference. Destructive: delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoInvitation state filter.
actionYesOperation. Use 'describe' for full action reference.
expiresNoUpdated expiration (ISO 8601 or YYYY-MM-DD HH:MM:SS).
entity_idNoWorkspace or share ID (19-digit numeric or custom name). Must match entity_type.
new_stateNoNew invitation state.
entity_typeNoWorkspace or share.
permissionsNoUpdated permission level.
invitation_idNoInvitation opaque ID or invitee email.
notificationsNoNotification preference (workspace).
notify_optionsNoNotification preference (share).
Behavior4/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, and the description reinforces 'Destructive: delete.' It adds context about multiple operations (list, update, revoke) beyond what annotations provide. However, it does not detail side effects like how revocation affects existing invitations.

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?

Two sentences, both front-loaded with core functionality and a key usage hint. Every sentence serves a purpose without redundancy.

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?

Given the complexity (10 parameters, multiple actions) and no output schema, the description is fairly complete. It covers the tool's purpose and the key behavior hint (describe). It could mention the return format of list operations, but overall adequate.

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 each parameter. The description adds no further parameter-level detail beyond the schema, meeting the baseline for high coverage.

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 clearly and specifically states the tool manages workspace/share invitations with actions: list, filter by state, update, revoke. It distinguishes this tool from siblings by mentioning the destructive delete capability.

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 description advises to call action='describe' for the full action/parameter reference, providing a clear entry point. However, it does not explicitly contrast with sibling tools like 'member' or 'workspace' for when to use this tool instead.

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

memberA
Destructive
Inspect

Workspace/share member management: list, add, remove, update, transfer ownership, join, leave. Call action='describe' for the full action/param reference. Destructive: remove.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoShare permission level.
limitNoMaximum number of items to return (1-500, default 100)
actionYesOperation. Use 'describe' for full action reference.
offsetNoNumber of items to skip (default 0)
expiresNoExpiration: workspace ISO 8601, share YYYY-MM-DD HH:MM:SS.
messageNoInvitation email message (10-255 chars).
user_idNoUser profile ID (share).
entity_idNoWorkspace or share ID (19-digit numeric or custom name). Must match entity_type.
member_idNoMember ID (workspace).
expirationNoAlias for expires (share only).
entity_typeNoWorkspace or share.
permissionsNoWorkspace permission level.
display_limitNoHow many members to return for the list action. Default 10, max 500. The MCP trims post-fetch; backend paging stays MCP-internal so the platform cache stays…
notificationsNoNotification preference (workspace string).
invitation_keyNoInvitation key string.
notify_optionsNoNotification preference (share).
email_or_user_idNoEmail (to invite) or user ID (to add directly).
invitation_actionNoAccept or decline.
force_notificationNoForce notify existing user (workspace-only).
invitation_expiresNoInvitation expiration ISO 8601 (workspace-only).
Behavior3/5

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

Annotations already indicate destructiveHint=true. The description adds 'Destructive: remove,' which is consistent but does not elaborate on other behaviors (e.g., auth requirements, rate limits). Minimal added value beyond annotations.

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?

Extremely concise: two sentences covering purpose and a key usage tip. No unnecessary words, front-loaded with the main function.

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

Completeness2/5

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

Despite high parameter count (20) and no output schema, the description is minimal. It offloads details to action='describe', leaving the agent with little upfront understanding of each action's requirements or effects.

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 baseline is 3. The description does not add meaning beyond the schema; it merely references action='describe' for details. No additional param context provided.

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 clearly states 'Workspace/share member management' and lists specific actions (list, add, remove, update, transfer ownership, join, leave). This distinguishes it from sibling tools like workspace, share, or user.

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 description advises calling action='describe' for full reference and highlights that 'remove' is destructive. However, it lacks explicit guidance on when to use this tool versus alternatives or 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.

metadataA
Destructive
Inspect

AI metadata templates & extraction (the unstructured-data automation pipeline): template CRUD/clone, assign/resolve, the AI pipeline (eligible -> preview-match -> suggest-fields -> template-create -> nodes-add/-list -> auto-match -> extract-all), saved views, and lexical metadata search. Call action='describe' for the full action/param reference. Node-level metadata (get/set/delete/extract on a single file) lives on the storage tool. Destructive: template-delete, view-delete, nodes-remove. AI/credit side-effects: preview-match, suggest-fields, auto-match, extract-all (each spends AI credits).

ParametersJSON Schema
NameRequiredDescriptionDefault
qNosearch keyword(s). 1-1024 chars. Multi-token = ALL tokens (AND); case-insensitive; substring for <=64 chars, else whole-word.
nameNoTemplate name (1-255 chars: template-create/-update/-clone and preview-match), OR an optional saved-view label on view-save (≤30 chars; omit to keep the…
forceNoextract-all: when 'true', re-extract every mapped node even if it already has KV data (re-extract flow). Default 'false' skips nodes with values present.
limitNosearch: page size (1-100, default 100).
actionYesOperation. Use 'describe' for full action reference.
configNoview-save config JSON: `{version:1, columns:[{field,visible?,width?}], sort:{field,dir}, filters:[{field,operator,value_type,value}]}`. Max 5 filters…
cursorNoeligible/nodes-list: opaque pagination cursor from a prior page's response. Omit for the first page.
fieldsNoJSON array of field defs (template-create/-update/-clone). At least one field must have autoextract:true (default) or API returns 1605. Each: {name,…
offsetNosearch: results to skip (default 0). offset+limit must stay <= 10000.
filtersNotemplate-list filter (default 'all'): all|enabled|disabled|custom|system. (Replaces the old workspace `template_filter` param.)
node_idNoStorage tree node opaque ID (used by template-resolve, and template-assign to scope an assignment).
categoryNoMetadata template category (accepted but ignored server-side — no effect).
node_idsNoJSON array of node IDs. suggest-fields: 1-25 file nodes. nodes-add/-remove: nodes to map/unmap (files+notes; folders/links rejected) — deduped first-seen, max…
sort_dirNonodes-list: asc|desc (only with sort_field).
page_sizeNoeligible/nodes-list: cursor page size (1-250, default 100). Server caps at 250.
batch_sizeNoauto-match: optional batch-size override (clamped server-side). Omit for default.
sort_fieldNonodes-list: optional template field name to sort by.
descriptionNoTemplate description. ≤1000 chars, empty allowed (template-create/-update/-clone). preview-match: required, 1-2000. suggest-fields: optional, ≤2000.
template_idNoMetadata template ID (e.g. mt_abc123). For search, restricts to nodes with values from this template (custom fields excluded).
user_contextNosuggest-fields: short view/template hint (1-64 chars, letters/numbers/spaces). Example: "photo collection".
workspace_idNoWorkspace opaque ID (19-digit numeric ID or custom name). Required for every action.
display_limitNosearch: how many items to return post-fetch. Default 10, max 100 (the backend fetches at most 100 per page — a higher value has no effect; use offset to page…
extract_fieldsNoextract-all: JSON array of field names to restrict the batch job to (e.g. `["vendor","amount"]`); omit for all fields.
parent_node_idNoview-export destination folder opaque ID (must be a folder, not trashed). Omit for workspace root.
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'template-list'). Omit to get the compact action index.
Behavior5/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=true), the description adds details about specific destructive actions and AI credit consumption. It also notes that the category parameter is ignored, batch sizes are server-clamped, and field autoextract requirement, providing valuable behavioral context.

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 front-loaded with the core purpose and pipeline, then provides sibling guidance and behavioral notes. It is dense but every sentence adds value, with no wasted words. The length is appropriate for the tool's complexity.

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

Completeness3/5

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

Despite the thorough overview of operations and side-effects, the description lacks information about return values or output structure for actions like search, template-list, etc. There is no output schema, so the description should provide some guidance. The instruction to call action='describe' partially mitigates this, but for a 25-param tool, the description is not fully self-contained.

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?

With 100% schema description coverage, the baseline is 3. The description adds extra context such as the 'category' parameter being ignored and the 'action' parameter referencing 'describe' for full details. However, the description does not elaborate on many parameter details beyond the schema, so it slightly elevates but not to 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?

The description clearly states the tool handles 'AI metadata templates & extraction' and lists all major operations including CRUD, AI pipeline, views, and search. It distinguishes from the sibling 'storage' tool by noting that node-level metadata lives on that tool.

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?

The description explicitly says when to use the storage tool instead for node-level operations. It also advises to call action='describe' for full reference, and lists destructive actions and AI credit side-effects, guiding the agent on appropriate usage.

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

orgB
Destructive
Inspect

Organization management: CRUD, billing, members, invitations, ownership transfer, assets, discovery, custom domains. Call action='describe' for the full action/param reference. Destructive: close (permanently deletes org and all data).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name (3-100 chars).
roleNoPermission level: admin, member, guest, view (not 'owner').
emailNoEmail address of user to invite.
limitNoPage size.
meterNoMeter type, e.g. storage_bytes, transfer_bytes, ai_tokens.
stateNoInvitation state, e.g. pending, accepted.
tokenNoTransfer token for ownership claim.
actionYesOperation. Use 'describe' for full action reference.
detailNoPer-entity verbosity for list/discover-*/members/list-workspaces/details. Defaults: terse for list/discover-*/members/list-workspaces, full for details. See…
domainNoURL-safe subdomain (2-63 chars, lowercase, unique).
offsetNoPagination offset (0-based).
org_idNoOrganization 19-digit ID or domain string.
confirmNoConfirmation string, must match org domain or ID.
contentNoPlain text content. asset-upload: e.g. SVG body.
expiresNoUpdated expiration datetime.
messageNoCustom invitation email message (10-255 chars).
user_idNoUser ID.
end_timeNoEnd datetime (default now).
hostnameNoCustom domain FQDN, e.g. files.acme.com.
industryNoIndustry type, e.g. technology, healthcare, financial.
metadataNoAdditional metadata as JSON array string.
share_idNoFilter by share ID.
token_idNoTransfer token ID.
file_nameNoOriginal file name, e.g. logo.png.
member_idNoUser ID or email of member.
perm_joinNoPermission level required to join workspace.
asset_nameNoAsset name, e.g. "logo", "banner".
start_timeNoStart datetime (default 30 days ago).
descriptionNoDescription (10-1000 chars).
domain_nameNoDomain to check for availability.
file_base64NoBase64 file content for binary assets.
folder_nameNoURL-safe workspace folder name (4-80 chars).
join_actionNoInvitation action: accept or decline (default accept). Appended to the join URL path — restricted to these two values to prevent path injection.
permissionsNoUpdated permission level.
twitter_urlNoTwitter/X profile URL.
youtube_urlNoYouTube channel URL.
accent_colorNoBrand accent color as JSON.
billing_planNoPaid plan ID for billing-create, e.g. 'solo_monthly', 'business_v2_monthly', 'growth_monthly' (each has an annual variant). New orgs require a paid plan —…
content_typeNoMIME type, e.g. image/png. Defaults to application/octet-stream.
facebook_urlNoFacebook page URL.
homepage_urlNoOrganization website URL.
intelligenceNoEnable RAG indexing. COSTS 10 credits/page. Defaults "false". See describe.
workspace_idNoWorkspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Filter by workspace ID.
billing_emailNoBilling contact email.
display_limitNoNumber of orgs to return to the agent (default 10, max 100). Backend page_size unchanged for cache warmth — applies to list. Trims post-fetch only.
instagram_urlNoInstagram profile URL.
invitation_idNoInvitation ID or invitee email.
owner_definedNoCustom owner-defined properties as JSON.
invitation_keyNoInvitation key from invite link.
starting_afterNobilling-invoices cursor: pass a prior invoice's `id` to fetch the next page (cursor pagination, not offset).
use_backgroundNoEnable/disable background, "true"/"false".
background_modeNoBackground display mode, e.g. 'stretched', 'fixed'.
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'list'). Omit to get the compact action index.
background_colorNoBackground color as JSON.
background_color1NoPrimary background color as JSON.
background_color2NoSecondary background color as JSON.
perm_member_manageNoWho can manage members, e.g. 'Owner only'.
perm_authorized_domainsNoAuthorized email domain for auto-join.
Behavior3/5

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

Annotations already set destructiveHint=true and readOnlyHint=false. The description adds specific context about the 'close' action being destructive, which is helpful. However, it doesn't disclose other behavioral traits like rate limits, authentication needs, or side effects for non-destructive actions. The addition is moderate.

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 extremely concise at two sentences, front-loading the main capabilities and providing a critical directive ('use describe for full reference'). Every sentence earns its place.

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

Completeness2/5

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

Given the tool's complexity (58 parameters, many actions), the description is too sparse. It directs to 'describe' for details, but does not explain how parameters relate to actions or provide enough context for the agent to use it effectively without an extra call. The output schema is missing, and the description doesn't compensate.

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 every parameter already has a description. The tool description adds no extra meaning beyond listing the categories of actions. Baseline is 3 per guidelines, and no extra value is provided.

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 clearly states 'Organization management' and lists the covered areas (CRUD, billing, members, etc.), making the tool's purpose obvious. However, it doesn't differentiate from sibling tools like 'member' or 'invitation', which might overlap, but the name 'org' implies a unified management endpoint.

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

Usage Guidelines2/5

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

The description provides a meta-instruction to call action='describe' for full reference, but lacks guidance on when to use this tool versus alternatives or when not to use it. No exclusions or context are provided, leaving the agent without clear decision criteria.

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

shareA
Destructive
Inspect

Share management: create/update/delete, archive, password auth, members, autotitle. NOTE: quickshare-create is DEPRECATED (returns error 10756) — use the fileshare tool's create action for durable single-file shares. Call action='describe' for the full action/param reference. Destructive: delete (permanent). Side effects: autotitle AI-generates + applies a title/description (consumes credits, mutates share metadata). ⚠️ intelligence on create COSTS CREDITS (10/page) — default false unless user explicitly requests RAG. Verbosity (detail param): list/available/members default to terse (compact rows). public-details defaults to standard. details defaults to full (drill-down). Pass an explicit detail='terse'|'standard'|'full' to override.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoShare title (2-80 chars; maps to API 'title').
typeNoFilter by share type.
emailNoreview-reviewer-add-external: external reviewer email.
limitNoInternal backend page_size — stays MCP-internal so the platform cache stays warm. Use display_limit to control how many rows are actually returned. Forwarded…
titleNoShare title (2-80 chars). Alias of name.
actionYesOperation. Use 'describe' for full action reference.
detailNoPer-entity verbosity for list/available/members/public-details/details. Defaults: terse for list/available/members, standard for public-details, full for…
expandNoquickshare-create only. Set to 'node' to include the full backend payload as a nested `node` field. Default response is slim: `{id, web_url, expires_at}`.
inviteNoWho can invite others (default: owners).
notifyNoNotification setting (default: never).
offsetNoNumber of items to skip (default 0)
org_idNoFilter shares to this org.
confirmNodelete: must match the share's custom_name or id (validated client-side before the call). review-admin-resolve: must be 'true' (the force-resolve confirmation…
expiresNoExpiration: 'YYYY-MM-DD HH:MM:SS' for create/update; seconds (default 10800, max 604800) for quickshare-create.
messageNoreview-surface-create: optional message to reviewers (max 4000).
node_idNoStorage tree node opaque ID. Both files and folders are nodes — use this name regardless of which. File node opaque ID. Quickshares: single file, max 1 GB,…
outcomeNoreview-admin-resolve: force-resolve outcome approved|rejected.
asset_idNoShare-review asset id (one reviewed file). review-decision.
decisionNoreview-decision: approve | reject | request_changes (sent to the platform as `action`).
node_idsNoreview-surface-create (target_mode=fileset): JSON array of node ids to review. Native or string.
passwordNoPassword (only with 'Anyone with the link').
share_idNoShare profile ID or custom name.
reviewersNoreview-surface-create: REQUIRED non-empty JSON array of reviewer entries. Each entry is {"kind":"member","user_id":"<member user id>"} OR…
expires_atNoISO 8601 datetime for quickshare expiration.
share_typeNoNew share type.
surface_idNoShare-review surface OpaqueId. review-surface-get/-cancel/-admin-resolve/-reviewer-*/-decision.
custom_nameNoCustom share URL name (4-80 chars, alphanumeric).
deadline_atNoreview-surface-create: optional review deadline ('YYYY-MM-DD HH:MM:SS' UTC).
descriptionNoShare description (10-500 chars).
folder_nameNoName for new folder (default: 'Shared Folder').
policy_modeNoreview-surface-create: approval policy. quorum needs policy_quorum_n.
reviewer_idNoShare-review reviewer roster id. review-reviewer-remove.
target_modeNoreview-surface-create: fileset (specific node_ids) or whole_share.
accent_colorNoAccent color as JSON string.
comment_textNoreview-decision: the reason. REQUIRED (non-blank) for decision='reject'/'request_changes'; optional for 'approve'. A blank reason on reject/request_changes is…
display_typeNoDisplay mode (default: grid).
intelligenceNoEnable RAG indexing. ⚠️ COSTS CREDITS (10/page) — default false unless user requests it. Forced false on workspace_folder shares.
invite_notesNoreview-reviewer-add-external: optional note included in the magic-link invite email.
storage_modeNoStorage mode (default: independent).
user_contextNoautotitle only: optional user-provided context to guide the AI-generated title/description.
workspace_idNoWorkspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Parent workspace ID.
create_folderNoCreate a new workspace folder (workspace_folder mode).
display_limitNoHow many items to return. Default 10, max 500. The MCP trims post-fetch; backend page_size stays MCP-internal so the platform cache stays warm. Applies to list.
owner_definedNoCustom metadata as JSON string.
reviewer_nameNoreview-reviewer-add-external: external reviewer's display name (1-255 chars; sent to the platform body field `name`). REQUIRED for review-reviewer-add-external.
access_optionsNoAccess level. 'Anyone with the link' not allowed for receive/exchange.
folder_node_idNoWorkspace folder node ID (workspace_folder mode).
member_user_idNoShare member's User ID to add as a reviewer. review-reviewer-add-member (must be a share member).
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'create'). Omit to get the compact action index.
idempotency_keyNoreview-surface-create: replay-safe key (1-128). REQUIRED; same key returns the existing surface.
policy_quorum_nNoreview-surface-create: required approvals when policy_mode='quorum'.
workspace_styleNoUse workspace styling (default: true).
background_imageNoBackground image index (0-128, default 0).
comments_enabledNoEnable comments (default: true).
background_color1NoPrimary background color as JSON string.
background_color2NoSecondary background color as JSON string.
download_securityNoDownload security: off (default), medium (no guest download), high (block all guest downloads).
version_id_pinnedNoreview-decision: pinned asset version (CAS).
guest_chat_enabledNoEnable guest chat (default: false).
anonymous_uploads_enabledNoAllow guests to upload anonymously on public Receive/Exchange shares.
Behavior5/5

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

Beyond annotations (destructiveHint=true), the description adds important behavioral context: autotitle side effects (consumes credits, mutates metadata), intelligence costs credits (10/page and default false), delete is permanent, intelligence forced false on workspace_folder shares, and verbosity defaults. No contradictions with annotations.

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 long but dense with useful information, front-loaded with overall purpose. Every sentence adds value for a complex tool with 60 parameters. While it could be slightly more structured with bullet points, it is appropriately concise given the complexity.

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?

The description covers all essential aspects: actions, deprecation, side effects, costs, defaults, parameter semantics, and usage guidelines. For a tool of this complexity, it is comprehensive and leaves no important gaps.

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

Parameters5/5

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

Despite 100% schema coverage, the description adds significant value by explaining parameter nuances: details on action=describe, intelligence cost, limit internal vs display_limit, confirm validation, verbosity defaults, and specific usage for review parameters. This enhances understanding 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?

The description starts with 'Share management: create/update/delete, archive, password auth, members, autotitle,' clearly stating the scope. It distinguishes from sibling tools like fileshare by noting that quickshare-create is deprecated and advises using fileshare's create action. The description is specific and covers diverse functionality.

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?

The description provides explicit guidance on when to use which action, deprecation warning, cost warnings for intelligence, verbosity defaults, and recommends calling action='describe' for full reference. It also explains when to use fileshare instead, offering clear context and exclusions.

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

storageA
Destructive
Inspect

Files & folders on workspaces/shares: list, search, copy, move, delete, rename, trash, transfer, versions, locks, previews, and per-node metadata (get/set/delete/extract/versions). Call action='describe' for the full action/param reference. Destructive: purge (irreversible). delete moves to trash. metadata-delete removes metadata keys. Verbosity (detail param): list/recent/search/trash-list default to terse (compact rows). details defaults to full (drill-down). Pass an explicit detail='standard'|'full' to override.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoAlias for query.
keysNometadata-delete: JSON array of metadata keys to delete (omit to clear all).
nameNoName for new folder or file.
sizeNoSize preset: "IconSmall", "IconMedium", "Preview", or custom.
typeNoFilter by node type.
limitNoMax results (1-500, default 100).
queryNoSearch query — keyword, or keyword + semantic when intelligence is on.
widthNoTarget width in pixels.
actionYesOperation. Use 'describe' for full action reference.
cursorNoOpaque cursor from a previous response.
detailNoPer-node verbosity for list/recent/search/trash-list/details. Defaults: terse for list/recent/search/trash-list, full for details. Bump to full when you need…
heightNoTarget height in pixels.
offsetNoResults to skip (default 0).
detailsNoSearch-only. Return fully-hydrated node objects per result (default limit drops to 10). Distinct from `detail` — call action='describe' for the contrast.
node_idNoStorage tree node opaque ID. Both files and folders are nodes — use this name regardless of which. Storage node opaque ID, or 'root'. On `list`, the target…
sort_byNoSort column (default: name).
max_sizeNoMax read-content bytes (default 512000, max 1048576).
new_nameNoNew name for file or folder.
node_idsNoStorage node opaque IDs (details: 1-25 max).
order_byNometadata-list-files: field key to sort by.
share_idNoFor add-link: the target share to link (workspace-only). For the dual-type actions (list/details/copy/move/etc.): a profile alias implying profile_type=share —…
sort_dirNoSort direction (default: asc).
node_typeNorename-only OPTIONAL hint: the node's type, when the caller already knows it. Notes route to a dedicated endpoint, so supplying node_type lets rename skip the…
parent_idNoAlias for node_id on `list` (the folder whose contents to list), or 'root'.
upload_idNoOpaque ID of completed upload session.
context_idNoAlias for profile_id (either name works)
key_valuesNometadata-set: JSON object of key-value pairs matching template fields.
order_descNometadata-list-files: sort descending ('true' or 'false').
profile_idNoPolymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share, on…
version_idNoVersion ID to restore.
as_markdownNoOpt-in (list/recent/search/details/trash-list): when true, the platform renders the response as GitHub-flavored Markdown (?output=<detail>,markdown) for…
files_scopeNoScope semantic search to file versions. See describe for full constraints.
instance_idNoAlias for profile_id (REST/how-to name; profile_id is canonical).
template_idNoMetadata template ID (e.g. mt_abc123). Required for metadata-set/metadata-list-files. The template SYSTEM (CRUD/assign/AI-extraction) lives on the `metadata`…
context_typeNoAlias for profile_type (either name works)
preview_typeNoType of preview to generate. See describe for which preview_types apply to which file categories.
profile_typeNoProfile type: "workspace" or "share".
workspace_idNoAlias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted). Valid on every storage action.
display_limitNoHow many items to return. Default 10, max 500. The MCP trims post-fetch; backend cache stays warm. Used by: list, recent, search. list/recent paginate via the…
folders_scopeNoScope semantic search to folders via BFS. See describe for full constraints.
output_formatNoOutput format: "png", "jpg", "webp".
transfer_modeNo'copy' (default) or 'move'. 'move' invalid for node_id 'root'.
dest_parent_idNoDestination parent folder opaque ID, or 'root'. Primary param for transfer (the parent in the OTHER instance). For copy/move within the same instance use…
extract_fieldsNometadata-extract: JSON array of field names to extract (e.g. `["vendor","amount"]`); omit/null for full row.
parent_node_idNoParent folder opaque ID, or 'root'. (On `list`, also accepted as an alias for node_id — the folder to list.)
transform_nameNoTransform name, e.g. "image" for resize/crop/format.
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'list'). Omit to get the compact action index.
dest_instance_idNoDestination workspace or share profile ID.
metadata_filtersNometadata-list-files: JSON filter criteria for the metadata file listing.
target_parent_idNoDestination folder opaque ID, or 'root'.
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds specifics about destructive actions: purge is irreversible, delete moves to trash, metadata-delete removes keys. It also explains default verbosity for different actions. This goes beyond the annotations, providing useful behavioral context.

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

Conciseness3/5

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

The description is a single, somewhat dense sentence that covers many points. It front-loads the core actions but lacks paragraph breaks or structured sections. It is concise but could be more readable by splitting into bullet points or separate sentences.

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

Completeness3/5

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

Given the tool's complexity (50 parameters, many actions), the high-level description provides a good overview and points to action='describe' for details. However, it doesn't explain return values or all behavior nuance. Without an output schema, more context could be helpful, but the description does an adequate job for an introductory reference.

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?

All 50 parameters have descriptions in the input schema (100% coverage), so the schema already documents meaning. The description adds minimal parameter-level detail, only noting default verbosity levels and the action parameter's use. Thus, it adds some value but not substantially 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?

The description clearly states the tool handles files and folders on workspaces/shares, listing many specific operations. It distinguishes from sibling tools like download, upload, which are separate concerns. The purpose is unmistakable.

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

Usage Guidelines3/5

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

The description directs users to call action='describe' for full reference, which is helpful. However, it does not explicitly state when to use this tool versus alternatives, nor when not to use it. There is no comparison to sibling tools, though the scope is broad enough that it's likely the primary file operation tool.

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

taskA
Destructive
Inspect

Lightweight task lists/tasks for ad-hoc in-workspace tracking. For durable, multi-step orchestration use the workflow tool. Task lists and tasks in workspaces/shares with statuses, priorities, assignees, dependencies, bulk ops, attachments, and comments. Call action='describe' for the full action/param reference. Destructive: delete-list, delete-task.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTask list name (1-255 chars).
limitNoItems to return (1-200).
titleNoTask title (1-500 chars).
actionYesOperation. Use 'describe' for full action reference.
filterNo"assigned", "created", or "status" (needs status param).
formatNoResponse format: "json" (default) or "md".
offsetNoPagination offset.
statusNoTask status.
list_idNoTask list ID.
node_idNoStorage tree node opaque ID. Both files and folders are nodes — use this name regardless of which. Node ID to link task to a file/folder/note.
sort_byNoSort field.
task_idNoTask ID.
assigneeNoFilter tasks by assignee profile ID.
list_idsNoTask list IDs for reorder-lists (desired order).
priorityNo0=none, 1=low, 2=medium, 3=high, 4=critical.
share_idNoAlias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted).
sort_dirNoSort direction: "asc" or "desc".
task_idsNoTask IDs (bulk-status max 100; reorder-tasks order).
target_idNoattachment-add/-detach: the object ID to attach/detach (node, workflow, envelope, share, workspace, fileshare, or task).
context_idNoAlias for profile_id (either name works)
profile_idNoPolymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also…
sort_orderNoPosition in target list after move (default 0).
target_idsNoattachment-add: batch attach up to 100 object IDs (XOR target_id; same types).
assignee_idNoProfile ID of assignee (incl. pending members). null to unassign.
descriptionNoDescription (max 2000 for lists, 5000 for tasks).
comment_bodyNocomment-add: comment text (1-8192 chars; display text excluding mentions max 500). May include @-mention markup.
context_typeNoAlias for profile_type (either name works)
dependenciesNoTask IDs this task depends on.
profile_typeNoProfile type: "workspace" or "share".
workspace_idNoAlias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted).
display_limitNoNumber of tasks to return to the agent (default 10, max 200). Backend page_size unchanged for cache warmth — trims post-fetch only.
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'list-tasks'). Omit to get the compact action index.
comment_parent_idNocomment-add: opaque ID of the parent comment for a threaded reply (single-level threading; must belong to this task's thread).
target_task_list_idNoTarget task list ID for move-task (same profile).
Behavior4/5

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

The annotations declare destructiveHint=true, and the description supplements by naming the destructive actions ('delete-list, delete-task'). This adds context beyond the annotation. The description also implies the tool is not read-only (consistent with readOnlyHint=false) and hints at the breadth of operations (bulk ops, attachments, etc.). It does not cover rate limits or authorization, but the annotation and description together provide adequate transparency for selection.

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 concise: 3 sentences. It front-loads the purpose and key differentiator (ad-hoc vs workflow), lists core features, provides actionable guidance (use describe), and warns about destructive operations. Every sentence serves a purpose; no redundancy or 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?

Given the tool has no output schema and 34 parameters, the description provides a good overview of features (statuses, priorities, assignees, etc.) and directs to the describe action for full parameter details. It mentions the destructive nature and the context (workspaces/shares). It could be enhanced by describing typical return shapes or noting that some actions may require specific parameters, but for a complex tool, the describe fallback makes it sufficiently 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 schema coverage is 100% with descriptions for all 34 parameters. The description adds value by highlighting the action parameter and instructing to use 'describe' for a full action/param reference. This meta-guidance helps the agent navigate the parameter-rich schema. While the description doesn't detail individual parameter semantics beyond the schema, the suggestion to call describe compensates for the tool's complexity.

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 clearly identifies the tool as for 'lightweight task lists/tasks for ad-hoc in-workspace tracking' and distinguishes it from the durable orchestration sibling 'workflow'. It states the core capabilities (statuses, priorities, assignees, etc.) and the verb 'tracking' implies management. The resource is task lists/tasks, and the scope is ad-hoc in-workspace, making purpose specific and distinct.

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 description explicitly guides when to use this tool ('ad-hoc in-workspace tracking') and when to use an alternative ('For durable, multi-step orchestration use the `workflow` tool.'). It also recommends calling action='describe' for full details. However, it does not provide explicit 'when not to use' beyond the workflow comparison, nor does it cover other potential alternatives or prerequisites.

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

uploadA
Destructive
Inspect

File upload: streaming (one-shot stream-upload — DEFAULT for unknown/generated content), chunked (create-session → POST /blob → chunk → finalize — only when filesize is known exactly), web URL import, and batch (multi-small-file). Call action='describe' for the full action/param reference. Side effects: finalize/stream/stream-upload/web-import/batch create files and consume storage credits. Same-name uploads to a folder OVERWRITE the existing node in place (preserved as a recoverable version). BINARY: content is text-only (writes verbatim UTF-8); for binary use content_base64 (server-decoded) or POST /blob + blob_id. UPLOAD STRATEGY (read top-to-bottom, pick the FIRST that matches): (1) Have a URL? → web-import (single call). (2) Have content but DON'T know exact size, OR generating/transforming content first? → stream-upload (single call, auto-finalizes, NO filesize required, size auto-detected from the bytes). (3) Have a file with KNOWN exact byte count? → create-session + chunk(s) + finalize. filesize must match the bytes you actually upload — mismatch causes finalize to fail with code 10522 and you must cancel the session. (4) Multiple small files (≤4 MB each, ≤200 total) into one folder? → batch. DEFAULT to stream-upload unless you are sure of the exact byte count. Do NOT guess filesize for generated content — use stream-upload instead. max_size is a hard ceiling that aborts mid-transfer — always overestimate or omit (server uses plan limit).

ParametersJSON Schema
NameRequiredDescriptionDefault
orgNoOrg ID for limit resolution.
urlNoSource URL to import from.
hashNoFile hash for verification.
planNoOverride billing plan to check (e.g. free, pro).
waitNoLong-poll duration ms (0 = return immediately).
filesNoBatch manifest (1..200 entries). Each: filename + one of blob_id/content/content_base64.
limitNoMax results (1-100, default 50).
actionYesOperation. Use 'describe' for full action reference.
offsetNoPagination offset.
statusNoFilter by status.
streamNoStream mode — size optional, single POST, auto-finalizes.
blob_idNoBlob ID from POST /blob. Preferred for binary/large files. Single-use.
contentNo**Text only** — stored verbatim UTF-8. Do NOT pass base64 here (use content_base64). One of content/content_base64/blob_id.
creatorNoClient identifier echoed back (alphanumeric + hyphens).
file_idNoFile ID for update context.
blob_refNoAlias for blob_id (deprecated). Accepted on chunk/stream/stream-upload only.
chunk_idNoSpecific chunk number (omit for all).
filenameNoFile name. Optional when target_node_id is set (auto-resolved); pass to rename-on-replace.
filesizeNoTotal file size in bytes.
max_sizeNoStream-body byte ceiling — aborts mid-transfer if exceeded. Always overestimate; omit to use plan limit. Stream sessions only.
passwordNoFile Share link password (profile_type=fileshare only). Forwarded ONLY as the x-ve-password header on every upload phase — never in a URL/log. Supply when the…
share_idNoAlias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted).
folder_idNoTarget folder OpaqueId or "root". Omit for instance root.
hash_algoNoHash algorithm (e.g. 'sha256').
upload_idNoUpload session ID or web upload job ID.
chunk_sizeNoChunk size in bytes (server picks default).
context_idNoAlias for profile_id (either name works)
profile_idNoPolymorphic context ID (pair with profile_type=workspace|share|fileshare). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒…
instance_idNoTarget workspace/share ID — also the profile_id alias for upload flows; profile_id is canonical.
chunk_numberNo1-indexed chunk number.
context_typeNoAlias for profile_type (either name works).
include_hashNoCompute SHA-256 client-side for entries without a hash (default true when omitted).
profile_typeNoTarget type: workspace | share | fileshare (alias: context_type). Use `fileshare` ONLY for content write-back to a File Share's bound file (requires…
workspace_idNoAlias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted).
if_version_idNoFile Share write-back compare-and-swap (profile_type=fileshare only). Pass the version id the edit was based on (from `fileshare details` / `fileshare…
action_contextNoContext: create or update.
content_base64NoBase64-encoded **binary** — server decodes before writing. Whitespace stripped. Practical cap a few MB; use blob_id for larger.
parent_node_idNoParent folder OpaqueId or "root". On create-session, stream-upload, and web-import, folder_id is accepted as an alias (either name works).
target_node_idNoOverwrite this specific node (preserves node_id; new version). When set, parent_node_id is ignored and filename is optional (auto-resolved). Must be a file…
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'chunk'). Omit to get the compact action index.
Behavior5/5

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

The description discloses all critical behavioral traits: side effects (file creation, storage credit consumption), overwrite behavior (same-name files overwrite with recoverable versions), error conditions (filesize mismatch causing finalize to fail with code 10522), and the hard ceiling behavior of max_size. Annotations already indicate destructiveHint=true, but the description adds actionable specifics. No contradictions with annotations.

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 well-structured with clear sections (e.g., 'BINARY:', 'UPLOAD STRATEGY') and front-loaded with the main variants. However, it is quite lengthy and dense, which could be slightly more concise without losing information. It earns its length due to the tool's complexity.

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 the tool's high complexity (40 parameters, multiple actions, no output schema), the description is remarkably complete. It covers all upload paths, error codes, defaults, and even points to further details via action='describe'. There is no missing context for an agent to select and invoke the tool 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 100% with 40 parameters, so baseline is 3. The description adds significant value by explaining how parameters relate to upload strategies (e.g., content vs content_base64 vs blob_id, filesize constraints, folder_id vs parent_node_id). It also clarifies parameter usage in context (e.g., 'stream' boolean for stream mode). One point deducted because the description could be more explicit about a few parameters like 'offset' and 'limit' which are only mentioned in 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?

The description clearly defines the tool's purpose: file upload with multiple strategies (streaming, chunked, web URL import, batch). It specifies the verb 'upload' and the resource 'files', and distinguishes itself from sibling tools (which are other categories like ai, auth, comment, etc.) by focusing exclusively on upload 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?

The description provides a comprehensive decision tree under 'UPLOAD STRATEGY' that tells the agent exactly when to use each upload mode (e.g., web-import for URLs, stream-upload for unknown sizes, chunked for known byte count, batch for small files). It also includes explicit 'do not' guidance (e.g., 'Do NOT guess filesize for generated content') and defaults to stream-upload.

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

userC
Destructive
Inspect

User profile, contacts, invitations, and assets. Call action='describe' for the full action/param reference. Destructive: close.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-500, default 100)
queryNoContact search substring.
actionYesOperation. Use 'describe' for full action reference.
offsetNoNumber of items to skip (default 0)
contentNoPlain text content for asset upload.
user_idNo19-digit user ID or email.
archivedNoTrue for archived shares, false for active.
filenameNoOriginal filename.
last_nameNoFamily name.
asset_nameNoAsset type name (e.g. profile_pic).
first_nameNoGiven name.
confirmationNoEmail or user ID confirmation for account close.
content_typeNoMIME type.
display_limitNoHow many items to return. Default 10, max 500. The MCP trims post-fetch; backend page_size stays MCP-internal so the platform cache stays warm. Applies to…
email_addressNoEmail address.
invitation_idNoInvitation opaque ID or key.
content_base64NoBase64-encoded binary content.
invitation_keyNoInvitation key.
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'me'). Omit to get the compact action index.
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=true. Description adds 'Destructive: close', which is consistent and highlights that action, but does not elaborate on other actions' behavior or side effects.

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?

Very concise single sentence plus a note. No waste, but could benefit from slightly more structure given the tool's complexity. Still, it earns a high score for efficiency.

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

Completeness2/5

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

Despite 100% schema coverage, the description lacks context about the tool's overall behavior, return values (no output schema), and how actions interconnect. The openWorldHint is not explained, leaving gaps for an agent.

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 has 100% coverage with descriptions for all parameters. Description adds no extra meaning beyond the schema, relying on action='describe' for details. Baseline score of 3 is appropriate.

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

Purpose3/5

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

The description mentions user profile, contacts, invitations, and assets, which gives a general idea but does not clearly distinguish from sibling tools like 'member' or 'invitation'. The action enum provides specificity, but the description itself lacks differentiation.

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

Usage Guidelines2/5

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

Minimal guidance: advises to use action='describe' for full reference and notes that 'close' is destructive. No explicit when-to-use vs alternatives, and no context on tool selection among siblings.

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

workflowA
Destructive
Inspect

Durable workflow ORCHESTRATION + native content-review + e-signature, scoped to a workspace. NOT the in-workspace task-tracking primitive, NOT workspace action=enable-workflow. Covers lifecycle, steps (incl. step-reassign + agent-trace/activity), obligations, immutable templates (incl. the System Template Gallery: template-system-list/-get + template-from-system one-call instantiate), triggers, pools, extraction-schema, audit/export (incl. dual-control redaction), grants, agent-templates, outbound-webhook subscriptions, inbound-key management, mid-run modifications, review-* (native approval), and sign-* (e-signature; workspace-parented). Write/lifecycle actions are FIRE-AND-FORGET (return ids + state + a _next poll hint); destructive actions need confirm='true'. Call action='describe' for the full per-action reference, or action='guide' for the workflow-authoring playbook (both callable without auth).

ParametersJSON Schema
NameRequiredDescriptionDefault
opsNomodification-propose: JSON array of operations [{op, target_step_occurrence_id, ...}]. Max 50 ops per proposal.
bodyNoreview comment text.
hardNodelete: 'true' = owner-only PERMANENT delete; default soft-archive.
nameNoName: workflow 1-255 (create/update), template 1-200 (template-create), agent-template, OR sign envelope name (sign-create/-update; max 255).
roleNogrant: role viewer|participant|admin (additive).
tagsNoTags: a JSON array string (e.g. `["a","b"]`) or a comma-separated string. create/update.
emailNoreview-reviewer-add-external: reviewer email.
limitNoPage size (offset-paginated lists: workflows/obligations 1-500, default 100). Some list actions apply lower per-action caps (e.g. review-list-active default…
scopeNoaudit-export-start: export scope (e.g. 'full'). Omit for the platform default.
sinceNoaudit-events: lower-bound timestamp filter ('Y-m-d H:i:s UTC').
stateNoupdate: lifecycle transition (illegal → 400).
untilNoaudit-events: upper-bound timestamp filter ('Y-m-d H:i:s UTC').
actionYesOperation. Use 'describe' for full action reference.
assetsNoreview surface: JSON assets array [{node_id,version_id}] (XOR reviewed_node_ids+version_id). See note.
bucketNolist: filter runs by EXECUTION status (in_flight|completed|paused|failed) — distinct from state_filter (profile lifecycle). Activates cursor pagination.
cursorNoCursor for cursor-paginated lists (list, grant-list, audit-events). Pass back the prior pagination.next_cursor verbatim. For list, the cursor is bound to the…
fieldsNoJSON array: schema field defs OR sign field placements (see note).
handleNoSystem gallery template handle (e.g. 'system:gallery:contract-review'). REQUIRED on template-system-get / template-from-system. NON-opaque (contains colons) —…
inputsNotemplate-from-system: JSON object mapping setup input ids to values (e.g. {"legal_reviewer":"<user_id>"}). Native or string. Omitted inputs with…
job_idNoAudit-export job OpaqueId. audit-export-poll/-download.
offsetNoPagination offset (default 0).
outputNostep-output: output envelope (JSON; native or string). CAS (409 → re-read).
reasonNoOptional reason (per-action max enforced; see notes).
cascadeNocancel: 'false' cancels only this workflow (default cascades to sync sub-children).
confirmNoConfirmation gate ('true'). REQUIRED for destructive actions + transfer; refused without it.
enabledNotrigger-create/-update / inbound-key-enable / outbound-webhook-create/-update: enabled flag.
node_idNoStorage node OpaqueId (review-preview-*).
outcomeNoreview-admin-resolve: outcome approved|rejected|cancelled.
payloadNostep-advance: optional JSON payload for the dispatch handler.
publishNotemplate-from-system: default 'true' publishes + binds the revision so the next run executes it; 'false' leaves it validated/unbound (publish later via…
step_idNoStep DEFINITION OpaqueId (stable). step-occurrences.
user_idNoTarget user's profile ID (19-digit). grant/grant-revoke.
asset_idNoReview asset OpaqueId.
chunk_idNoaudit-export-download: 'manifest' or chunk int.
decisionNoreview-decision: approve | reject | request_changes (sent to the platform as `action`).
node_idsNoJSON array of node ids. extraction-schema-derive: REQUIRED sample node IDs. step-files: REQUIRED — the node ids to submit to a waiting manual wait_for_files…
pool_keyNoWorkflow pool key (unique per workspace; [a-z0-9_-]). inbox-pool + pool-* actions.
templateNotemplate-create: the template-revision JSON doc (native or string). See per-action note.
action_idNoaudit-redact mode=confirm: 32-char hex action_id returned by the request phase (expires 15 min, single-use).
documentsNosign-create/-update: JSON documents array 1-20 (see note).
page_sizeNolist: keyset page size (1-100, default 50). Passing page_size (or cursor/bucket) switches the run-list to CURSOR pagination — response carries…
reviewersNoreview surface: JSON reviewers array [{kind:'member'|'external',...}] (XOR reviewer_user_ids). See note.
comment_idNoReview comment OpaqueId.
expires_atNoOptional expiry as a UTC timestamp 'Y-m-d H:i:s UTC'. grant: grant expiry (omit = none). sign-create/-update: envelope expiry (NOT a day count; omit/null =…
recipientsNosign-create/-update: JSON recipients array (see note).
step_seedsNoinstantiate: optional JSON object seeding run-start files into specific steps (e.g. a wait_for_files step). Its keys are the VALUES of from_system's…
subject_idNoExternal-subject correlation handle (1-255). external-subject-workflows.
surface_idNoReview surface OpaqueId.
target_urlNooutbound-webhook-create: HTTPS target URL for signed delivery. Private/reserved addresses are rejected.
trigger_idNoWorkflow trigger OpaqueId.
version_idNoreview surface: version_id for the reviewed_node_ids shorthand.
dedup_scopeNotrigger-create: dedup scope.
descriptionNoWorkflow/template description (max 4000); also the extraction-schema-derive LLM hint.
document_idNosign-document-*: document OpaqueId.
envelope_idNosign-*: numeric envelope ID.
event_matchNotrigger-create/-dry-run-draft: JSON event-match filter (REQUIRED both). Also trigger-update: OPTIONAL — re-scope the trigger's watch in place (no…
policy_jsonNosign-create/-update: optional JSON policy {auth_method,...}.
policy_modeNoreview surface: policy mode (default 'single').
pool_sourceNopool-create: pool key source (tag/template_id/freeform).
redact_modeNoaudit-redact: mode=request (phase 1 — workspace admin proposes) or mode=confirm (phase 2 — a DIFFERENT workspace admin confirms).
reviewer_idNoReview reviewer OpaqueId.
template_idNoWorkflow template revision OpaqueId (immutable). Also seeds create-from-template on `create`.
window_daysNotrigger-dry-run/-dry-run-draft: historical backtest window in days (1-90).
workflow_idNoWorkflow profile ID (19-digit). The orchestration runtime.
apply_guardsNotrigger-dry-run/-draft: 'true' applies rate/concurrency/dedup guards.
comment_textNoreview-decision: the reason. REQUIRED (non-blank) for decision='reject'/'request_changes'; optional for 'approve'. A blank reason on reject/request_changes is…
external_jwtNoOPTIONAL external-reviewer JWT (request-scoped; never stored; safe 401).
invite_notesNoreview-reviewer-add-external: optional invite-email note.
preview_typeNoreview-preview-read: preview rendition.
redaction_idNoaudit-redaction-get: OpaqueId of the committed redaction batch.
sample_limitNotrigger-dry-run/-dry-run-draft: max sample matches to return.
state_filterNolist: filter by lifecycle state (draft|active|paused|completed|cancelled|archived|deleted).
workspace_idNoWorkspace ID (19-digit or custom name). The workflow profile's parent / authz anchor.
display_limitNoPost-fetch item cap (default 10, max 500) for list-type actions.
event_payloadNotrigger-fire: optional JSON event_payload (testing/replay). Native or string.
event_seq_endNoaudit-export-start: optional upper event-seq bound.
link_token_idNoReview link-token OpaqueId.
mark_completeNostep-output: no-op today; reserved (accepted but ignored — the handler decides completion).
obligation_idNoObligation ID — a plain numeric sequence string (e.g. 100200300), NOT a 19-digit profile ID.
owner_user_idNocreate: optional owner User ID (19-digit). Defaults to the caller. Also becomes runs_as_user_id.
param_mappingNotrigger-create/-dry-run-draft: JSON event->input mapping. Native or string.
enabled_filterNotrigger-list: enabled filter (true|false|all).
max_concurrentNopool-create: max concurrent in-flight workflows for the pool (1-1000). REQUIRED.
tool_allowlistNoagent-template-create/-update: JSON array of tool-id strings. Native or string.
archived_filterNolist: 'false' (default, exclude archived), 'true' (only archived), 'all'.
concurrency_capNotrigger-create/-update: concurrency cap (>=1 on update).
create_workflowNotemplate-from-system: 'true' creates a new workflow (cannot be combined with workflow_id); 'false' attaches to an existing workflow and REQUIRES workflow_id.…
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'create'). Omit to get the compact action index.
envelope_statusNosign-list: status filter.
event_seq_startNoaudit-export-start: optional lower event-seq bound.
idempotency_keyNoReplay-safe key 1-128. REQUIRED on instantiate; optional on create.
include_payloadNoaudit-events: when 'true', inline each event's payload (heavier). Default omits it.
modification_idNomodification-get/-apply/-cancel: modification proposal OpaqueId.
policy_quorum_nNoreview surface: quorum size (with policy_mode='quorum').
redaction_pathsNoaudit-redact mode=request: JSON array of dot-path strings identifying fields to redact (e.g. ["payload.pii.email"]).
runs_as_user_idNoinstantiate: optional runs_as principal (User ID). Defaults to the owner.
subscription_idNooutbound-webhook-get/-update/-delete/-rotate-secret: outbound webhook subscription OpaqueId.
target_event_idNoaudit-redact mode=request: OpaqueId of the audit event to redact.
trigger_payloadNoinstantiate: optional JSON input bindings. Native or string.
agent_credit_capNoOptional credit budget (create/update; omit = no cap).
apply_change_idsNomodification-apply: JSON array of change IDs to apply (empty array = apply all pending). Every supplied id must belong to this proposal.
assigned_user_idNoobligation-list: optional assignee filter (19-digit User ID).
expected_versionNotemplate-from-system: integer compare-and-set against the catalog version. A mismatch returns 409 with expected_version/catalog_version — re-read the gallery…
family_allowlistNooutbound-webhook-create/-update: JSON array of CDN-family suffixes that restrict delivery (e.g. ["workers.dev","pages.dev"]). Empty = no restriction.
include_overlaysNoaudit-export-start: include redaction overlay rows.
independent_rootNotrigger-create: whether fired runs are ancestry-independent.
agent_template_idNoWorkflow agent-template OpaqueId.
confirmer_user_idNoaudit-redact mode=confirm: confirmer's user ID (must match authenticated caller; must differ from the requester).
event_type_prefixNoaudit-events: filter to event types under this prefix.
include_nl_ledgerNoaudit-export-start: include the NL ledger.
obligation_statusNoobligation-list: status filter.
reviewed_node_idsNoreview surface: JSON node-IDs array (shorthand; needs version_id; XOR assets[]).
reviewer_user_idsNoreview surface: JSON member-User-ID array (XOR reviewers[]).
version_id_pinnedNoreview-decision: pinned asset version (CAS).
expires_in_secondsNomodification-propose: proposal expiry in seconds (max 604800 = 7 days; absent or <=0 defaults to max).
instruction_promptNoagent-template-create/-update: the agent's instruction prompt text.
resolution_payloadNoobligation-resolve: optional JSON payload (audit envelope only).
step_occurrence_idNoStep OCCURRENCE OpaqueId (one firing). step-get/-advance/-cancel/-output/-complete/-files/-reassign.
target_template_idNotrigger-create/-dry-run-draft: target WorkflowTemplate OpaqueId (REQUIRED).
external_subject_idNoinstantiate: optional integrator correlation handle (1-255). Cross-workflow lookup index.
modification_statusNomodification-list: optional status filter.
permission_requiredNotrigger-create: required permission for the event-actor (run-as gate).
rate_limit_per_hourNotrigger-create/-update: per-hour fire cap (>=1 on update; 0=no cap).
target_workspace_idNotransfer: destination workspace ID (same org only).
dedup_window_secondsNotrigger-create: dedup window in seconds.
new_assignee_user_idNostep-reassign: new assignee user ID (must be a workspace member).
external_invite_notesNoreview-send-for-review: optional note included in the external reviewer invite emails.
pool_admission_policyNopool-create: full-pool policy — reject (422, default) or queue.
definition_revision_idNoextraction-schema-set: optional definition-revision id to pin the new schema version.
redaction_pin_strategyNoaudit-export-start: redaction pin strategy (e.g. 'job_start').
target_template_versionNotrigger-create/-dry-run-draft: optional pinned template version (positive int).
event_type_subscriptionsNooutbound-webhook-create: JSON array of event type strings to subscribe to (e.g. ["workflow.created","workflow.cancelled"]).
idempotency_key_templateNotrigger-create: template string for the per-fire idempotency key.
confirm_removes_human_gateNomodification-apply: required (='true') when any skipped step removes a human gate (approval/signing); 403 without it.
include_evidence_snapshotsNoaudit-export-start: include evidence snapshots.
restart_on_overlay_mismatchNoaudit-export-start: 'true' restarts on a mid-run overlay-manifest mismatch.
Behavior5/5

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

The description discloses key behavioral traits beyond annotations: 'Write/lifecycle actions are FIRE-AND-FORGET (return ids + state + a `_next` poll hint); destructive actions need confirm='true'.' This adds crucial context that annotations (readOnlyHint=false, destructiveHint=true) do not fully convey. It also notes that 'describe' and 'guide' are callable without auth. No contradiction with annotations.

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: it starts with the core purpose, exclusions, and a comprehensive list of covered areas. Every sentence adds value, and it avoids redundancy. However, it could be slightly more concise by listing fewer sub-domains, but the detail aids completeness.

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 tool with 136 parameters and numerous actions, the description is fairly complete by outlining major behavioral patterns and directing to action='describe' for per-action details. It covers scope, fire-and-forget behavior, confirm requirement, and auth hints. Given the complexity and lack of output schema, the description adequately sets context.

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?

With 100% schema description coverage, the baseline is 3. The tool description provides high-level context for parameters by listing domains like 'Covers lifecycle, steps, obligations...' but does not detail individual parameters. This adds some meaning beyond the schema, especially for grouping, but not substantial per-parameter value.

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 clearly states the tool's purpose: 'Durable workflow ORCHESTRATION + native content-review + e-signature, scoped to a workspace.' It explicitly distinguishes itself from siblings by stating 'NOT the in-workspace task-tracking primitive, NOT `workspace action=enable-workflow`.' This provides a specific verb+resource and differentiates it from other 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?

The description gives guidance on when to use this tool by stating what it is not, effectively excluding the 'task' and 'workspace' tools. It also tells the agent to 'Call action='describe' for the full per-action reference' and 'action='guide' for the workflow-authoring playbook', providing clear context for further exploration. However, it does not provide explicit when-not-to-use scenarios beyond the two exclusions.

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

workspaceA
Destructive
Inspect

Workspace management: list/details/update/delete, archive, members, notes, quickshares, share import, workflow/import toggles. NOTE: metadata actions MOVED — templates + AI extraction → metadata tool; node-level metadata → storage tool. The metadata-* actions here are deprecated one-release execute-and-warn shims, removed next release. Call action='describe' for the full action/param reference. Destructive: delete (workspace + all files). ⚠️ intelligence COSTS CREDITS (10/page) — only enable on explicit user request; toggle is rate-limited. Verbosity (detail param): list/available/members/list-shares default to terse (compact rows). details defaults to full (drill-down). Pass an explicit detail='standard'|'full' to override.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch keyword(s). 1-1024 chars. Multi-token = ALL tokens (AND); case-insensitive; substring for ≤64 chars, else whole-word.
keysNoJSON array of metadata keys to delete (omit for all).
nameNoName. 1-255 (metadata-template-create, preview-match); 2-100 (metadata-template-update/-clone). Send "null" to clear on update.
limitNoMaximum number of items to return (1-500, default 100)
actionYesOperation. Use 'describe' for full action reference.
configNoSaved-view config JSON: `{version:1, columns:[{field,visible?,width?}], sort:{field,dir}, filters:[{field,operator,value_type,value}]}`. Max 5 filters…
detailNoPer-entity verbosity for list/available/members/list-shares/details. Defaults: terse for list/available/members/list-shares, full for details. See…
fieldsNoJSON array of field defs. At least one field must have autoextract:true (default) or API returns 1605. Each: {name, description, type…
offsetNoNumber of items to skip (default 0)
org_idNoFilter workspaces to this org.
blob_idNoBlob ID from POST /blob. Preferred for large note content (UTF-8 decoded). Single-use.
confirmNoMust match folder_name or numeric ID.
contentNoPlain text/markdown. Notes: max 102400 bytes (100 KiB) — use blob_id for larger.
node_idNoStorage tree node opaque ID. Both files and folders are nodes — use this name regardless of which.
archivedNoFilter by archive status (default "false").
blob_refNoAlias for blob_id (deprecated).
categoryNoMetadata template category.
node_idsNoJSON array of node IDs (1-25, same workspace; deduped server-side). Bulk metadata-get returns {format:'multi', objects, templates, errors}.
order_byNoField key to sort metadata file list by.
share_idNo19-digit numeric ID or custom name of share to import.
note_nameNoNote filename (must end with .md).
parent_idNoParent folder opaque ID or 'root'.
perm_joinNoWho can join the workspace.
key_valuesNoJSON object of key-value pairs matching template fields.
order_descNoSort descending: 'true' or 'false'.
descriptionNoDescription. metadata-template-create: required, 0-1000 (empty allowed); metadata-template-update/-clone: 10-1000; preview-match/suggest-fields: 1-2000.…
folder_nameNoURL-safe workspace folder name (4-80 chars).
template_idNoMetadata template ID (e.g. mt_abc123). For metadata-search, restricts to nodes with values from this template (custom fields excluded).
accent_colorNoBrand accent color JSON. "null" to clear.
check_org_idNoOrg ID for check-name — suggests org-prefixed alternative if name taken.
intelligenceNoToggle AI features. ⚠️ COSTS CREDITS (10/page) — only enable on explicit user request. Disable flushes embeddings; re-enable re-indexes. Rate-limited.
user_contextNoShort view/template hint (1-64 chars, letters/numbers/spaces). Example: "photo collection".
workspace_idNoWorkspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. 19-digit numeric ID or…
display_limitNoHow many items to return. Default 10, max 500. The MCP trims post-fetch; backend page_size stays MCP-internal so the platform cache stays warm. Applies to…
name_to_checkNoFolder name to check availability.
owner_definedNoCustom properties JSON. "null"/"" to clear.
extract_fieldsNoJSON array of field names to extract (e.g. `["vendor","amount"]`); omit/null for full row.
parent_node_idNoDestination folder opaque ID for TSV export (must be folder, not trashed). Omit for workspace root.
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'list'). Omit to get the compact action index.
template_filterNoFilter for metadata template list.
metadata_filtersNoJSON filter criteria for metadata file listing.
background_color1NoBackground color 1 JSON. "null" to clear.
background_color2NoBackground color 2 JSON. "null" to clear.
perm_member_manageNoWho can manage members.
nl_summaries_enabledNoMaster switch for AI summary enrichment of workflow obligations (default true). Setting 'true' requires the plan's content_ai feature. When 'false',…
nl_summaries_daily_capNoPer-workspace daily ceiling on AI enrichment operations (0-100000, default 100). 0 disables enrichment without flipping nl_summaries_enabled.
workflow_trigger_aliasesNoVerb->template alias map (JSON object), e.g. {"redact":"mt_x","summarize":"mt_y"}. A comment beginning with an alias verb (@redact) resolves through this map…
workflow_approval_native_enabledNoTri-state gate for the native workflow-review surface. 'disabled' (default): native review off. 'mvs': single-asset, member-only, single-mode. 'extended': full…
Behavior5/5

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

The description provides critical behavioral details beyond annotations: destructive delete (workspace + all files), intelligence costs credits (10/page), rate-limited toggle, and verbosity defaults. This fully informs the agent of important side effects.

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 fairly concise given the tool's complexity, with important information front-loaded. It groups related information and uses line breaks. Some density could be reduced, but overall it is well-structured.

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 48 parameters, no output schema, and rich annotations, the description covers all essential aspects: destructive risks, cost implications, moved actions, and verbosity handling. It is complete enough for an agent to use the tool 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?

The input schema has 100% parameter coverage, so the description does not need to compensate. However, it adds value by explaining verbosity defaults and overriding behavior, which is beyond the schema's parameter 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?

The description clearly states the tool is for workspace management and enumerates actions like list, update, delete, archive, members, notes, quickshares. It explicitly distinguishes from siblings by noting that metadata actions have been moved to the metadata tool and node-level metadata to storage 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?

The description gives explicit guidance on when to use the tool and when not to (e.g., metadata actions moved to metadata tool, node-level metadata to storage tool). It also advises using action='describe' for full reference and warns about intelligence costing credits. However, it does not exhaustively cover all alternative tool uses.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources