Skip to main content
Glama

Search Packs

search_packs
Read-onlyIdempotent

Search Pipeworx packs by keyword or a plain question across pack names, descriptions and tool descriptions (e.g. "weather", "translate", "Colombia procurement contracts awarded to a supplier"). Returns matching packs ranked best-first with each one's matched terms, cost, auth and reliability. Use to find which pack covers a capability before connecting to it; question filler and proper names are ignored, so the subject words are what match.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum packs to return, best match first (1-200, default 25).
queryYesKeywords or a question naming the data you want. The subject words match (country, system, dataset, topic); names of specific companies or people do not, since no pack describes them.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hintNoPresent only when no pack matched: how to rephrase, or use ask_pipeworx
packsYesMatching packs
queryYesSearch query used
resultsYesNumber of matching packs
showingNoPacks returned when the match list was capped by limit
truncatedNoTrue when more packs matched than were returned

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / packs / items / properties / next_step
      Added value: +{
      +  "description": "The exact next request to make for the first named tool, in the shape of the surface this call arrived on (REST /v1/tools/{name}, or MCP tools/call)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / packs / items / properties / tools
      Added value: +{
      +  "description": "Up to 3 tools in this pack that best match the query, by the EXPOSED name — the one GET/POST /v1/tools/{name} resolves, namespaced when several packs export the same tool name. Not the pack's full list; call get_pack_tools for that.",
      +  "items": {
      +    "properties": {
      +      "name": {
      +        "description": "Exact tool name to call, e.g. fred_get_series",
      +        "type": "string"
      +      },
      +      "summary": {
      +        "description": "One line on what the tool returns",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "summary"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed7 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "query": "weather"
      -  },
      -  {
      -    "query": "translate"
      -  }
      -]New value: +[
      +  {
      +    "query": "weather"
      +  },
      +  {
      +    "query": "translate"
      +  },
      +  {
      +    "limit": 3,
      +    "query": "Which public contracts has the supplier Constructora Conconcreto been awarded recently in Colombia SECOP procurement system"
      +  }
      +]
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Maximum packs to return, best match first (1-200, default 25).",
      +  "type": "number"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Search query"New value: +"Keywords or a question naming the data you want. The subject words match (country, system, dataset, topic); names of specific companies or people do not, since no pack describes them."
    • addedOutput schema / properties / hint
      Added value: +{
      +  "description": "Present only when no pack matched: how to rephrase, or use ask_pipeworx",
      +  "type": "string"
      +}
    • addedOutput schema / properties / packs / items / properties / matched_terms
      Added value: +{
      +  "description": "Query words found in this pack's text, best match first",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / showing
      Added value: +{
      +  "description": "Packs returned when the match list was capped by limit",
      +  "type": "number"
      +}
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "description": "True when more packs matched than were returned",
      +  "type": "boolean"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "packs": {
      +      "description": "Matching packs",
      +      "items": {
      +        "properties": {
      +          "category": {
      +            "description": "Pack category",
      +            "type": "string"
      +          },
      +          "description": {
      +            "description": "Pack description",
      +            "type": "string"
      +          },
      +          "gateway_url": {
      +            "description": "MCP gateway URL for the pack",
      +            "type": "string"
      +          },
      +          "name": {
      +            "description": "Pack display name",
      +            "type": "string"
      +          },
      +          "slug": {
      +            "description": "Pack identifier slug",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "slug",
      +          "name",
      +          "description",
      +          "category",
      +          "gateway_url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "query": {
      +      "description": "Search query used",
      +      "type": "string"
      +    },
      +    "results": {
      +      "description": "Number of matching packs",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "query",
      +    "results",
      +    "packs"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "weather"
      +  },
      +  {
      +    "query": "translate"
      +  }
      +]
  5. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, closed-world safety, so the bar is lower. The description adds real behavioral context by explaining the matching semantics (question filler and proper names ignored, subject words match) and that results carry matched terms, cost, auth and reliability.

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?

Three sentences, front-loaded with the core action, and the inline examples do real work for a fuzzy search tool. Slightly dense but no wasted clauses.

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?

With an output schema present, return values need not be detailed, and the description still sketches what comes back. Combined with 100% schema coverage and safety annotations, an agent has everything needed to call it correctly; only sibling selection is left implicit.

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 both params are already documented, establishing the baseline of 3. The description reinforces the query semantics with examples but adds no detail on limit and nothing the schema does not already state.

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?

States a specific verb and resource ('Search Pipeworx packs') plus the exact scope searched (pack names, descriptions, tool descriptions) and gives three concrete example queries. It does not name any sibling (e.g. list_packs or discover_tools) to route the agent, so it is clear but not differentiated.

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?

'Use to find which pack covers a capability before connecting to it' gives a clear use context. No explicit when-not or named alternatives are provided, but the intended trigger is unambiguous for a discovery tool.

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.