Skip to main content
Glama

Create, update, and delete meetings in the workspace. Use this when the user wants to schedule, edit, or cancel a meeting. To manage participants, agenda/backlog items, or action items, use those dedicated tools. Set `action` to one of: create, delete, update. Then provide the fields for the selected action. action=create: Start a new meeting in the workspace. Use this when the user wants to schedule a meeting; the caller is added as owner automatically. Only `title` is required. `start_time` and `end_time` are optional ISO-8601; set `is_instant: true` for an ad-hoc meeting starting now. The caller is added as owner, so do not re-add them via v1AddMeetingParticipants. Pass `template_id` (from listMeetingTemplates) to seed the meeting from a template: the template is linked at create and applied asynchronously — the create response's `applied_template_ids` will not include it yet; poll v1GetMeeting until the id appears before treating the agenda as seeded. Returns 201 with the meeting `id`; use an `Idempotency-Key` to prevent duplicates. action=delete: Remove a meeting owned by the caller. Use this when the user wants to cancel or delete a meeting. Soft-deletes a meeting keyed by `{id}`; only the owner may delete it (403 for non-owners). Unknown or inaccessible ids return 404. Returns 204. The call is effectively idempotent: a repeat delete 404s, so retries are safe. action=update: Modify an existing meeting. Use this when the user wants to change a meeting's fields such as title or time. Partial update (PATCH) of a workspace-owned meeting. Omitted fields are left untouched. `start_time`/`end_time` are ISO-8601 with timezone; nulling start makes the meeting untimed and end open-ended. `end_time` must follow the effective start. `template_id` applies the template synchronously — its agenda items, participants, and prompts are added additively (existing content is preserved), and re-sending an id already in `applied_template_ids` is a no-op. Body must contain at least one field. 404/403/402/503 for unknown/inaccessible, no edit access, plan-gated `template_id`, or the template backend unavailable.

manageMeetings
DestructiveIdempotent

Create, update, and delete meetings in the workspace. Use this when the user wants to schedule, edit, or cancel a meeting. To manage participants, agenda/backlog items, or action items, use those dedicated tools.

Set action to one of: create, delete, update. Then provide the fields for the selected action.

action=create: Start a new meeting in the workspace. Use this when the user wants to schedule a meeting; the caller is added as owner automatically.

Only title is required. start_time and end_time are optional ISO-8601; set is_instant: true for an ad-hoc meeting starting now. The caller is added as owner, so do not re-add them via v1AddMeetingParticipants. Pass template_id (from listMeetingTemplates) to seed the meeting from a template: the template is linked at create and applied asynchronously — the create response's applied_template_ids will not include it yet; poll v1GetMeeting until the id appears before treating the agenda as seeded. Returns 201 with the meeting id; use an Idempotency-Key to prevent duplicates.

action=delete: Remove a meeting owned by the caller. Use this when the user wants to cancel or delete a meeting.

Soft-deletes a meeting keyed by {id}; only the owner may delete it (403 for non-owners). Unknown or inaccessible ids return 404. Returns 204. The call is effectively idempotent: a repeat delete 404s, so retries are safe.

action=update: Modify an existing meeting. Use this when the user wants to change a meeting's fields such as title or time.

Partial update (PATCH) of a workspace-owned meeting. Omitted fields are left untouched. start_time/end_time are ISO-8601 with timezone; nulling start makes the meeting untimed and end open-ended. end_time must follow the effective start. template_id applies the template synchronously — its agenda items, participants, and prompts are added additively (existing content is preserved), and re-sending an id already in applied_template_ids is a no-op. Body must contain at least one field. 404/403/402/503 for unknown/inaccessible, no edit access, plan-gated template_id, or the template backend unavailable.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoMeeting ID
titleNoMeeting title (1-255 characters)
actionYesThe operation to perform
end_timeNoScheduled end, ISO 8601 with timezone; omit to leave the meeting open-ended
is_instantNoCreates the meeting as an instant (start-now) meeting rather than a scheduled one
start_timeNoScheduled start, ISO 8601 with timezone; omit to create an untimed meeting
template_idNoID of the meeting template to apply (get ids from GET /v1/meeting-templates). On create the template is linked and applied asynchronously — poll `applied_template_ids` to confirm; on update it is applied synchronously, additively, and idempotently
detail_levelNoVerbosity of the generated meeting summary: BULLET_POINTS, STANDARD or VERBATIM
Idempotency-KeyNoOptional client-generated idempotency key (max 255 printable ASCII). Repeat requests with the same key replay the original 2xx response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / template_id / description
      Previous value: -"ID of the meeting template to seed the agenda from"New value: +"ID of the meeting template to apply (get ids from GET /v1/meeting-templates). On create the template is linked and applied asynchronously — poll `applied_template_ids` to confirm; on update it is applied synchronously, additively, and idempotently"
  2. Added

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only provide high-level hints (readOnly=false, idempotent=true, destructive=true). The description adds substantial behavioral detail: soft-delete semantics, idempotency via Idempotency-Key, async template application on create requiring polling, sync additive application on update, error codes (403/404/402/503), and ownership constraints for delete. It does not contradict annotations and provides comprehensive beyond-annotation context.

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 description is long but well-structured. It front-loads the purpose and usage, then segments each action into its own block. Every sentence carries relevant operational detail (return codes, idempotency, ownership rules, polling requirements). While slightly verbose, it is organized logically and efficiently for a complex multi-operation tool.

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?

Given the tool's complexity (three operations, nine parameters, async behavior, error handling), the description is remarkably complete. It covers return status codes (201, 204, 403, 404, 402, 503), idempotency considerations, template application semantics, and partial update rules. No critical operational detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter already described. The description goes further: for 'action' it explains each enum value's behavior; for 'template_id' it explains async vs sync application based on action; for 'Idempotency-Key' it explains replay behavior; for 'start_time'/'end_time' it explains ISO-8601 and null semantics. This adds meaning not present in the schema, fully compensating for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

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?

The description explicitly states when to use the tool: 'Use this when the user wants to schedule, edit, or cancel a meeting.' It also names alternatives and conditions, such as not using v1AddMeetingParticipants to re-add the caller as owner. Each action (create, delete, update) has its own when-to-use guidance, fully covering usage context.

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