Skip to main content
Glama
Ownership verified

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.4/5 across 18 of 19 tools scored. Lowest: 3.7/5.

Server CoherenceA
Disambiguation4/5

Most tools target distinct domains (auth, storage, comments, etc.), but there is notable overlap among share, fileshare, and download (deprecated quickshare-details), as well as between find, storage search, and metadata search. The descriptions do disambiguate these, and ai vs how-to are clearly separated, so selection errors should be rare.

Naming Consistency3/5

Tool names are all lowercase single words or hyphenated, but mix nouns (storage, member), verbs (find, download, upload), a proper noun (ai), and a hyphenated term (how-to). The naming convention is not consistent across the set, though the actions within each tool likely follow a verb_noun pattern.

Tool Count4/5

At 19 tools, this sits in the heavy range, but each tool is a substantial domain surface for a full-featured platform, so the count is justifiable. It is not excessive for the apparent scope, though agents may face a large action space.

Completeness5/5

The tool surface is remarkably comprehensive, covering authentication, user/org/workspace management, storage operations, upload/download, sharing (both quickshare and durable fileshare), comments, members, invitations, events, metadata, unified search, AI assistant, how-to help, rooms, and assets. There are no obvious dead ends, and deprecated actions are clearly marked with alternatives.

Available Tools

19 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?

Beyond annotations, it discloses side effects ('ask/status/chat-create/message-send consume credits'), destructive behavior ('Destructive: chat-delete'), read-only content guarantee, idempotency of chat-cancel, and default verbosity. Annotations only state readOnlyHint=false/destructiveHint=true, so the description adds substantial behavioral context without contradicting them.

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

Conciseness5/5

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

The description is dense but well-structured and front-loaded, moving from core purpose to usage guidance to side effects and per-action defaults. Every sentence carries new information, and the length is justified by 16 actions and 23 parameters.

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 high complexity and no output schema, the description covers read/write boundary, action categories, side effects, pagination caveats, and return shape for the primary action. It also points to action='describe' for full reference, making it complete for selection and initial invocation.

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%, and the description adds action-level semantics like detail defaults, aliases, and the ask return shape. However, most parameter-specific meaning already lives in the input schema, so the marginal addition is helpful but not dramatic.

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

Purpose5/5

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

The description names a specific role: 'MCP delegation surface over Fastio's RAG agent' that answers natural-language questions with citations and never mutates stored files, while explicitly managing chat threads/shares. This clearly distinguishes it from sibling primitive tools ('for content writes, call the primitive MCP tools directly').

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?

It gives explicit direction: 'Prefer Ripley over issuing many primitive reads' and 'for content writes, call the primitive MCP tools directly,' plus lower-level chat/message actions for multi-turn control. A quick-start pattern ('action='ask' ... action='status'') makes when-to-use concrete.

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

assetA
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).
Behavior4/5

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

Annotations include destructiveHint=true, and the description explicitly calls out 'Destructive: delete', adding specificity beyond the annotation. It also discloses the range of actions. No contradiction with annotations (readOnlyHint=false, destructiveHint=true).

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, followed by operational scope and a clear pointer to the describe action. Every sentence earns its place with no 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?

The tool has 10 parameters and no output schema, but the schema itself is richly described. The description covers the main actions and explicitly defers to action='describe' for full details. Minor gap: the 'types' action is not mentioned, but the pointer to describe mitigates this.

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?

The input schema has 100% description coverage, so all parameters are already documented in the schema. The tool description does not add parameter-level meaning beyond the schema, but it does provide domain context (e.g., logos, banners, profile photos). Baseline 3 is appropriate.

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

Purpose5/5

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

Description states a specific verb+resource: 'Brand asset management' with concrete asset types (logos, banners, profile photos) and scope (org/workspace/share/user). It lists key operations (upload, delete, list, read) and distinguishes itself from generic sibling tools like upload/download by naming the asset domain.

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 clear context on what the tool manages and its entity scope. Points users to action='describe' for the full action/param reference, which is useful meta-guidance. However, it does not explicitly state when to use this tool over 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.

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 declare destructiveHint=true, and the description adds specificity by listing exactly which actions are destructive: 'Destructive: api-key-delete, oauth-revoke, oauth-revoke-all.' It also points to the describe action for full details, which helps the agent understand behavior. 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 two sentences, front-loaded with the capability summary, an actionable pointer to describe, and a safety warning about destructive actions. Every sentence earns its place with no 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 (23 params, no output schema), the description handles completeness well by directing the agent to 'action='describe' for the full action/param reference' and explicitly listing destructive actions. It does not explain return values or workflows, but for a tool this broad, the describe pointer is a practical substitute.

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%, with each parameter having a description. The description does not add additional parameter semantics beyond advising to use action='describe' for a full reference, which the schema itself already notes. Baseline 3 is appropriate since the schema carries the burden.

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 the tool's scope: 'Auth & sessions: signin, signup, signout, 2FA, PKCE, API keys, OAuth sessions.' This identifies the resource (auth/sessions) and the specific operations, distinguishing it from sibling tools that handle other domains like user or org. The verb is implicit in the action list but the domain 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 Guidelines4/5

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

The description gives clear context for when to use this tool (any authentication or session operation) and instructs to 'Call action='describe' for the full action/param reference.' It also flags destructive actions. However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

commentA
Destructive
Inspect

Comments on files: add/list/delete/react, anchor to image regions, A/V timestamps, PDF pages, or text selections. Call action='describe' for the full action/param reference. Destructive: delete, bulk-delete. Verbosity (detail param): list/list-all 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. Defaults: terse for list/list-all (compact rows), full for details (drill-down). See action='describe' for…
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.
parent_comment_idNoParent comment ID for reply (single-level threading).
Behavior5/5

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

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description adds specific behavioral insights: it names the destructive actions, discloses that the detail override is best-effort and may be a silent no-op, and explains the default verbosity modes for list/list-all versus details. This is valuable context that the annotations alone do not provide.

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 compact and front-loaded: it states the core purpose first, then lists actions, destructive flags, and verbosity behavior in a tightly packed, well-structured manner. Every sentence adds value, and the caveat about the silent no-op is included without bloat.

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 covers the essential behavioral aspects: purpose, action types, destructive operations, verbosity semantics, and a pointer to 'describe' for complete reference. It could go deeper on return values or all parameter interactions, but the 'describe' guidance mitigates that gap adequately.

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?

Although the schema already has 100% coverage with descriptions for every parameter, the description adds semantic context for the 'detail' parameter (defaults and override caveats) and points to 'describe' for full parameter reference. This enriches the otherwise schema-only information, though it does not need to repeat all parameter meanings.

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 what the tool does: 'Comments on files: add/list/delete/react, anchor to image regions, A/V timestamps, PDF pages, or text selections.' It specifies the resource (files/comments) and enumerates the supported actions, making it unambiguous and distinguishing it from sibling tools.

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

Usage Guidelines4/5

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

The description provides actionable usage guidance: it directs the agent to call action='describe' for the full reference, explicitly flags which operations are destructive (delete, bulk-delete), and explains the default verbosity behavior for the detail parameter. It does not explicitly name alternatives but gives clear internal guidance for using actions correctly.

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.
Behavior5/5

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

Beyond the readOnly/idempotent/destructive annotations, the description discloses that the tool consumes bandwidth credits, which is a significant cost consideration. It also flags the deprecated quickshare-details action and directs users to 'describe' for complete details. 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?

Three sentences, front-loaded with the core purpose, then adding bandwidth and deprecation context, and a pointer to 'describe' for full reference. Every sentence earns its place with no 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?

The description is concise but sufficient for a complex tool given that the schema covers all parameters and the description points to action='describe' for the full reference. It omits return-value details, but the describe action mitigates this gap. The bandwidth credit note and deprecation warning add necessary context.

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 schema already explains every parameter. The description only mentions action values (file-url, zip-url, quickshare-details) that are already listed in the schema's enum, adding no deeper semantic meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: to download URLs for files, folder ZIPs, and quickshare links, with specific action names. It distinguishes itself from sibling tools like upload and fileshare by focusing on download links and explicitly marking quickshare-details as deprecated.

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 clear context for when to use the tool and includes an explicit alternative for the deprecated quickshare-details action (use fileshare's create action). It also advises calling action='describe' for the full reference, but does not broadly contrast with all sibling tools (e.g., upload), though the name and description imply the distinction.

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 (@mentions, file activity) 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. "mention: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.
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.
Behavior5/5

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

Goes beyond annotations by disclosing 'view-only dismiss/snooze', 'best-effort AI overlay', 'long-poll', and the limitation that only search/details honor output=, while summarize/activity-list/activity-poll are best-effort. These are behavioral traits not in the annotations, providing valuable transparency.

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 efficient, packing a lot of essential information about actions, verbosity defaults, and limitations into a compact form. While it's a long single paragraph, it earns its length given the tool's complexity, and avoids 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?

For a complex tool with 30 parameters and no output schema, the description provides a solid overview of core behaviors, including return granularity ('terse/standard/full') and poll-related parameters like cursor/lastactivity. It also points to 'describe' for full details, filling in gaps appropriately.

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

Parameters4/5

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

Schema description coverage is 100%, but the description adds semantic context: it explains that detail defaults differ by action, gives the card_key format ('<lane>:<id>'), and describes the purpose of action='describe'. This adds meaning beyond the schema's own 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's purpose: 'Event log and activity monitoring for workspaces and shares' and also surfaces the per-member DASHBOARD. It names specific actions (describe, search, summarize, etc.) and distinguishes its function from other tools by emphasizing its event/activity focus.

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 usage context: 'Call action='describe' for the full action/param reference', explains verbosity defaults and when to override with detail, and describes the behavior of activity-list/activity-poll (long-polling). Does not explicitly mention alternative tools or when not to use this tool, but context is strong.

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 adds substantial behavioral context beyond the annotations (readOnlyHint=false, destructiveHint=true). It explicitly states that delete is destructive but only removes the share, not the file; that grant-revoke is reversible; that passwords must be sent via header and never in URLs; and that gated shares require Authorization/password headers on direct URLs. This goes far beyond the simple annotation flags and is highly valuable for safe invocation.

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

Conciseness5/5

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

The description is dense but each sentence earns its place: overview, action list, describe hint, binding immutability, uniform 404, password header, destructive/reversible behavior, and direct URL header requirements. It is well-structured with front-loaded summary and no fluff, despite being longer than average 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?

For a complex tool with 16 parameters and no output schema, the description is remarkably complete. It covers the tool's purpose, all action categories, key behavioral constraints (uniform 404, password header, direct URL requirements), and points to 'describe' for further reference. The schema fully documents parameters, so the description complements it without unnecessary repetition.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by clarifying that the `password` input is supplied via the x-ve-password header (never in URLs) and that the share binding is immutable. These details are not fully captured in the schema descriptions and are crucial for correct parameter handling.

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

Purpose5/5

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

The description opens with 'File Shares: durable single-file share links' and then lists the full range of operations (create/list/details/update/delete, grants, URLs). This clearly identifies the tool's purpose and distinguishes it from sibling tools like 'share' or 'upload' by emphasizing single-file binding and access management.

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 clear context for when to use the tool: for creating durable file shares, managing per-user grants, and generating direct/preview/version URLs. It also provides behavioral guidance (e.g., 'deletion NEVER touches the bound file', 'Recipient 404 is UNIFORM') and instructs to call action='describe' for the full reference. However, it does not explicitly name alternative tools or specify when NOT to use this tool.

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), 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).
Behavior5/5

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

Annotations already indicate readOnly and non-destructive behavior, and the description adds valuable context: results are grouped into independently paginated buckets with health reports, the metadata bucket is workspace-only, and a single query is searched across all applicable buckets. This goes well beyond the structured 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 dense but every sentence earns its place: it states the core purpose, highlights grouped buckets and pagination, gives usage guidance with explicit alternatives, and notes the code-mode distinction. It is front-loaded with the primary function and avoids repetition of schema content.

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 complexity (16 params, no output schema), the description is remarkably complete. It explains the grouped result structure, per-bucket pagination, workspace/share differences, and how to obtain the full parameter reference. The schema already documents all parameters, so the description fills the remaining contextual 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?

The schema descriptions already cover 100% of the 16 parameters, so the baseline is 3. The description adds value by clarifying that a single query searches across all buckets and directing users to action='describe' for the full parameter reference, which helps with the many alias parameters. It does not introduce any new param details, but the coverage is already complete.

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 this is a "Unified search across a workspace or share" that groups results by type into buckets, using the verb "search" with a specific resource. It explicitly distinguishes itself from sibling tools by calling itself the "grouped SUPERSET" and naming the narrower alternatives (`storage action=search`, `metadata action=search`, code-mode `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?

The description explicitly tells the agent when to use this tool (for grouped results across multiple types) and when not to (prefer narrower tools for a single result type). It also directs the agent to call action='describe' for the full action/param reference, and warns that the code-mode search tool targets the API catalog, not content.

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…
Behavior5/5

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

No annotation contradiction; readOnlyHint=true is reinforced by the explicit statement that it 'performs NO platform action'. The description goes well beyond annotations by explaining the output is guidance text, answers are grounded in Fastio's knowledge, it's free, and requires only auth. This fully discloses behavior without needing additional inference.

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 front-loaded with the core purpose in the first phrase. It contains some repetition (EXPLAIN-ONLY / ADVISORY vs. performs NO platform action), but every sentence contributes distinct useful information. It's structured logically, moving from function to safety to alternatives to access constraints.

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 there is no output schema, the description fully covers what the agent should expect: grounded guidance text or a clarifying question. It also explains the action enum, the distinction from `ai`, and authentication requirements. For a natural-language help tool, this is complete and self-sufficient.

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 covers all parameters thoroughly (100%), so baseline is 3. The description adds extra meaning by detailing the 'describe' action for full reference and clarifying that questions should be specific natural-language queries about Fastio, and that answers suggest concrete tool calls. This enriches parameter understanding beyond the schema alone.

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 a specific verb+resource: 'ask a natural-language 'how do I…' question about Fastio'. It distinguishes itself from siblings by explicitly contrasting with the `ai` tool for RAG and emphasizing it's about Fastio itself. The phrase 'Built-in product help' also clarifies its role.

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 names an alternative (`ai` tool for file RAG) and tells the agent to prefer this tool over guessing endpoints. It also advises 'read the guidance, then act with the other tools', giving clear when-to-use and when-not-to-use context.

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).
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds that 'delete' is destructive, which is useful context, but does not disclose other behavioral details such as reversibility of revoke or side effects. There is no contradiction between description and 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?

Three sentences, front-loaded with purpose, a pointer to deeper docs, and a safety warning. Each sentence earns its place with 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?

The tool has 10 parameters and multiple actions with no output schema. The description gives a brief overview and points to action='describe' for the full reference, which partially compensates for missing information. However, it does not explain return values, action-specific behavior nuances, or the meaning of list vs list-by-state, so completeness is moderate.

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%—every parameter has a description. The description adds a pointer to action='describe' for full parameter reference, but does not explain individual parameters beyond the schema. Thus it meets the baseline but does not elevate it.

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's resource (workspace/share invitations) and operations (list, filter by state, update, revoke). It also notes the destructive delete action. This distinguishes it from sibling tools by focusing on the invitation lifecycle.

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 implies usage for managing invitations ('Workspace/share invitations: list, filter by state, update, revoke') and suggests using action='describe' for full reference. However, it does not explicitly compare with alternatives or state when not to use this tool, so only implied usage guidance is present.

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, and the description adds 'Destructive: remove,' clarifying which action is destructive. This is useful but minimal; it does not discuss reversibility, permissions, or side effects, though annotations lower the bar.

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 cover scope, actions, a meta-instruction, and destructiveness. No waste—front-loaded and readable.

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 20-parameter multi-action tool, the description is intentionally brief but compensates by directing users to the 'describe' action for full reference. It leverages annotations and schema to cover safety and parameter details, making it reasonably complete despite no output schema.

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's pointer to 'describe' duplicates the action parameter's own description, so it adds no additional parameter meaning 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 manages workspace/share members with specific actions: list, add, remove, update, transfer ownership, join, leave. It includes the resource scope (workspace/share) and differentiates from sibling tools like workspace, share, and invitation.

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 mentions 'Call action='describe' for the full action/param reference', which provides a way to discover usage. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions for overlapping sibling tools.

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?

The description goes well beyond annotations by naming the destructive actions ('template-delete, view-delete, nodes-remove'), listing credit-consuming actions ('preview-match, suggest-fields, auto-match, extract-all — each spends AI credits'), and adding server-side caveats like 'category accepted but ignored server-side' and the autoextract:true requirement (API returns 1605). This is rich, actionable 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?

Despite the tool's complexity, the description is a tight 5-sentence overview: purpose, pipeline, describe pointer, storage alternative, and risk flags. Every sentence carries essential info with no filler, and it is front-loaded with the core purpose.

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

Completeness5/5

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

For a 25-parameter, multi-action tool with no output schema, this description gives a sufficient mental model: scope, capability map, key exclusions, destructive/credit side-effects, and a direct 'describe' escape hatch for exhaustive details. It is complete enough for an agent to select and invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents every parameter. The description itself adds minimal parameter-level semantics beyond summarizing the action families, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific domain phrase: 'AI metadata templates & extraction (the unstructured-data automation pipeline)' and enumerates the major capability groups (template CRUD/clone, assign/resolve, AI pipeline, saved views, lexical search). It clearly distinguishes from siblings by explicitly moving node-level metadata to the `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 Guidelines5/5

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

It gives explicit when/where guidance: 'Node-level metadata (get/set/delete/extract on a single file) lives on the `storage` tool' — a direct alternative. It also outlines the AI pipeline sequence and points to action='describe' for full reference, helping the agent pick the right action and know side effects (AI credits) before invoking.

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

orgA
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.
Behavior4/5

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

The description explicitly warns that 'close (permanently deletes org and all data)', which adds specific destructive behavior beyond the generic destructiveHint=true annotation. It also reveals the 'describe' mechanism, indicating a self-documenting structure. No behavior contradicts the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=true).

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 concise sentences: a purpose statement, a usage pointer, and a critical destructive warning. It is front-loaded with the tool's scope, immediately provides actionable guidance, and includes a safety note. Every sentence earns its place with 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?

For a tool with 58 parameters and dozens of actions, the description is intentionally a high-level entry point. It covers the essential context—what the tool manages, how to get the full reference via 'describe', and the key destructive caveat. While it does not enumerate every action or return value, the 'describe' pointer compensates for the lack of an output schema and the huge parameter space, making it sufficiently complete for an agent to proceed.

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?

The input schema already provides 100% parameter descriptions, so the description need not repeat them. The note 'Call action='describe' for the full action/param reference' directs the agent to the schema for detailed parameter meaning. The description adds no extra parameter semantics beyond what the schema offers, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly identifies the tool as 'Organization management' and enumerates its scope (CRUD, billing, members, invitations, ownership transfer, assets, discovery, custom domains). While the verb 'management' is broad, the resource and domain list give a concrete sense of purpose. It does not explicitly differentiate from sibling tools like 'member' or 'invitation', but the scope list helps distinguish it as the overarching organization tool.

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?

Usage is implied through the listed domains (CRUD, billing, members, etc.), and the instruction to 'Call action='describe'' provides a clear first step for the agent. However, there is no explicit guidance on when to prefer this tool over siblings like 'member', 'invitation', or 'asset', nor any exclusion criteria. The describe hint is useful but does not fully replace when-to-use versus alternatives.

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

roomA
Destructive
Inspect

Coordination Rooms — a private, workspace-scoped space for agentic teams (agents + humans) to join, post messages, track each other's status/presence, and hand off files. Create is idempotent per (workspace, topic_slug). Presence is refreshed by ANY room call; liveness ≠ progress. Hand files off via the upload tool into the room's storage. Call action='describe' for the full protocol + action/param reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNopost only. Message body, 1-8192 chars. Do NOT put secrets here.
goalNocreate only. 1-500 chars, no control characters. Do NOT put secrets here.
kindNopost only. One of: say|ask|answer|status|join|done.
limitNomessages only. Page size (default 50, max 200).
sinceNomessages only. Opaque keyset cursor from a prior page's next_cursor. Omit for the first page; never parse it.
actionYesOperation. Use 'describe' for full action reference.
key_idNoagents-revoke only. The key_id of a room-minted agent key (from agents-list).
statusNostatus only. Self-reported; transitions are NOT enforced. One of: investigating|joining|working|testing|waiting|needs_peer|resolved_pending|done|blocked.
room_idNoRoom ID (a 19-digit share profile ID; from create).
topic_slugNocreate only. 1-64 chars, lowercase alnum + internal hyphens (no leading/trailing hyphen). Create is idempotent per (workspace, topic_slug).
agent_labelNoYour agent's PUBLIC SENDER IDENTITY — the display name peers and humans see on EVERY message and roster row, for the room's life (the roster `id` is keyed off…
ttl_secondsNoinvite-create only. One-time link lifetime in seconds (default 1800 = 30 min, capped at 3600 = 1 h).
display_textNopost only. Optional short display summary (max 500 chars).
intelligenceNocreate only. Enable AI on the room (requires an intelligence-capable plan). Default false.
lastactivityNowait only. Activity cursor from a prior wait response — echo it VERBATIM (it carries fractional seconds; truncating/reformatting to Y-m-d H:i:s causes instant…
wait_secondsNowait only. Max seconds the server holds the poll open (1-20, default 20).
workspace_idNo19-digit workspace profile ID (create — you must be a MEMBER).
participant_idNoparticipant-remove only. The roster participant `id` (stable identity, from `state`) to remove — NOT the agent_label.
status_summaryNostatus only. Free-text summary of what you're doing (max 500 chars).
status_versionNostatus only. The CAS version you last read. REQUIRED for an existing participant; omit ONLY on your VERY FIRST join (when you have no participant row yet). A…
suggested_labelNoinvite-create only. The redeeming agent's default agent_label = its PUBLIC SENDER IDENTITY in the room (the name peers and humans see on every message + roster…
Behavior5/5

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

Beyond annotations (destructiveHint=true), the description adds critical behavioral details: idempotency of create per (workspace, topic_slug), presence refresh on any call (liveness ≠ progress), and file handoff via upload. This significantly aids agent understanding of side effects and constraints.

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 a clear front-loaded purpose statement. It includes additional guidelines succinctly. It is not overly verbose, but slightly longer than strictly necessary due to detailed behavioral notes.

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 (21 parameters, 11 actions) and absence of output schema, the description covers key behaviors and directs users to the 'describe' action for full protocol. It is reasonably complete for an overview, though edge cases like parameter validation are left to the schema.

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 parameter-specific meaning beyond what is already in the input schema descriptions. For example, it does not explain 'agent_label' or 'status_version' further.

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: 'Coordination Rooms — a private, workspace-scoped space for agentic teams (agents + humans) to join, post messages, track each other's status/presence, and hand off files.' It uses specific verbs and resources, and the room concept is distinct from sibling tools like 'fileshare' or 'upload'.

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 provides context for when to use the tool (for coordination rooms) and mentions complementary tools ('Hand files off via the `upload` tool'). It also suggests using action='describe' for full protocol. However, it does not explicitly exclude alternatives or state when not to use this tool, so it misses the highest score.

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.
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).
expiresNoExpiration: 'YYYY-MM-DD HH:MM:SS' for create/update; seconds (default 10800, max 604800) for quickshare-create.
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,…
passwordNoPassword (only with 'Anyone with the link').
share_idNoShare profile ID or custom name.
expires_atNoISO 8601 datetime for quickshare expiration.
share_typeNoNew share type.
custom_nameNoCustom share URL name (4-80 chars, alphanumeric).
descriptionNoShare description (10-500 chars).
folder_nameNoName for new folder (default: 'Shared Folder').
accent_colorNoAccent color as JSON string.
display_typeNoDisplay mode (default: grid).
intelligenceNoEnable RAG indexing. ⚠️ COSTS CREDITS (10/page) — default false unless user requests it. Forced false on workspace_folder shares.
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.
access_optionsNoAccess level. 'Anyone with the link' not allowed for receive/exchange.
folder_node_idNoWorkspace folder node ID (workspace_folder mode).
describe_actionNoWhen action='describe', narrow the output to ONE action's full params/notes (e.g. 'create'). Omit to get the compact action index.
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).
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?

Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=true. The description supplements this by specifying that delete is permanent, that autotitle consumes credits and mutates share metadata, and that intelligence on create costs 10 credits/page and defaults to false. These behavioral details go well beyond the annotations and help the agent anticipate 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.

Conciseness5/5

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

The description is dense but well-organized: summary, deprecation notice, self-service reference, side effects, cost warnings, and verbosity defaults. Every sentence conveys a distinct, actionable fact, and the use of bullet-like formatting and emojis improves scanability without padding.

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?

