Skip to main content
Glama

Server Details

Hosted AI agents and locked workflows on connected apps, with human approval gates and a run ledger. Docs: https://docs.flowra.dev/guides/mcp

Ownership verified
Status
Healthy
Uptime
93.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.6/5.0

Scored across 6 tools

Disambiguation4/5

Each tool targets a distinct stage of the orchestration lifecycle (discover, schema, connect, execute, script), and the descriptions explicitly cross-reference when to prefer one over another. There is mild overlap between FLOWRA_JS_REMOTE_WORKBENCH and FLOWRA_REMOTE_BASH (both remote sandbox execution) and between DISCOVER's includeInputSchemas and GET_TOOL_SCHEMAS, but the guidance resolves these.

Naming Consistency5/5

All six tools share the FLOWRA_ prefix and consistent SCREAMING_SNAKE_CASE verb_noun structure (DISCOVER_TOOLS, GET_TOOL_SCHEMAS, MANAGE_CONNECTIONS, MULTI_EXECUTE_TOOL, etc.). No mixed conventions or style drift.

Tool Count5/5

Six tools is well-scoped for a meta-orchestration server: discovery, schema loading, connection management, parallel execution, and two sandbox runtimes. Each tool earns its place with no redundancy at the count level.

Completeness4/5

The surface covers the full orchestration flow from discovery through execution and scripting, plus connection management. Minor gap: referenced native tools (FLOWRA_WEB_SEARCH/WEB_FETCH, FLOWRA_ASK_CHOICE) appear in descriptions but are not part of this set, leaving a small hole in the stated capability.

Available Tools

6 tools
FLOWRA_DISCOVER_TOOLSDiscover tools
Read-onlyIdempotent
Inspect

Find the exact tool slugs for an app or integration. Returns mainToolSlugs, relatedToolSlugs, per-toolkit hasActiveConnection, a short plan, pitfalls, and notFoundToolkitSlugs. If you already have the exact ACTION slug and only need its input schema, use FLOWRA_GET_TOOL_SCHEMAS instead.

When the result includes a catalog app that covers the job, use that app's tool instead of a generic web search, fetch, or HTTP tool.

Toolkit tools are not direct function calls. Once you have a slug: FLOWRA_GET_TOOL_SCHEMAS for its arguments (or set includeInputSchemas=true here and skip that step), FLOWRA_MANAGE_CONNECTIONS if hasActiveConnection is false, then FLOWRA_MULTI_EXECUTE_TOOL to run it. Use only slugs that came back from this call.

mode "select" (default): queries are one atomic English useCase per item, with the app name in it. Any schedule or recurrence goes in intentSummary only, never in useCase — recurring work is a workflow, not a tool argument. toolkitSlugs pins that app's important tools into candidates. Pass toolkitSlugs, queries, or both — at least one is required. select returns only the tools needed for one action, never a full catalog.

mode "inventory": one page of tools in a known app. Requires toolkitSlugs. Optional query is a whole-word match on slug, name, or description (issue matches issues, not issued; for example query "issue" with toolkitSlugs ["github"]). No selection model and no native Flowra tools unless that toolkit was requested. mainToolSlugs is this page only; relatedToolSlugs is empty. toolSchemas include name and a one-line description. If inventory.truncated is true, call again with the same toolkitSlugs and query and offset=inventory.nextOffset. Do not use the workbench to browse a toolkit catalog.

toolkitSlugs: exact catalog toolkit slugs (lowercase app id such as gmail or github). Do not pass ACTION slugs here (GMAIL_SEND_EMAIL).

Reuse the returned session.id on GET_TOOL_SCHEMAS, MANAGE_CONNECTIONS, and MULTI_EXECUTE_TOOL so auth and workbench state stay on one session.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoselect (default): smallest set of tools for one action. inventory: one page of tools in toolkitSlugs, optional query filter, no selection model. Use inventory to list or search an app catalog (for example GitHub issue tools).
limitNoInventory page size. Default 40, max 50. Ignored in select mode.
queryNoInventory only. Whole-word match on slug, name, or description (issue matches issues, not issued). Omit for the first page of the toolkit. Ignored in select mode.
offsetNoInventory page start. When inventory.truncated is true, pass inventory.nextOffset. Default 0. Ignored in select mode.
queriesNoUse cases to search in parallel. Required in select mode unless toolkitSlugs is set. Ignored in inventory mode.
sessionNoChat: omit. MCP/new: { generate_id: true }. Continue: { id }. Not both.
userMessageYesExact user request (any language)
toolkitSlugsNoExact catalog toolkit slugs (gmail, github). select: pins important tools. inventory: required, lists that app. Not ACTION slugs.
intentSummaryYesOne-sentence intent; include scheduling here if any
includeInputSchemasNoWhen true, toolSchemas include inputSchema so you can skip GET_TOOL_SCHEMAS. Default false

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
errorNoError if any occurred during the execution of the action
messageNo
successfulNoWhether or not the action execution was successful or not
FLOWRA_GET_TOOL_SCHEMASGet tool schemas
Read-onlyIdempotent
Inspect

Load the input schema and tool type for exact tool slugs, so you can build correct arguments before running them with FLOWRA_MULTI_EXECUTE_TOOL. These slugs are NOT bound functions — never emit them as a tool_call name. Call FLOWRA_DISCOVER_TOOLS first if you do not have the slug. Set includeOutputSchema=true only when you need a trigger or webhook payload shape. Pass session.id from DISCOVER to stay in the same session.

Workflow action nodes flatten tool data into the node state: after an action node "fetch", use fetch.content / fetch.title in prompts and inputMapping — not fetch.data.content. GET_TOOL_SCHEMAS may show an envelope with properties.data; CREATE_OR_UPDATE_WORKFLOW validation uses the flattened field names only.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoOptional meta session.id from DISCOVER
toolSlugsYesExact slugs from Known tools, pins, or DISCOVER — never invent
includeOutputSchemaYesInclude outputSchema (trigger payloads). Default false

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
errorNoError if any occurred during the execution of the action
messageNo
successfulNoWhether or not the action execution was successful or not
FLOWRA_JS_REMOTE_WORKBENCHJavaScript sandbox
Destructive
Inspect

Process REMOTE FILES or script BULK TOOL EXECUTIONS using JavaScript code in a REMOTE SANDBOX. If you can see the data in chat, DON'T USE THIS TOOL.

ONLY use this when processing data stored in a remote file or when scripting bulk tool executions.

BOUNDARY WITH FLOWRA_REMOTE_BASH

  • Both tools share one sandbox per session.id and the same /home/user/files files.

  • This tool runs JavaScript and keeps variables between calls. Only this tool has run_tool (app tools), invoke_llm, proxy_execute, and upload_local_file.

  • FLOWRA_REMOTE_BASH runs one shell command with a fresh shell each call and none of those helpers. Use it for jq, grep, sort, unzip, or listing files.

  • Neither tool can call FLOWRA_MULTI_EXECUTE_TOOL or any other FLOWRA_* meta tool.

DO NOT USE

  • When the complete response is already inline/in-memory, or you only need quick parsing, summarization, or basic math.

USE IF

  • To parse/analyze tool outputs saved to a remote file in the sandbox or to script multi-tool chains there.

  • After FLOWRA_MULTI_EXECUTE_TOOL with syncResponseToWorkbench: true and the same session.id: the snapshot is at /home/user/files/multi_execute.json and as FLOWRA_WORKBENCH_SNAPSHOT. FLOWRA_REMOTE_BASH sees the same file.

  • For bulk or repeated executions of known Flowra tools (e.g., add a label to 100 emails).

  • To call APIs via proxy_execute when no Flowra tool exists for that API.

OUTPUTS

  • Returns a compact result or, if too long, artifacts for download.

IMPORTANT CODING RULES:

  1. Stepwise Execution: Split work into small steps. Save intermediate outputs in variables or temporary storage. Call FLOWRA_JS_REMOTE_WORKBENCH again for the next step. This improves composability and avoids timeouts.

  2. Session Persistence: This is a persistent JavaScript execution context: variables, functions, and in-memory state from previous and future code executions are preserved in the sandbox session and available for reuse. Do not import or redeclare the helpers below.

  3. Parallelism & Timeout (CRITICAL): There is a hard timeout of 4 minutes. Prioritize PARALLEL execution using Promise.all() with suitable concurrency for bulk operations (e.g., call run_tool or invoke_llm in parallel across items). 3.1 If the data is large, split into smaller batches and call the workbench multiple times to avoid timeouts.

  4. Checkpoints: Implement checkpoints (in memory or variables) so that long runs can be resumed from the last completed step.

  5. Schema Safety: Never assume the response schema for run_tool if not known already from previous tools. To inspect schema, run a simple request via MULTI_EXECUTE_TOOL or use invoke_llm helper.

  6. LLM Helpers: Always use invoke_llm helper for summary, analysis, or field extraction on results. Prefer batching items into smaller groups to stay within token limit.

  7. Avoid Meta Loops: Do not use run_tool to call MULTI_EXECUTE_TOOL or other FLOWRA_* meta tools to avoid cycles. Only use it for app tools.

  8. Pagination: Use when data spans multiple pages. Continue fetching pages with the returned next_page_token or cursor until none remains. Parallelize fetching pages if the tool supports page_number.

  9. No Hardcoding: Never hardcode data in code. Always load it from files or tool responses, iterating to construct intermediate or final inputs/outputs.

  10. Code Correctness (CRITICAL): Code must be syntactically and semantically correct and executable (ES5-friendly; avoid ?? or ?. if targeting older runtimes).

GLOBALS (when workbench snapshot loaded)

  • FLOWRA_WORKBENCH_SNAPSHOT: full JSON from MULTI_EXECUTE sync, or null if load failed / skipped.

HELPERS (already in sandbox – do not redeclare):

  • run_tool(toolSlug, args) -> [result, error]: Execute a known Flowra app tool (from DISCOVER_TOOLS). Match the tool's input schema. Returns (data, "") on success; ({}, "error_message") on failure. Check error before using result.

  • invoke_llm(query) -> [text, error]: Invoke an LLM for semantic tasks. Pass MAX ~400k characters. Returns (response_text, "") on success; ("", "error_message") on failure.

  • proxy_execute(method, endpoint, toolkit, query_params?, body?, headers?) -> [data, error]: Call a connected toolkit API. endpoint is a path on that toolkit's base URL. Credentials stay on the host. Returns (response_data, "") or (null, "error_message").

  • upload_local_file(filePath) -> [fileUrl, error]: Upload a file from /home/user/files and return a public download URL.

All helpers return [result, error]. Always check error before using result.

Error-first pattern: const [res, err] = await run_tool("SOME_TOOL_SLUG", { key: "value" }); if (err) { return { error: err }; } const data = res.data != null ? res.data : res; // use data

Parallelize (4-min timeout): const CONCURRENCY = 10; const items = [/* ... */]; const results = []; for (let i = 0; i < items.length; i += CONCURRENCY) { const batch = items.slice(i, i + CONCURRENCY); const out = await Promise.all(batch.map(async (item) => { const [r, e] = await run_tool("TOOL_SLUG", item); return e ? { status: "failed", error: e } : { status: "ok", data: r }; })); results.push(...out); } return results;

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoALWAYS pass session.id from DISCOVER (never invent; never mint here).
thoughtNoConcise objective and high-level plan (no private chain-of-thought). 1 sentence describing what the cell should achieve and why the sandbox is needed.
codeToExecuteYesJavaScript to run inside the persistent remote JavaScript sandbox. State (imports, variables, files) is preserved across executions. Keep code concise to minimize tool call latency. Avoid unnecessary comments.
workbenchArtifactIdNoPin a specific snapshot from MULTI_EXECUTE (workbenchArtifactId); omit to use the latest for this session.
useWorkbenchSnapshotNoWhen true (default), fetch the latest Flowra workbench JSON for this session (from MULTI_EXECUTE + syncResponseToWorkbench) before your code runs; exposed as FLOWRA_WORKBENCH_SNAPSHOT. Set false to skip.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
errorNoError if any occurred during the execution of the action
messageNo
successfulNoWhether or not the action execution was successful or not
FLOWRA_MANAGE_CONNECTIONSManage app connections
Idempotent
Inspect

Connect the user to an app, or check whether an app is already connected. Pass the toolkit slugs you need; connections are per end user and several toolkits can be checked in one call.

mode:

  • "connect" (default): if not already active, start the normal connect flow (may return redirectUrl / requires_parameters).

  • "status": read-only. Never mint OAuth/consent links or create INITIATED rows. Returns active / not_connected / no_auth_required / needs_setup only.

Each toolkit comes back with a status you must handle:

  • active / no_auth_required: ready — go execute the app's tools.

  • not_connected: only when mode is "status" — no active connection; call again with mode "connect" (or omit mode) when the user wants to connect.

  • initiated: redirectUrl is set. Show that one markdown link and stop. Do not call this tool again until the user says they finished connecting in the browser. Then call with the same toolkits to confirm it is active. A verify call must not mint a second link (wasReinitiated stays false).

  • requires_parameters: the user must supply credentials. Ask for exactly the fields listed in requiredParameters, showing each field's description, then call again with specifyCustomAuth.

  • requires_challenge: only when this status is returned. Ask for exactly the fields in requiredParameters, then call again with challengeResponse: { connectionId, plus those field names }. Do not invent a verification step when this status is absent.

  • needs_setup: a secondary end user cannot connect yet because project App credentials are missing. Tell them the app is not ready; never ask them for client_id, client_secret, or other app-level secrets. (Project default / owner instead gets requires_parameters for those App credential fields.)

  • failed: read errorMessage before retrying.

When talking to the user, use the label field (email, username, or app name). Never show a connection UUID.

Use specifyCustomAuth to activate an API key, bearer token, basic auth, or pasted cookies directly, without opening a browser. Pass session.id from FLOWRA_DISCOVER_TOOLS when you are continuing the same discovery session.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesconnect (default): may start OAuth/consent when not active. status: read-only check — never mint redirectUrl or INITIATED rows.connect
sessionNoOptional meta session.id from DISCOVER for correlation (not required for OAuth).
toolkitsYesList of toolkit slugs (base like 'gmail' or project-scoped like 'gmail:abc123') to check or connect. Prefer base slugs from CREATE_OR_UPDATE_TOOLKIT / DISCOVER_TOOLS — project suffix is resolved automatically. Never invent slugs.
reinitiateAllYesForce reconnection for ALL toolkits in the `toolkits` list, even if they already have active connections. DEFAULT: false (preserve existing active connections). Ignored when mode is status.
challengeResponseNoContinue a pending challenge only after status is requires_challenge. Pass connectionId plus the field names from requiredParameters. Do not send this unless that status was returned.
specifyCustomAuthNoAgent-friendly way to provide per-toolkit credentials and connection fields. Outer object: keys are toolkit names (must match entries in `toolkits`). Inner object: credentials for that toolkit. Supported patterns: API Key {"apiKey": "YOUR_KEY"}, Bearer Token {"bearerToken": "YOUR_TOKEN"}, Basic Auth {"username": "USER", "password": "PASS"}, Cookie {"cookies": "..."}, email/password {"email":"...","password":"..."}, Custom OAuth {"client_id": "...", "client_secret": "..."}, plus any field names from the toolkit authConfigDetails.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
errorNoError if any occurred during the execution of the action
messageNo
successfulNoWhether or not the action execution was successful or not
FLOWRA_MULTI_EXECUTE_TOOLRun app tools
Destructive
Inspect

Run up to 50 action tools in parallel and return every result inline. Only type="action" tools — triggers and webhooks cannot be executed here.

This is how you run any tool that is not already bound as a direct function. Get the exact slug from FLOWRA_DISCOVER_TOOLS or a Known tools list, load its input schema with FLOWRA_GET_TOOL_SCHEMAS (or set includeInputSchemas on DISCOVER and reuse those), and call FLOWRA_MANAGE_CONNECTIONS first if the toolkit has no active connection. Never invent a slug or an argument. Never emit an unbound slug as a tool_call name — only this function runs those slugs, via tools[].toolSlug.

tools must be a non-empty array of { toolSlug, arguments }. Never pass tools: [] or omit tools. If you only have a JSON string, parse it into that array first.

Batch only independent calls; keep a dependent step in a later call so you can read the previous result first. When a result implies more pages, keep going until you have everything.

Never wrap a tool that waits for the user (for example a choice prompt) here. If one is bound, call it directly and wait.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolsYesAction tools to run in parallel (max 50). Not triggers. Must contain at least one { toolSlug, arguments } — never [].
memoryNoDurable facts worth reusing later, as {app: ["fact"]} — ids and mappings, not "sent/fetched" logs. Pass {} when there are none.
sessionNoMeta session.id from DISCOVER (workbench correlation; auth is user-scoped)
thoughtNoOne-sentence rationale
syncResponseToWorkbenchYesStore a workbench snapshot for REMOTE_BASH / JS_REMOTE_WORKBENCH (results still return inline). Needs session.id. Only set true when a sandbox tool is available and the output is large or worth scripting over.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
errorNoError if any occurred during the execution of the action
messageNo
successfulNoWhether or not the action execution was successful or not
FLOWRA_REMOTE_BASHBash sandbox
Destructive
Inspect

Run bash on the same remote sandbox as FLOWRA_JS_REMOTE_WORKBENCH for this session.id. Files under /home/user/files stay between calls. The shell itself starts fresh each time.

With session.id and useWorkbenchSnapshot (default true), the latest FLOWRA_MULTI_EXECUTE_TOOL snapshot is at /home/user/files/multi_execute.json (also FLOWRA_WORKBENCH_JSON). That snapshot only exists if the earlier call set syncResponseToWorkbench: true.

Use this for shell work on those files: jq, grep, sort, unzip, wc, listing directories. It has no run_tool, invoke_llm, or proxy_execute helpers and keeps no variables between calls. To call app tools, an LLM, or a connected API from the sandbox, or to keep state across steps, use FLOWRA_JS_REMOTE_WORKBENCH. Neither tool can call FLOWRA_MULTI_EXECUTE_TOOL or any other meta tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe bash command to execute
sessionNoALWAYS pass session.id from DISCOVER when provided (or omit in chat — threadId is used).
workbenchArtifactIdNoSpecific snapshot id returned as workbenchArtifactId by MULTI_EXECUTE; omit to use the latest snapshot for this session.
useWorkbenchSnapshotNoWhen true (default), inject the latest Flowra workbench JSON for this session (from MULTI_EXECUTE + syncResponseToWorkbench) before your command. Set false to run raw bash only.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
errorNoError if any occurred during the execution of the action
messageNo
successfulNoWhether or not the action execution was successful or not

Tool Schema Changelog

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

  1. 6 tool updates
    • ChangedFLOWRA_DISCOVER_TOOLS1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "properties": {
        +        "guidance": {},
        +        "inventory": {
        +          "description": "Set in inventory mode. Omitted in select mode.",
        +          "properties": {
        +            "limit": {},
        +            "nextOffset": {
        +              "anyOf": [
        +                {},
        +                {}
        +              ],
        +              "description": "Pass as offset to continue; null on the last page"
        +            },
        +            "offset": {},
        +            "total": {
        +              "description": "Tools matching toolkitSlugs and query"
        +            },
        +            "truncated": {
        +              "description": "True when another page exists"
        +            }
        +          }
        +        },
        +        "mainToolSlugs": {
        +          "items": {}
        +        },
        +        "notFoundToolkitSlugs": {
        +          "description": "Requested toolkitSlugs that did not resolve",
        +          "items": {}
        +        },
        +        "pitfalls": {
        +          "items": {}
        +        },
        +        "reasoning": {},
        +        "relatedToolSlugs": {
        +          "items": {}
        +        },
        +        "session": {
        +          "properties": {
        +            "id": {},
        +            "instructions": {}
        +          }
        +        },
        +        "timeInfo": {
        +          "properties": {
        +            "currentTime": {},
        +            "message": {}
        +          }
        +        },
        +        "toolSchemas": {
        +          "propertyNames": {}
        +        },
        +        "toolkitConnectionStatuses": {
        +          "items": {
        +            "properties": {
        +              "description": {},
        +              "hasActiveConnection": {},
        +              "message": {},
        +              "toolkit": {}
        +            }
        +          }
        +        },
        +        "toolkits": {
        +          "items": {}
        +        },
        +        "validatedPlan": {
        +          "items": {}
        +        }
        +      }
        +    },
        +    "error": {
        +      "anyOf": [
        +        {},
        +        {}
        +      ],
        +      "description": "Error if any occurred during the execution of the action"
        +    },
        +    "message": {},
        +    "successful": {
        +      "description": "Whether or not the action execution was successful or not"
        +    }
        +  },
        +  "type": "object"
        +}
    • ChangedFLOWRA_GET_TOOL_SCHEMAS1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "properties": {
        +        "executionHint": {
        +          "description": "How to run these slugs — they are not bound functions"
        +        },
        +        "notFound": {
        +          "description": "Slugs not found",
        +          "items": {}
        +        },
        +        "session": {
        +          "description": "Echoed session — never minted here",
        +          "properties": {
        +            "id": {
        +              "description": "Meta session id (empty if none)"
        +            },
        +            "instructions": {
        +              "description": "How to reuse session.id"
        +            }
        +          }
        +        },
        +        "success": {
        +          "description": "True when every requested slug was found"
        +        },
        +        "toolSchemas": {
        +          "description": "Definitions keyed by toolSlug",
        +          "propertyNames": {}
        +        }
        +      }
        +    },
        +    "error": {
        +      "anyOf": [
        +        {},
        +        {}
        +      ],
        +      "description": "Error if any occurred during the execution of the action"
        +    },
        +    "message": {},
        +    "successful": {
        +      "description": "Whether or not the action execution was successful or not"
        +    }
        +  },
        +  "type": "object"
        +}
    • ChangedFLOWRA_JS_REMOTE_WORKBENCH1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "properties": {
        +        "error": {
        +          "default": "",
        +          "description": "Error message if any"
        +        },
        +        "results": {
        +          "anyOf": [
        +            {
        +              "propertyNames": {}
        +            },
        +            {
        +              "items": {}
        +            },
        +            {},
        +            {},
        +            {},
        +            {}
        +          ],
        +          "description": "The parsed result of the code execution (object, array, or primitive)"
        +        },
        +        "results_file_path": {
        +          "anyOf": [
        +            {},
        +            {}
        +          ],
        +          "description": "Path to file containing full results if output was truncated"
        +        },
        +        "session": {
        +          "anyOf": [
        +            {
        +              "properties": {
        +                "id": {
        +                  "description": "Meta session identifier"
        +                },
        +                "instructions": {
        +                  "description": "Instructions for session reuse"
        +                }
        +              }
        +            },
        +            {}
        +          ],
        +          "description": "Meta session echoed back to reinforce reuse: { id: string, instructions: string }"
        +        },
        +        "stderr": {
        +          "description": "The standard error output from the command"
        +        },
        +        "stderr_file_path": {
        +          "anyOf": [
        +            {},
        +            {}
        +          ],
        +          "description": "Path to file containing full stderr if output was truncated"
        +        },
        +        "stdout": {
        +          "description": "The standard output from the command"
        +        },
        +        "stdout_file_path": {
        +          "anyOf": [
        +            {},
        +            {}
        +          ],
        +          "description": "Path to file containing full stdout if output was truncated"
        +        }
        +      }
        +    },
        +    "error": {
        +      "anyOf": [
        +        {},
        +        {}
        +      ],
        +      "description": "Error if any occurred during the execution of the action"
        +    },
        +    "message": {},
        +    "successful": {
        +      "description": "Whether or not the action execution was successful or not"
        +    }
        +  },
        +  "type": "object"
        +}
    • ChangedFLOWRA_MANAGE_CONNECTIONS1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "properties": {
        +        "message": {
        +          "description": "Overall status message"
        +        },
        +        "results": {
        +          "description": "Connection results for each toolkit",
        +          "propertyNames": {}
        +        },
        +        "summary": {
        +          "description": "Summary of results by status type",
        +          "propertyNames": {}
        +        }
        +      }
        +    },
        +    "error": {
        +      "anyOf": [
        +        {},
        +        {}
        +      ],
        +      "description": "Error if any occurred during the execution of the action"
        +    },
        +    "message": {},
        +    "successful": {
        +      "description": "Whether or not the action execution was successful or not"
        +    }
        +  },
        +  "type": "object"
        +}
    • ChangedFLOWRA_MULTI_EXECUTE_TOOL1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "properties": {
        +        "errorCount": {
        +          "description": "Failures"
        +        },
        +        "results": {
        +          "description": "Results in input order",
        +          "items": {
        +            "properties": {
        +              "error": {
        +                "anyOf": [
        +                  {},
        +                  {}
        +                ],
        +                "description": "Error message when failed"
        +              },
        +              "index": {
        +                "description": "Index in the request tools array"
        +              },
        +              "response": {
        +                "anyOf": [
        +                  {
        +                    "propertyNames": {}
        +                  },
        +                  {}
        +                ],
        +                "description": "Payload { data, error, logId, successful } on success and failure"
        +              },
        +              "success": {
        +                "description": "Whether execution succeeded"
        +              },
        +              "toolSlug": {
        +                "description": "Executed tool slug"
        +              }
        +            }
        +          }
        +        },
        +        "successCount": {
        +          "description": "Successes"
        +        },
        +        "totalCount": {
        +          "description": "Tools executed"
        +        },
        +        "workbenchArtifactId": {
        +          "description": "Snapshot id when syncResponseToWorkbench; pass to REMOTE_BASH or omit for latest"
        +        }
        +      }
        +    },
        +    "error": {
        +      "anyOf": [
        +        {},
        +        {}
        +      ],
        +      "description": "Error if any occurred during the execution of the action"
        +    },
        +    "message": {},
        +    "successful": {
        +      "description": "Whether or not the action execution was successful or not"
        +    }
        +  },
        +  "type": "object"
        +}
    • ChangedFLOWRA_REMOTE_BASH1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "properties": {
        +        "sandbox_id_suffix": {
        +          "description": "Last 4 digits of the sandbox ID for easier reference"
        +        },
        +        "session": {
        +          "anyOf": [
        +            {
        +              "properties": {
        +                "id": {},
        +                "instructions": {}
        +              }
        +            },
        +            {}
        +          ],
        +          "description": "Meta session echoed back to reinforce reuse: { id: string, instructions: string }"
        +        },
        +        "stderr": {
        +          "description": "The standard error output from the command, possibly truncated for brevity."
        +        },
        +        "stderrLines": {
        +          "description": "Total number of lines in original stderr, even if truncated"
        +        },
        +        "stderr_file_path": {
        +          "anyOf": [
        +            {},
        +            {}
        +          ],
        +          "description": "Path to file containing full stderr if output was truncated"
        +        },
        +        "stdout": {
        +          "description": "The standard output from the command, possibly truncated for brevity."
        +        },
        +        "stdoutLines": {
        +          "description": "Total number of lines in original stdout, even if truncated"
        +        },
        +        "stdout_file_path": {
        +          "anyOf": [
        +            {},
        +            {}
        +          ],
        +          "description": "Path to file containing full stdout if output was truncated"
        +        }
        +      }
        +    },
        +    "error": {
        +      "anyOf": [
        +        {},
        +        {}
        +      ],
        +      "description": "Error if any occurred during the execution of the action"
        +    },
        +    "message": {},
        +    "successful": {
        +      "description": "Whether or not the action execution was successful or not"
        +    }
        +  },
        +  "type": "object"
        +}
  2. 1 tool update
    • ChangedFLOWRA_DISCOVER_TOOLS5 fields changed
      • addedInput schema / allOf
        Added value: +[
        +  {
        +    "else": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "queries"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "toolkitSlugs"
        +          ]
        +        }
        +      ]
        +    },
        +    "if": {
        +      "properties": {
        +        "mode": {
        +          "const": "inventory"
        +        }
        +      },
        +      "required": [
        +        "mode"
        +      ]
        +    },
        +    "then": {
        +      "required": [
        +        "toolkitSlugs"
        +      ]
        +    }
        +  }
        +]
      • addedInput schema / properties / queries / minItems
        Added value: +1
      • changedInput schema / properties / query / description
        Previous value: -"Inventory only. Case-insensitive match on slug, name, or description. Omit for the first page of the toolkit. Ignored in select mode."New value: +"Inventory only. Whole-word match on slug, name, or description (issue matches issues, not issued). Omit for the first page of the toolkit. Ignored in select mode."
      • addedInput schema / properties / toolkitSlugs / minItems
        Added value: +1
      • changedInput schema / required
        Previous value: -[
        -  "userMessage",
        -  "intentSummary",
        -  "includeInputSchemas"
        -]New value: +[
        +  "userMessage",
        +  "intentSummary"
        +]
  3. 1 tool update
    • ChangedFLOWRA_DISCOVER_TOOLS6 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Inventory page size. Default 40, max 50. Ignored in select mode.",
        +  "maximum": 50,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "select (default): smallest set of tools for one action. inventory: one page of tools in toolkitSlugs, optional query filter, no selection model. Use inventory to list or search an app catalog (for example GitHub issue tools).",
        +  "enum": [
        +    "select",
        +    "inventory"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Inventory page start. When inventory.truncated is true, pass inventory.nextOffset. Default 0. Ignored in select mode.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / queries / description
        Previous value: -"Use cases to search in parallel. Required unless toolkitSlugs is set."New value: +"Use cases to search in parallel. Required in select mode unless toolkitSlugs is set. Ignored in inventory mode."
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Inventory only. Case-insensitive match on slug, name, or description. Omit for the first page of the toolkit. Ignored in select mode.",
        +  "type": "string"
        +}
      • changedInput schema / properties / toolkitSlugs / description
        Previous value: -"Exact catalog toolkit slugs (gmail, slack). Pins important tools from those apps. Not ACTION slugs."New value: +"Exact catalog toolkit slugs (gmail, github). select: pins important tools. inventory: required, lists that app. Not ACTION slugs."
  4. 6 tool updates
    • First observedFLOWRA_DISCOVER_TOOLS
    • First observedFLOWRA_GET_TOOL_SCHEMAS
    • First observedFLOWRA_JS_REMOTE_WORKBENCH
    • First observedFLOWRA_MANAGE_CONNECTIONS
    • First observedFLOWRA_MULTI_EXECUTE_TOOL
    • First observedFLOWRA_REMOTE_BASH

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources