Skip to main content
Glama

Record meeting

record_meeting
Destructive

Send the Capable notetaker bot to a video call. Pass meeting_url to start recording a call happening now, or match to find the rep's next upcoming calendar meeting by title/attendee and schedule the bot to join it. With neither, schedules the very next upcoming meeting that has a join link. The transcript auto-files onto the matching account/contact/opportunity when ready. The workspace admin must have Meeting recorder enabled; otherwise this refuses without scheduling or dispatching a bot.

When to use: Ad-hoc recording. Auto-record handles scheduled meetings on its own; use this to grab a live call by URL or book the user's next meeting with a specific customer.

Example: Record my next call with Acme.

Input Schema

NameRequiredDescriptionDefault
matchNoCase-insensitive text matched against the title, attendee emails or names of the rep's join-link meetings in the next 24 hours; the first match is booked.
meeting_urlNoJoin URL of a call happening now (Zoom, Google Meet, Teams or Webex) — the bot is sent to it immediately as an ad-hoc recording.

Output Schema

NameRequiredDescriptionDefault
recordingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed24 schema fields changed
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / recording / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / recording / properties / account_id / anyOf
      Removed value: -[
      -  {
      -    "format": "uuid",
      -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / recording / properties / account_id / format
      Added value: +"uuid"
    • addedOutput schema / properties / recording / properties / account_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / recording / properties / contact_id / anyOf
      Removed value: -[
      -  {
      -    "format": "uuid",
      -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / recording / properties / contact_id / format
      Added value: +"uuid"
    • addedOutput schema / properties / recording / properties / contact_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / recording / properties / id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedOutput schema / properties / recording / properties / meeting_platform / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / recording / properties / meeting_platform / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / recording / properties / opportunity_id / anyOf
      Removed value: -[
      -  {
      -    "format": "uuid",
      -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / recording / properties / opportunity_id / format
      Added value: +"uuid"
    • addedOutput schema / properties / recording / properties / opportunity_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / recording / properties / scheduled_start / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / recording / properties / scheduled_start / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / recording / properties / title / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / recording / properties / title / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / recording / properties / touch_id / anyOf
      Removed value: -[
      -  {
      -    "format": "uuid",
      -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / recording / properties / touch_id / format
      Added value: +"uuid"
    • addedOutput schema / properties / recording / properties / touch_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / recording / properties / transcript_text / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / recording / properties / transcript_text / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Beyond the annotations, the description discloses a hard prerequisite (workspace admin must have Meeting recorder enabled), the refusal mode ('refuses without scheduling or dispatching a bot'), and a side effect (transcript auto-files onto the matching account/contact/opportunity). It does not explain what the destructiveHint implies for this operation or any rate/quotas, so it stops short of a full 5.

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, then parameter behavior, side effects, prerequisites, when-to-use, and an example in a clean layered structure. It is slightly long and the parameter-mode explanation overlaps with what the schema already documents, but every section carries information.

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?

An output schema exists so return values need no explanation, and the description still covers purpose, all three invocation modes, prerequisites, failure behavior, and side effects. Nothing an agent needs to invoke this correctly 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 the baseline is 3, but the description adds the combination semantics that the schema does not: what happens when neither parameter is supplied ('schedules the very next upcoming meeting that has a join link'). That interpretation of the parameter matrix goes beyond the per-field 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?

States a specific verb and resource ('send the notetaker bot to a video call') and then distinguishes all three invocation modes: meeting_url for a live call, match for a named upcoming meeting, and neither for the next join-link meeting. An agent can separate this from siblings like send_meeting_invite or stop_recording 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?

Explicitly names the alternative behavior ('Auto-record handles scheduled meetings on its own') and gives the condition that selects this tool ('use this to grab a live call by URL or book the user's next meeting'). The when-to-use block and worked example leave nothing to inference.

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.

Resources