Skip to main content
Glama
SetLuca

SetLuca

Official

Close the loop on a call

luca_close_call_loop
Destructive

File what happened on a call and what it was worth, in one call. Reports attendance on the call event (completed, no_show, rescheduled, or cancelled) and, when an outcome is given, records the booking outcome: won with an amount, lost with…

Instructions

File what happened on a call and what it was worth, in one call. Reports attendance on the call event (completed, no_show, rescheduled, or cancelled) and, when an outcome is given, records the booking outcome: won with an amount, lost with a reason id from luca_bookings_outcome_reasons_list, or open with the next follow-up. This tool sends no message to the lead itself, but the records it files start work in the API. Reporting a no_show can start no-show recovery, which schedules a message to the lead when the booking type has recovery on. A completed call queues its summary, which can later sync to the connected CRM. A won or lost outcome queues a CRM deal-stage update, and lost also moves the lead to lost. Pass confirm: true before reporting a no_show or recording a won or lost outcome. Example: { bookingId, attendance: "completed", outcome: "won", amountMinor: 250000, currency: "USD", confirm: true }.

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": {
      "bookingId": "<bookingId>",
      "attendance": "<attendance>"
    },
    "name": "luca_close_call_loop"
  }
}

Input Schema

NameRequiredDescriptionDefault
notesNoThe coach's notes on the call, stored on the call event.
ratingNoThe coach's 1-5 rating of the call.
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.
outcomeNoThe revenue outcome. Leave it off to report attendance only and record the money later.
currencyNoISO-4217 currency for amountMinor, uppercase.
bookingIdYesThe booking whose call just happened.
attendanceYesWhat happened to the call itself.
amountMinorNoDeal value in minor units (cents) when outcome is won.
outcomeNoteNoNote stored on the revenue outcome, separate from notes.
workspaceIdNoOptional Luca workspace id override.
workspaceSlugNoOptional Luca workspace slug override.
idempotencyKeyNoReuse the same key when retrying this exact report. Both writes are scoped by route, so one key covers the pair.
nextFollowUpAtNoRequired when outcome is open: ISO-8601 follow-up time.
expectedVersionNoThe outcome version you read, when correcting an earlier outcome. A stale version returns 409 with the current one.
followUpTimezoneNoRequired when outcome is open: IANA timezone the follow-up is scheduled in.
lossReasonDefinitionIdNoRequired when outcome is lost: a reason id from luca_bookings_outcome_reasons_list.

Output Schema

NameRequiredDescriptionDefault
resultYes
provenanceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.1
    • changedOutput schema / properties / result / properties / feedback / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "additionalProperties": true,
      -        "properties": {
      -          "callEvent": {
      -            "additionalProperties": true,
      -            "properties": {
      -              "bookedAt": {
      -                "type": "string"
      -              },
      -              "bookingId": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "callSequenceNumber": {
      -                "type": "number"
      -              },
      -              "coachNotes": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "coachRating": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "completedAt": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "createdAt": {
      -                "type": "string"
      -              },
      -              "crmPermanentlyFailed": {
      -                "type": "boolean"
      -              },
      -              "crmSyncError": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "crmSyncStatus": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "crmSynced": {
      -                "type": "boolean"
      -              },
      -              "feedbackFields": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "properties": {
      -                      "followUpNeeded": {
      -                        "type": "boolean"
      -                      },
      -                      "followUpNote": {
      -                        "type": "string"
      -                      },
      -                      "objectionHandlingAccurate": {
      -                        "type": "boolean"
      -                      },
      -                      "surprise": {
      -                        "type": "string"
      -                      },
      -                      "wasQualified": {
      -                        "type": "string"
      -                      }
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "id": {
      -                "type": "string"
      -              },
      -              "leadChannel": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "leadId": {
      -                "type": "string"
      -              },
      -              "leadName": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "outcome": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "outcomeUpdatedAt": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "scheduledAt": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "summary": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "summarySource": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "summaryStatus": {
      -                "type": "string"
      -              },
      -              "summaryStructured": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "properties": {
      -                      "bookingTriggers": {
      -                        "type": "array"
      -                      },
      -                      "coachingRecommendation": {
      -                        "type": "string"
      -                      },
      -                      "crmNote": {
      -                        "type": "string"
      -                      },
      -                      "keyObjections": {
      -                        "type": "array"
      -                      },
      -                      "leadGoals": {
      -                        "type": "array"
      -                      },
      -                      "riskFactors": {
      -                        "type": "array"
      -                      }
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              }
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "type": "object",
      -        "x-luca-redacted-fields": [
      -          "callEvent.coachNotes",
      -          "callEvent.crmSyncError",
      -          "callEvent.feedbackFields.followUpNote",
      -          "callEvent.feedbackFields.surprise",
      -          "callEvent.leadName",
      -          "callEvent.summary",
      -          "callEvent.summaryStructured"
      -        ]
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "feedbackError": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "feedbackError"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "reason": {
      -        "enum": [
      -          "no_call_event_for_booking"
      -        ],
      -        "type": "string"
      -      },
      -      "reported": {
      -        "enum": [
      -          false
      -        ],
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "reported",
      -      "reason"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "callEvent": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "bookedAt": {
      +            "type": "string"
      +          },
      +          "bookingId": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "callSequenceNumber": {
      +            "type": "number"
      +          },
      +          "coachNotes": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "coachRating": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "completedAt": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "createdAt": {
      +            "type": "string"
      +          },
      +          "crmPermanentlyFailed": {
      +            "type": "boolean"
      +          },
      +          "crmSyncError": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "crmSyncStatus": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "crmSynced": {
      +            "type": "boolean"
      +          },
      +          "feedbackFields": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": true,
      +                "properties": {
      +                  "followUpNeeded": {
      +                    "type": "boolean"
      +                  },
      +                  "followUpNote": {
      +                    "type": "string"
      +                  },
      +                  "objectionHandlingAccurate": {
      +                    "type": "boolean"
      +                  },
      +                  "surprise": {
      +                    "type": "string"
      +                  },
      +                  "wasQualified": {
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "leadChannel": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "leadId": {
      +            "type": "string"
      +          },
      +          "leadName": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "outcome": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "outcomeUpdatedAt": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "scheduledAt": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "summary": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "summarySource": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "summaryStatus": {
      +            "type": "string"
      +          },
      +          "summaryStructured": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": true,
      +                "properties": {
      +                  "bookingTriggers": {
      +                    "type": "array"
      +                  },
      +                  "coachingRecommendation": {
      +                    "type": "string"
      +                  },
      +                  "crmNote": {
      +                    "type": "string"
      +                  },
      +                  "keyObjections": {
      +                    "type": "array"
      +                  },
      +                  "leadGoals": {
      +                    "type": "array"
      +                  },
      +                  "riskFactors": {
      +                    "type": "array"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object",
      +    "x-luca-redacted-fields": [
      +      "callEvent.coachNotes",
      +      "callEvent.crmSyncError",
      +      "callEvent.feedbackFields.followUpNote",
      +      "callEvent.feedbackFields.surprise",
      +      "callEvent.leadName",
      +      "callEvent.summary",
      +      "callEvent.summaryStructured"
      +    ]
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "feedbackError": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "feedbackError"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "reason": {
      +        "enum": [
      +          "no_call_event_for_booking"
      +        ],
      +        "type": "string"
      +      },
      +      "reported": {
      +        "enum": [
      +          false
      +        ],
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "reported",
      +      "reason"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observedv0.4.0

TDQS

A4.3/5.0
Behavior5/5

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

Goes well past the annotations (destructiveHint=true, openWorldHint=true, idempotentHint=false) by disclosing exactly what gets kicked off downstream: no_show can schedule a recovery message to the lead, a completed call queues a CRM-syncable summary, won/lost queues a CRM deal-stage update, and lost also moves the lead to lost. It also clarifies the tool itself sends no message — a non-obvious distinction that prevents the agent from wrongly assuming a direct send.

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 consequences, then the confirm gate, then an example — a sensible ordering with no filler. It is on the long side for a single tool, but each sentence carries behavioral information the agent could not get from the schema.

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 16-parameter mutation with an output schema and full annotation coverage, the description supplies the missing pieces: conditional parameter dependencies, the confirm precondition, the idempotent/retry implication of reusing a key ('one key covers the pair'), and the downstream side effects an agent must warn about. Nothing needed to invoke it correctly is absent.

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 description coverage is 100%, so the baseline is 3, but the description adds cross-parameter coupling the schema states only locally: outcome=won pairs with amount, lost pairs with a reason id from luca_bookings_outcome_reasons_list, open pairs with the next follow-up. The worked example payload shows how confirm, attendance, outcome, amountMinor, and currency combine in practice.

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 concrete verb and resource pair — filing call attendance plus revenue outcome on a booking — with the scope spelled out (attendance enum, outcome variants, amount/reason/follow-up). It is clear what the tool does, but it never names the nearest siblings it overlaps with (luca_bookings_outcome_record, luca_call_events_feedback, luca_call_events_undo_outcome), leaving the agent to infer which of several outcome-writing tools to pick.

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?

Gives real use conditions: outcome can be omitted to report attendance only and record money later, confirm: true must precede a no_show or a won/lost outcome, and loss reasons must come from luca_bookings_outcome_reasons_list. It sets context well but provides no explicit exclusions or 'use X instead when Y' routing against the many sibling tools in this namespace.

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