With 41 parameters and 15 actions but no output schema, the description cannot fully document every behavior. However, it provides a strong orientation: action families, destructive operations, side effects, credit costs, verbosity defaults, and a pointer to the built-in `describe` action for exhaustive per-action reference. This makes it complete enough for an agent to start using the tool safely.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds cross-action semantics for the `detail` parameter, explaining terse/standard/full defaults per action and the override syntax. It also reinforces the cost implication of `intelligence` and the deprecation of `quickshare-create`, which informs parameter choice. This adds modest value over 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 opens with 'Share management: create/update/delete, archive, password auth, members, autotitle,' which clearly identifies the tool's broad scope and key operations. It also distinguishes from the sibling `fileshare` tool by noting the deprecated quickshare-create and directing users to fileshare's create action. This makes the purpose specific and differentiated.

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 usage guidance, including a deprecation notice with error code 10756 and a recommendation to use the `fileshare` tool's create action for durable single-file shares. It instructs users to call action='describe' for the full action/param reference, and it explains default verbosity per action with an override. It also warns about credit costs for intelligence, giving clear when-to-use context.

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'. `list` defaults to 'root' when omitted.
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; `list` defaults to 'root' when omitted.)
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 signal destructiveHint and readOnlyHint, and the description adds concrete destructive semantics: 'purge (irreversible)', 'delete moves to trash', and 'metadata-delete removes metadata keys'. It also explains default verbosity behavior for different actions, going beyond the generic annotation flags.

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 compact and front-loaded: it states the scope, lists operations, points to the describe action, and then covers safety and verbosity. Every sentence carries essential information and there is no filler.

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

Completeness4/5

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

For a tool with 50 parameters and over 29 actions, the description cannot fully document everything, but it covers the highest-risk behaviors (destruction), verbosity defaults, and provides a clear escape hatch through action='describe'. Combined with thorough schema descriptions, this is reasonably complete, though it does not describe return shapes or all polymorphic context-id patterns.

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?

The input schema describes all 50 parameters with 100% coverage, so the description does not carry the burden of documenting them. It does add value by explaining the detail parameter defaults and the action='describe' mechanism, but this is supplemental rather than necessary, matching the baseline of 3.

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's scope ('Files & folders on workspaces/shares') and enumerates concrete operations (list, search, copy, move, delete, rename, trash, transfer, versions, locks, previews, metadata). It is specific about the resource domain, though it is a broad multi-action tool and does not explicitly contrast with sibling tools like fileshare or metadata, so it stops short of a 5.

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 implies usage through its list of operations and gives helpful pointers like 'Call action='describe'' for the full reference. It also provides behavioral cautions around destructive actions and verbosity defaults, but it does not explicitly say when to prefer this tool over sibling tools 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.

uploadA
Destructive
Inspect

File upload: stream-upload (one-shot — auto-finalizes, no filesize needed), chunked (create-session → chunk → finalize, for exact-known-size or files split across blobs), web URL import, and batch (many small files). 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). BYTES → SERVER: the DEFAULT for every file/binary is the POST /blob sidecar — a plain HTTP POST outside the MCP pipe (the create-session/blob-info response hands you a ready-to-run curl command) that returns a blob_id you pass to stream-upload/chunk/batch: no base64, no MCP size limit, up to 100 MB. Use content_base64 (inline base64, capped a few MB by the MCP transport) ONLY when your client cannot make the POST /blob call. content is small text only (verbatim UTF-8). UPLOAD STRATEGY (read top-to-bottom, pick the FIRST that matches): (1) Have a URL? → web-import (single call). (2) DEFAULT for a file/binary → POST /blob, then stream-upload with blob_id (single call, auto-finalizes, NO filesize required). Unknown/generated size and no way to reach /blob → stream-upload with content_base64. (3) Known exact byte count, or a large file split across blobs → create-session + chunk(blob_id) + 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. Prefer blob_id (POST /blob) for every file/binary upload; fall back to content_base64 only when you cannot reach /blob. Do NOT guess filesize for generated content — use stream-upload. 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 — the **default source** for all file & binary uploads (no base64, no MCP size limit, up to 100 MB). 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-decoded (whitespace stripped). **Fallback only** — capped a few MB by the MCP transport. Prefer `blob_id` (POST /blob) for…
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?

Beyond the destructiveHint annotation, the description discloses side effects (creates files, consumes storage credits), same-name overwrite as recoverable versions, exact filesize mismatch causing failure code 10522, and max_size aborting mid-transfer. This is rich behavioral context that annotations do not provide.

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 justified by the tool's complexity (40 params, 20 actions). It is well-structured with uppercase section headers and dense, front-loaded content. Every sentence carries operational value, though a slightly more compressed format would improve scannability.

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

Completeness5/5

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

