Skip to main content
Glama

Discover tools

FLOWRA_DISCOVER_TOOLS
Read-onlyIdempotent

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.

Input Schema

TableJSON 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

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema 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"
      +}
  2. Changed5 schema 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. Changed6 schema 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. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources