Skip to main content
Glama

Search recorded meetings by keyword

search_meetings
Read-onlyIdempotent

Search the user's recorded meetings by keyword or phrase. Matches titles, notes, action items, participant names, and the spoken transcript. Returns ids, titles, dates, participants, note headings and each meeting's transcript hits: the time, the lines around each hit, and a cursor that opens get_meeting right at that point (pass it as get_meeting's cursor).

Use when the user asks what was said, decided, or assigned on a call, or names a person or project in the context of a meeting. Do not use to browse the whole archive (list_meetings) or to open a meeting whose id you already have (get_meeting). ChatGPT clients call the same search as search.

Does not create, edit, or delete meetings. query must be non-empty (a blank query is rejected, not treated as list-everything). Scans at most the 200 most recent synced meetings; truncated means older meetings were not searched, so total is matches in that window, not the lifetime corpus.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "search_meetings"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMax matches to return. Default 10, cap 25.
queryYesKeyword or phrase to find. Matched as plain text (case-insensitive) against titles, notes, action items, participants, and transcript — not a boolean query language.
hits_per_meetingNoTranscript hits to show per meeting, each with the lines around it and a cursor for get_meeting. Default 3, cap 10.

Output Schema

NameRequiredDescriptionDefault
totalNoMatches inside the scanned window.
matchesNo
resultsNo
scannedNoMeetings actually scanned (≤ 200).
truncatedNoTrue if older meetings were not scanned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / hits_per_meeting
      Added value: +{
      +  "description": "Transcript hits to show per meeting, each with the lines around it and a cursor for get_meeting. Default 3, cap 10.",
      +  "maximum": 10,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, non-destructive and closed-world, but the description adds behavior the annotations cannot express: no create/edit/delete, blank queries rejected rather than treated as list-all, a 200-most-recent-meeting scan cap, and the meaning of `truncated` and `total` within that window. Those are exactly the runtime caveats an agent needs to interpret results honestly.

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?

The structure is front-loaded and logical: capability, return shape, when-to-use, when-not-to-use, then behavioral caveats. It is dense but nearly every clause carries information; the return-format sentence is somewhat long and partially redundant given the output schema exists.

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?

For a read-only search with a full output schema, this covers everything that matters: what is matched, what comes back, how the cursor links to get_meeting, the alias, and the scanning-window limitation that changes how `total` should be read. Nothing needed to call or interpret it is missing.

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%, so baseline is 3, and the description does add meaning beyond the schema for `query`: it is plain-text case-insensitive matching, not a boolean query language, and an empty value is rejected rather than widening to everything. It does not add anything for `limit` or `hits_per_meeting` beyond their schema descriptions.

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 opens with a specific verb and resource ('Search the user's recorded meetings by keyword or phrase') and immediately enumerates the searchable fields (titles, notes, action items, participants, transcript). It explicitly names the two siblings it is not (list_meetings for browsing, get_meeting for a known id), so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete positive trigger ('what was said, decided, or assigned on a call, or names a person or project') plus explicit exclusions mapped to the right alternatives. It even resolves the alias ambiguity by noting ChatGPT clients call the same search as `search`, which matters given `search` is a sibling name.

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.