For a tool this complex with no output schema, the description is remarkably complete: it covers all upload modes, side effects, overwrite/versioning, transport limits (100 MB vs few MB), fallback paths, and file size constraints. It also points to action='describe' for deeper per-action reference, making it a sufficient entry point.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds cross-parameter decision guidance: prefer blob_id over content_base64, content is text-only, filesize must match exactly, max_size should be overestimated. It reinforces and prioritizes schema descriptions, providing strategic meaning beyond each parameter's individual doc.

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

Purpose5/5

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

The description opens with 'File upload:' and immediately enumerates four distinct methods (stream-upload, chunked, web import, batch), clearly defining the tool's purpose and scope. It differentiates internal actions enough to make the tool's capabilities obvious, even without naming sibling tools.

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

Usage Guidelines5/5

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

The 'UPLOAD STRATEGY' section provides an explicit, prioritized decision tree: 'read top-to-bottom, pick the FIRST that matches,' with precise conditions for web-import, POST /blob + stream-upload, content_base64 fallback, and chunked sessions. It also includes strong exclusions like 'Do NOT guess filesize' and 'fall back only when you cannot reach /blob.'

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

userA
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.
Behavior4/5

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

Annotations already indicate destructive behavior, and the description adds specificity by highlighting 'Destructive: close.' This goes beyond the structured data by naming which action is destructive. A minor gap is that 'asset-delete' is also destructive but not mentioned, though this doesn't contradict 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 concise sentences: scope, reference pointer, and destructive flag. Each sentence earns its place, and the most important guidance is front-loaded. No wasted words.

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 (17 actions, 19 params) and the lack of an output schema, the description directs to 'describe' for full details, which mitigates the sparse top-level text. The schema is rich and self-describing, making the description sufficient for orientation. It could be more complete by explicitly noting the multi-action umbrella structure and highlighting other destructive actions, so not a 5.

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

Parameters3/5

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

Schema coverage is 100%, and every parameter has a descriptive definition, so the baseline is 3. The tool description itself doesn't add parameter-level meaning beyond the pointer to 'describe' for the full reference, which is an instruction rather than semantic detail.

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 covers user profile, contacts, invitations, and assets, and directs to 'describe' for full action reference. It distinguishes by user-centric scope, but doesn't explicitly differentiate from overlapping sibling tools like 'invitation' or 'asset', preventing a 5.

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

Usage Guidelines4/5

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

It provides clear context for when to use this tool (user-related operations) and instructs calling action='describe' for the full action/param reference. It also flags the destructive 'close' action. However, it does not explicitly name alternative sibling tools or exclusions, so it falls short of a 5.

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

workspaceA
Destructive
Inspect

Workspace management: list/details/update/delete, archive, members, notes, quickshares, share import, import toggle. 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.
Behavior5/5

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

Annotations only say readOnlyHint=false and destructiveHint=true, but the description adds specifics: delete removes workspace and all files; intelligence costs 10 credits/page, is rate-limited, and requires explicit user consent; metadata-* actions are deprecated one-release execute-and-warn shims. It also discloses verbosity defaults and override behavior. No contradictions.

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

Conciseness5/5

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

The description is dense but every sentence serves a purpose: operation list, deprecation notice, destructive warning, cost warning, and verbosity defaults. It's front-loaded with the most critical info. While long, it's appropriate for a 44-parameter tool.

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

Completeness5/5

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

For a multi-action tool with no output schema, the description covers the main action groups, points to `action='describe'` for exhaustive references, and highlights safety-critical constraints (destructive delete, credits). It's sufficiently complete for an agent to navigate the 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%, so baseline is 3. The description adds value by explaining the `detail` parameter's default modes (terse vs full) and the `intelligence` parameter's credit cost and rate limit – details not fully captured in the schema. This lifts it to a 4.

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

Purpose5/5

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

The description opens with 'Workspace management: list/details/update/delete, archive, members, notes, quickshares, share import, import toggle' – a specific resource with enumerated operations. It explicitly distinguishes from the `metadata` and `storage` tools by noting metadata actions moved there, and flags deprecated shims. This clearly separates it from sibling tools.

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

Usage Guidelines5/5

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

It provides explicit when-not guidance: metadata actions belong to the `metadata` tool and node-level metadata to `storage` tool. It also instructs to call `action='describe'` for full reference, and warns to only enable intelligence on explicit user request. This is strong usage guidance with alternatives.

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!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources