Skip to main content
Glama
setluca

SetLuca

Official
by setluca

Book a call

luca_bookings_create
Destructive

Create a provider-neutral booking record for a lead with a specific time slot. Book calls directly through SetLuca using leadId and slotAt, with idempotency and confirmation required.

Instructions

Create a provider-neutral booking record. Body requires leadId and slotAt.

Luca operation: POST /api/bookings Required scopes: bookings:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
confirmNoThis tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events to an outside URL, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
workspaceIdNoOptional Luca workspace id override.
workspaceSlugNoOptional Luca workspace slug override.
idempotencyKeyNoStable key for safe retries. If omitted, the MCP server generates a unique key for this call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
provenanceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4/5.0
Behavior5/5

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

Annotations already declare destructive/openWorld, but the description adds real operational context: the strict confirm:true gate with rejection on omission, server-side idempotency-key generation for safe retries, required write scopes, and data-sensitivity level. This materially exceeds what the annotations convey and is consistent with them.

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 purpose, then broken into readable operational lines (endpoint, scopes, idempotency, confirm). Slightly verbose — the 'Destructive: has a real-world side effect' sentence restates annotation/schema content — but no serious waste.

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?

For a destructive create with nested body, 5 params, and an output schema, the description covers the essentials: required body fields, confirm gate, idempotency, and workspace targeting. Return values need not be explained given the output schema; only sibling differentiation is thin.

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?

With schema coverage at 80% the schema already documents confirm, idempotencyKey, and workspace overrides, so the baseline would be 3. The description adds value by naming the required body fields (leadId, slotAt), the retry-key behavior, and the workspace-override intent, pushing it above baseline.

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

Purpose4/5

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

States a specific verb and resource ('Create a provider-neutral booking record') that distinguishes record creation from read tools like luca_bookings_get/list. It does not, however, distinguish itself from the higher-level action siblings luca_book_call or luca_reschedule_call, and the generic title 'Book a call' overlaps with them.

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

Usage Guidelines3/5

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

The description gives prerequisites (confirm: true, idempotencyKey) and workspace-override context, which implies when the tool is callable. But it never states when to choose this vs. alternatives such as luca_book_call or luca_bookings_update, leaving sibling routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools