Skip to main content
Glama

ai

Destructive

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).

Input Schema

TableJSON 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: filter by 'user'|'agent'|'all'.
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 (one details fetch, ~1 round-trip) — useful against strict ~30s client timeouts.
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 {count, items}), so this is forwarded but may be a silent no-op until the platform adds paging.
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 server-side). Defaults: terse for list-style (chat-list, message-list), full for details (chat-details, message-details). See action='describe' for per-level field lists.
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 context_id / instance_id. 19-digit workspace or share ID.
query_textNoQuestion or prompt (max 32,000 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 workspace intelligence. A missing/inaccessible/ineligible node ERRORS (not a silent drop). See describe.
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).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / query_text / description
      Previous value: -"Question or prompt (max 12,768 chars)."New value: +"Question or prompt (max 32,000 chars)."
    • changedInput schema / properties / query_text / maxLength
      Previous value: -12768New value: +32000
  2. Changed6 schema fields changed
    • changedInput schema / properties / detail / description
      Previous value: -"Per-entity verbosity for chat-list/chat-details/message-list/message-details (best-effort: chat/message/activity endpoints may not yet honor detail…"New value: +"Per-entity verbosity for chat-list/chat-details/message-list/message-details (best-effort: chat/message/activity endpoints may not yet honor detail server-side). Defaults: terse for list-style (chat-list, message-list), full for details (chat-details, message-details). See action='describe' for per-level field lists."
    • changedInput schema / properties / files_attach / description
      Previous value: -"Attach workspace FILES for the AI to read directly (comma-separated nodeId:versionId pairs; versionId optional → backend resolves current). Works regardless of…"New value: +"Attach workspace FILES for the AI to read directly (comma-separated nodeId:versionId pairs; versionId optional → backend resolves current). Works regardless of workspace intelligence. A missing/inaccessible/ineligible node ERRORS (not a silent drop). See describe."
    • changedInput schema / properties / kind / description
      Previous value: -"chat-create (workspace only): 'user' (default) or 'agent' — flags the chat as agentic; set at creation, immutable; not accepted on share chats. chat-list:…"New value: +"chat-create (workspace only): 'user' (default) or 'agent' — flags the chat as agentic; set at creation, immutable; not accepted on share chats. chat-list: filter by 'user'|'agent'|'all'."
    • changedInput schema / properties / limit / description
      Previous value: -"chat-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…"New value: +"chat-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 {count, items}), so this is forwarded but may be a silent no-op until the platform adds paging."
    • changedInput schema / properties / profile_id / description
      Previous value: -"Polymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also…"New value: +"Polymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also context_id / instance_id. 19-digit workspace or share ID."
    • changedInput schema / properties / wait / description
      Previous value: -"message-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…"New value: +"message-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 (one details fetch, ~1 round-trip) — useful against strict ~30s client timeouts."
  3. Changed6 schema fields changed
    • changedInput schema / properties / files_attach / description
      Previous value: -"Attach files for direct AI analysis. See describe for limits."New value: +"Attach workspace FILES for the AI to read directly (comma-separated nodeId:versionId pairs; versionId optional → backend resolves current). Works regardless of…"
    • removedInput schema / properties / files_scope
      Removed value: -{
      -  "description": "Scope RAG to file versions. See describe for full constraints.",
      -  "type": "string"
      -}
    • addedInput schema / properties / folders_attach
      Added value: +{
      +  "description": "Attach workspace FOLDERS for the AI to read (comma-separated folder nodeIds; no depth). Denied on restricted-view shares. See describe.",
      +  "type": "string"
      +}
    • removedInput schema / properties / folders_scope
      Removed value: -{
      -  "description": "Scope RAG to folders via BFS. See describe for full constraints.",
      -  "type": "string"
      -}
    • removedInput schema / properties / personality
      Removed value: -{
      -  "description": "\"concise\" or \"detailed\" (default).",
      -  "enum": [
      -    "concise",
      -    "detailed"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / type
      Removed value: -{
      -  "description": "'chat' for general or 'chat_with_files' for file-grounded.",
      -  "enum": [
      -    "chat",
      -    "chat_with_files"
      -  ],
      -  "type": "string"
      -}
  4. Changed3 schema fields changed
    • changedInput schema / properties / profile_id / description
      Previous value: -"Polymorphic context ID. Pair with profile_type=workspace|share|org. Use workspace_id instead when only workspaces are valid. 19-digit workspace or share ID."New value: +"Polymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also…"
    • addedInput schema / properties / share_id
      Added value: +{
      +  "description": "Alias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted).",
      +  "type": "string"
      +}
    • addedInput schema / properties / workspace_id
      Added value: +{
      +  "description": "Alias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted).",
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / instance_id
      Added value: +{
      +  "description": "Alias for profile_id (REST/how-to name; profile_id is canonical).",
      +  "minLength": 1,
      +  "type": "string"
      +}
  6. Changed11 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "describe",
      -  "chat-create",
      -  "chat-list",
      -  "chat-details",
      -  "chat-update",
      -  "chat-delete",
      -  "chat-publish",
      -  "chat-cancel",
      -  "message-send",
      -  "message-list",
      -  "message-details",
      -  "message-read",
      -  "share-generate",
      -  "transactions",
      -  "autotitle"
      -]New value: +[
      +  "describe",
      +  "ask",
      +  "status",
      +  "chat-create",
      +  "chat-list",
      +  "chat-details",
      +  "chat-update",
      +  "chat-delete",
      +  "chat-publish",
      +  "chat-cancel",
      +  "message-send",
      +  "message-list",
      +  "message-details",
      +  "message-read",
      +  "share-generate",
      +  "transactions"
      +]
    • removedInput schema / properties / context
      Removed value: -{
      -  "description": "Optional user hint to guide AI generation.",
      -  "type": "string"
      -}
    • changedInput schema / properties / detail / description
      Previous value: -"Per-entity verbosity for chat-list/chat-details/message-list/message-details. Defaults: terse for list-style (chat-list, message-list), full for details (chat-details, message-details). See action='describe' for per-level field lists."New value: +"Per-entity verbosity for chat-list/chat-details/message-list/message-details (best-effort: chat/message/activity endpoints may not yet honor detail…"
    • changedInput schema / properties / include_deleted / description
      Previous value: -"If true, list deleted chats (share only)."New value: +"chat-list: if true, list deleted chats via the /deleted variant (workspace AND share)."
    • addedInput schema / properties / kind
      Added value: +{
      +  "description": "chat-create (workspace only): 'user' (default) or 'agent' — flags the chat as agentic; set at creation, immutable; not accepted on share chats. chat-list:…",
      +  "enum": [
      +    "user",
      +    "agent",
      +    "all"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"Results per page (1-500, default 100)."New value: +"chat-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…"
    • changedInput schema / properties / name / description
      Previous value: -"New chat name (max 100 chars)."New value: +"New chat name."
    • changedInput schema / properties / offset / description
      Previous value: -"Pagination offset (default 0)."New value: +"chat-list/message-list pagination offset — see the limit caveat (no documented paging on these endpoints; forwarded best-effort)."
    • changedInput schema / properties / privacy / description
      Previous value: -"Chat privacy (default: public)."New value: +"Chat privacy (default: private). Workspace chat-create only — share chats are always private."
    • addedInput schema / properties / query_text / maxLength
      Added value: +12768
    • addedInput schema / properties / wait
      Added value: +{
      +  "description": "message-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…",
      +  "type": "boolean"
      +}
  7. Changed8 schema fields changed
    • removedInput schema / properties / limit / anyOf
      Removed value: -[
      -  {
      -    "maximum": 500,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / limit / maximum
      Added value: +500
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • addedInput schema / properties / limit / type
      Added value: +"integer"
    • removedInput schema / properties / offset / anyOf
      Removed value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / offset / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / offset / minimum
      Added value: +0
    • addedInput schema / properties / offset / type
      Added value: +"integer"
  8. Changed25 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Operation to perform"New value: +"Operation. Use 'describe' for full action reference."
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "chat-create",
      -  "chat-list",
      -  "chat-details",
      -  "chat-update",
      -  "chat-delete",
      -  "chat-publish",
      -  "message-send",
      -  "message-list",
      -  "message-details",
      -  "message-read",
      -  "share-generate",
      -  "transactions",
      -  "autotitle"
      -]New value: +[
      +  "describe",
      +  "chat-create",
      +  "chat-list",
      +  "chat-details",
      +  "chat-update",
      +  "chat-delete",
      +  "chat-publish",
      +  "chat-cancel",
      +  "message-send",
      +  "message-list",
      +  "message-details",
      +  "message-read",
      +  "share-generate",
      +  "transactions",
      +  "autotitle"
      +]
    • changedInput schema / properties / chat_id / description
      Previous value: -"AI chat ID (required for: chat-details, chat-update, chat-delete, chat-publish, message-send, message-list, message-details, message-read)"New value: +"AI chat ID."
    • changedInput schema / properties / context / description
      Previous value: -"Optional user hint to guide AI generation (used by: autotitle)"New value: +"Optional user hint to guide AI generation."
    • addedInput schema / properties / detail
      Added value: +{
      +  "description": "Per-entity verbosity for chat-list/chat-details/message-list/message-details. Defaults: terse for list-style (chat-list, message-list), full for details (chat-details, message-details). See action='describe' for per-level field lists.",
      +  "enum": [
      +    "terse",
      +    "standard",
      +    "full"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / files / description
      Previous value: -"File opaque IDs to include (max 25, share only) (required for: share-generate when profile_type=share)"New value: +"File opaque IDs (max 25, share share-generate)."
    • changedInput schema / properties / files_attach / description
      Previous value: -"Attach specific files for direct AI analysis — works regardless of workspace intelligence setting. FILES ONLY: passing a folder nodeId returns a 406 error. To include folder contents in AI context, use folders_scope instead (requires intelligence). Comma-separated nodeId:versionId pairs (nodeId required, versionId auto-resolved to current version if empty). Max 20 files, 200 MB total. Mutually exclusive with files_scope/folders_scope. Check ai.attach=true in storage details before using — files with ai.attach=false will be rejected. (used by: chat-create, message-send)"New value: +"Attach files for direct AI analysis. See describe for limits."
    • changedInput schema / properties / files_scope / description
      Previous value: -"Scope RAG search to specific file versions — REQUIRES workspace intelligence enabled (will error if intelligence is off). Comma-separated nodeId:versionId pairs (max 100 pairs). nodeId is required; versionId is auto-resolved to the current version if left empty (e.g., 'nodeId:' with nothing after the colon). Get versionId from storage list/details 'version' field. Do NOT enumerate folder contents as files_scope — use folders_scope with the folder's nodeId instead. OMIT this parameter to search all indexed files in the workspace (recommended default). Mutually exclusive with files_attach. (used by: chat-create, message-send)"New value: +"Scope RAG to file versions. See describe for full constraints."
    • changedInput schema / properties / folders_scope / description
      Previous value: -"Scope RAG search to specific folders — REQUIRES workspace intelligence enabled (will error if intelligence is off). Comma-separated nodeId:depth pairs (depth 1-10, max 100 subfolder refs). Use this to narrow AI context to folder contents without listing individual files — the RAG backend finds files within scoped folders automatically. OMIT to search all indexed files (recommended default). Mutually exclusive with files_attach. (used by: chat-create, message-send)"New value: +"Scope RAG to folders via BFS. See describe for full constraints."
    • changedInput schema / properties / include_deleted / description
      Previous value: -"If true, list deleted chats instead (share only) (used by: chat-list)"New value: +"If true, list deleted chats (share only)."
    • addedInput schema / properties / limit / anyOf
      Added value: +[
      +  {
      +    "maximum": 500,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / limit / description
      Previous value: -"Results per page, 1-500 (default 100) (used by: chat-list, message-list, search)"New value: +"Results per page (1-500, default 100)."
    • removedInput schema / properties / limit / type
      Removed value: -"number"
    • changedInput schema / properties / message_id / description
      Previous value: -"AI message ID (required for: message-details, message-read)"New value: +"AI message ID."
    • changedInput schema / properties / name / description
      Previous value: -"New name for the AI chat (max 100 chars) (required for: chat-update)"New value: +"New chat name (max 100 chars)."
    • changedInput schema / properties / node_ids / description
      Previous value: -"File node IDs to include (max 25, workspace only) (required for: share-generate when profile_type=workspace)"New value: +"File node IDs (max 25, workspace share-generate)."
    • addedInput schema / properties / offset / anyOf
      Added value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / offset / description
      Previous value: -"Pagination offset (default 0) (used by: chat-list, message-list, search)"New value: +"Pagination offset (default 0)."
    • removedInput schema / properties / offset / type
      Removed value: -"number"
    • changedInput schema / properties / personality / description
      Previous value: -"Response style: \"concise\" (short, brief answers) or \"detailed\" (comprehensive with context and evidence, default). (used by: chat-create, message-send)"New value: +"\"concise\" or \"detailed\" (default)."
    • changedInput schema / properties / privacy / description
      Previous value: -"Chat privacy setting (default: public) (used by: chat-create)"New value: +"Chat privacy (default: public)."
    • changedInput schema / properties / profile_id / description
      Previous value: -"19-digit workspace or share ID (also accepted as context_id)"New value: +"Polymorphic context ID. Pair with profile_type=workspace|share|org. Use workspace_id instead when only workspaces are valid. 19-digit workspace or share ID."
    • changedInput schema / properties / profile_type / description
      Previous value: -"Profile type: \"workspace\" or \"share\" (also accepted as context_type)"New value: +"Profile type: \"workspace\" or \"share\"."
    • changedInput schema / properties / query_text / description
      Previous value: -"Question or prompt for chat-create / message-send (max 12,768 chars). (required for: chat-create (workspace), message-send)"New value: +"Question or prompt (max 12,768 chars)."
    • changedInput schema / properties / type / description
      Previous value: -"Chat type: 'chat' for general conversation, 'chat_with_files' for file-grounded analysis. With chat_with_files, omit scope parameters to search ALL indexed files in the workspace (recommended default). (required for: chat-create)"New value: +"'chat' for general or 'chat_with_files' for file-grounded."
  9. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=true), the description details that storage content is read-only, but chat threads and shares are created, and specifically names 'Destructive: chat-delete'. It further discloses credit consumption for certain actions, idempotency of chat-cancel, and best-effort behavior of detail/pagination parameters — no contradiction.

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

Conciseness5/5

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

Although long, every sentence carries actionable information: purpose, usage preference, write caveat, quick start, side effects, destructive actions, and verbosity defaults. The structure is front-loaded and logically organized, making the length appropriate for a 23-parameter multi-action 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?

The description is exceptionally complete for a complex tool with no output schema. It covers the core workflows (ask, status, chat management, share generation), return shape for ask, side effects (credits, cancellation), and edge cases like the wait parameter and best-effort detail/pagination. Combined with the rich schema, an agent has all necessary context to invoke correctly.

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

Parameters4/5

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

The input schema already covers all 23 parameters (100% coverage), so baseline is 3, but the description adds meaning beyond the schema: it highlights the 'ask' quick start with its return shape, 'status' and 'describe' actions, and explains default verbosity for list vs details actions. It also clarifies that 'limit' and 'offset' may silently be no-ops.

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

Purpose5/5

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

The description clearly identifies the tool as 'the MCP delegation surface over Fastio's RAG agent' with a specific verb: 'answers natural-language questions about workspace/share files & folders (with citations)'. It also distinguishes itself from siblings by stating it never creates/edits/deletes files and that content writes should use primitive MCP tools directly, plus it manages chat threads and shares.

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?

Explicit guidance is given: 'Prefer Ripley over issuing many primitive reads: ask one NL question' and 'for content writes, call the primitive MCP tools directly' — a clear when-to-use and when-not-to-use. It also notes lower-level chat/message actions for multi-turn control and points to 'describe' for full reference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources