Skip to main content
Glama

search_knowledge

Read-only

Search ExpenseBot's complete product and help knowledge base. Use this before guessing when the user asks how a feature works, what ExpenseBot supports, or needs setup, billing, Gmail, scan, report, workflow, or troubleshooting instructions. Set fullAnswer:true on the first call when the user asks for complete, detailed, or step-by-step instructions. Use the default excerpt mode for discovery and quick answers; if an excerpt is truncated, call again with fullAnswer:true before presenting complete instructions. Each result has a stable id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of ranked matching articles to return (1-10).
queryYesSearch terms
fullAnswerNoSet true on the first call for complete, detailed, or step-by-step instructions. Leave false for discovery or quick-answer excerpts.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYes
successYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / fullAnswer / description
      Previous value: -"Set true to return complete article answers instead of short excerpts."New value: +"Set true on the first call for complete, detailed, or step-by-step instructions. Leave false for discovery or quick-answer excerpts."
  2. Changed8 schema fields changed
    • removedOutput schema / description
      Removed value: -"Standard ExpenseBot tool result envelope. `message` is the human-readable summary the AI cites; `data` is the structured payload (totals, breakdowns, ids, etc.). On failure, `success` is false and `error` carries a code/message/hint triple."
    • removedOutput schema / properties / data
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Structured payload. Shape varies per tool — common keys: total, breakdown, comparison, sampleMeta, ids, expenseId, reportId, signupUrl, results.",
      -  "type": "object"
      -}
    • removedOutput schema / properties / error
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Present only when success === false.",
      -  "properties": {
      -    "code": {
      -      "type": "string"
      -    },
      -    "hint": {
      -      "type": "string"
      -    },
      -    "message": {
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / message
      Removed value: -{
      -  "description": "Human-readable result text. Always present on success; prefer rendering this verbatim before any further reasoning.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / results
      Added value: +{
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "answer": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "question": {
      +        "type": "string"
      +      },
      +      "relevance": {
      +        "type": "number"
      +      },
      +      "truncated": {
      +        "type": "boolean"
      +      },
      +      "type": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "question",
      +      "answer"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / sampleMeta
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Set when the underlying dataset was truncated. isTruncated=true means the agent saw a sample of `sampleCount` of `totalCount` rows; aggregate totals are still accurate.",
      -  "properties": {
      -    "isTruncated": {
      -      "type": "boolean"
      -    },
      -    "sampleCount": {
      -      "type": "integer"
      -    },
      -    "totalCount": {
      -      "type": "integer"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / success / description
      Removed value: -"False on tool errors; check before reading `data`."
    • addedOutput schema / required
      Added value: +[
      +  "success",
      +  "results"
      +]
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only behavior is known. The description adds value beyond annotations by explaining the excerpt-vs-fullAnswer behavior, the truncation retry guidance, and that results are stable. These are meaningful behavioral details, though it doesn't touch on any edge cases or limitations.

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?

The description is concise, front-loaded with the primary purpose, and every sentence earns its place. It covers what, when, and how to advance detail level without repetitive or filler content. The distinction between 'discovery'' and 'complete instructions' is compact and clear.

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?

With a read-only annotation, an output schema, and 100% schema parameter descriptions, the structure already carries a lot. The description completes the remaining decisions: when to use it, how to get full answers, when to retry, and the stability property. No significant gap remains for the agent.

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?

Schema coverage is 100% and the schema already documents query, limit, and fullAnswer. The description adds semantic value by contextualizing fullAnswer: set true on the first call when complete/detailed instructions are needed, and use excerpt mode for discovery. This gives agents a decision rule beyond the schema's bare default of false.

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 names a specific action and resource: 'Search ExpenseBot's complete product and help knowledge base.' It enumerates typical use categories (setup, billing, Gmail, scan, report, workflow, troubleshooting), which makes the tool's purpose unambiguous and clearly sets it apart from expense-search siblings like 'search_expenses' or the more generic 'search'.

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?

The description explicitly states when to use the tool: 'Use this before guessing when the user asks how a feature works, what ExpenseBot supports, or needs setup, billing, Gmail, scan, report, workflow, or troubleshooting instructions.' It also distinguishes between excerpt mode and fullAnswer mode with a retry rule. However, it does not explicitly say when NOT to use it or name sibling alternatives, so it stops short of a 5.

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.