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

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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "hint": {
      -      "description": "Present only when no pack matched: how to rephrase, or use ask_pipeworx",
      -      "type": "string"
      -    },
      -    "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"
      -          },
      -          "matched_terms": {
      -            "description": "Query words found in this pack's text, best match first",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "name": {
      -            "description": "Pack display name",
      -            "type": "string"
      -          },
      -          "next_step": {
      -            "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"
      -          },
      -          "slug": {
      -            "description": "Pack identifier slug",
      -            "type": "string"
      -          },
      -          "tools": {
      -            "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"
      -          }
      -        },
      -        "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"
      -    },
      -    "showing": {
      -      "description": "Packs returned when the match list was capped by limit",
      -      "type": "number"
      -    },
      -    "truncated": {
      -      "description": "True when more packs matched than were returned",
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "query",
      -    "results",
      -    "packs"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. 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"
      +}
  3. 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"
      +}
  4. 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"
      +}
  5. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "weather"
      +  },
      +  {
      +    "query": "translate"
      +  }
      +]
  6. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds real value beyond them: best-first ranking, what each result contains (matched terms, cost, auth, reliability), and the query-normalization rule that question filler and proper names are ignored.

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?

Front-loaded with the core action and fields, then returns, then usage. Efficient overall, though the parenthetical example list and the trailing filler-name caveat make it slightly longer than strictly needed.

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 no output schema, the description carries the return-value burden and does so by naming matched terms, cost, auth, and reliability. Covers purpose, returns, and usage adequately; only alternative-routing detail is missing.

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 both parameters are already documented. The description restates the matching semantics (subject words match, proper names do not) but adds no syntax or format detail beyond what the schema already provides, so baseline 3 applies.

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?

States a specific verb (search) and resource (Pipeworx packs), names the searched fields (pack names, descriptions, tool descriptions), and shows concrete example queries. This clearly distinguishes it from list_packs and get_pack_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?

Explicitly says 'Use to find which pack covers a capability before connecting to it,' giving a clear when-to-use context and a downstream action. It does not, however, name or exclude the plausible alternatives (list_packs, discover_tools, search_mcp_directory).

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.