# io.github.setluca/luca-mcp (npm · @setluca/mcp)

Work your Luca workspace from any MCP client: 183 API tools + 15 task tools for leads and calls.

- Trust score: 48/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-22

## Components

- remote · `mcp.setluca.com`: 36/100, [markdown](https://verifymcp.io/servers/setluca-luca-mcp/mcp.md), [page](https://verifymcp.io/servers/setluca-luca-mcp/mcp)
- npm · `@setluca/mcp`: 48/100 (this document), [markdown](https://verifymcp.io/servers/setluca-luca-mcp/setluca-mcp.md), [page](https://verifymcp.io/servers/setluca-luca-mcp/setluca-mcp)

## Channel facts

- Registry: `npm`
- Package: `@setluca/mcp`
- Version: `0.2.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-22.

- **Supply Chain Security**: 50/100
  - Malware scan not yet available for this package.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 0 of 7 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 19/100
  - Repository check failed: no source repository is declared.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 0 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 75/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 30375 tokens (~151/item across 201 items; 198 tools + 3 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 92/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 74% of tool parameters carry a description.
  - Structured output schemas are declared (92% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### Claude

```bash
claude mcp add setluca-luca-mcp -- npx -y @setluca/mcp
```

### Codex

```bash
codex mcp add setluca-luca-mcp -- npx -y @setluca/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "setluca-luca-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@setluca/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add setluca-luca-mcp --command npx --arg -y --arg @setluca/mcp
```

### Hermes

```yaml
mcp_servers:
  setluca-luca-mcp:
    command: "npx"
    args: ["-y", "@setluca/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "setluca-luca-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@setluca/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-22 (score 48, 0)

- [security improvement] Malware scan: unverified → pass
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 0.2.0 → 0.2.1

### 2026-08-21 (score 48)

First indexed and scored.

## MCP tools (198)

### `luca_capabilities_get` (~125 tokens)

What this workspace supports

Describe Luca's public API capabilities, scopes, and boundaries.

Luca operation: GET /api/capabilities
Required scopes: leads:read, conversations:read, bookings:read, campaigns:read, broadcasts:read, webhooks:read, integrations:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_leads_list` (~155 tokens)

List leads

List leads. Query supports limit, cursor, channel, and q according to Luca OpenAPI.

Luca operation: GET /api/leads
Required scopes: leads:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_leads_get` (~105 tokens)

Get a lead's timeline

Get a lead's full timeline and notes.

Luca operation: GET /api/leads/{id}
Required scopes: leads:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_leads_explain` (~122 tokens)

Explain why a lead qualified

Explain why a lead qualified: the qualifier's reasoning, signals, and confidence from its most recent drafted turn.

Luca operation: GET /api/leads/{id}/explain
Required scopes: leads:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result`

### `luca_leads_create` (~154 tokens)

Create or upsert a lead

Create or upsert a lead identity. Body requires channel and externalUserId.

Luca operation: POST /api/leads
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_leads_update` (~164 tokens)

Update a lead

Update a lead's display name, stage, score, tags, or custom fields.

Luca operation: PATCH /api/leads/{id}
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_leads_fieldDefinitions_list` (~99 tokens)

List custom lead fields

List custom lead field definitions.

Luca operation: GET /api/leads/field-definitions
Required scopes: leads:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result`

### `luca_leads_fieldDefinitions_upsert` (~154 tokens)

Define a custom lead field

Create or update a custom lead field definition.

Luca operation: POST /api/leads/field-definitions
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_leads_importPreview` (~109 tokens)

Preview a lead import

Preview a mapped CSV lead import before applying it.

Luca operation: POST /api/leads/imports/preview
Required scopes: leads:read
Required capability: draft; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_leads_importApply` (~152 tokens)

Apply a lead import

Apply a mapped lead import with consent evidence.

Luca operation: POST /api/leads/imports/apply
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_leads_identities_attach` (~162 tokens)

Attach a channel identity to a lead

Attach a verified or claimed identity to a lead.

Luca operation: POST /api/leads/{id}/identities
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_leads_consents_grant` (~162 tokens)

Record a lead's consent

Grant explicit lead consent for a channel purpose.

Luca operation: POST /api/leads/{id}/consents
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_leads_consents_revoke` (~165 tokens)

Revoke a lead's consent

Revoke explicit lead consent for a channel purpose.

Luca operation: POST /api/leads/{id}/consents/revoke
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_leads_notes_add` (~162 tokens)

Add a note to a lead

Append a coach note to a lead. Body requires body.

Luca operation: POST /api/leads/{id}/notes
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_leads_draft` (~175 tokens)

Draft a reply to a lead

Draft a voice-matched reply for a lead on demand and queue it for review. Optional guidance steers tone or content.

Luca operation: POST /api/leads/{id}/draft
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_leads_notes_delete` (~182 tokens)

Delete a lead note

Remove one coach note from a lead and leave the rest of the timeline alone. This is how a note filed by mistake gets taken back.

Luca operation: DELETE /api/leads/{id}/notes/{noteId}
Required scopes: leads:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `noteId` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_conversations_list` (~151 tokens)

List conversations

List recent conversations. Query supports limit, cursor, channel, and q.

Luca operation: GET /api/conversations
Required scopes: conversations:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_conversations_get` (~105 tokens)

Get a conversation

Get a conversation with messages and lead context.

Luca operation: GET /api/conversations/{id}
Required scopes: conversations:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_conversations_messages` (~167 tokens)

Read a conversation's messages

Page backward through a thread's older messages, for threads longer than the window the conversation read returns.

Luca operation: GET /api/conversations/{id}/messages
Required scopes: conversations:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_conversations_send` (~280 tokens)

Send a message to a lead

Send a message to the lead on their channel right away. This is the one conversation tool that reaches a real person without a reviewer seeing the message first, which is why it needs an explicit confirm. Prefer drafting into the review queue unless the coach has asked for this message to go out now.

Luca operation: POST /api/conversations/{id}/send
Required scopes: conversations:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `body` (object, required)
- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_reviewQueue_list` (~153 tokens)

List the review queue

List review-queue items when the API key has review queue access.

Luca operation: GET /api/review-queue
Required scopes: review_queue:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_reviewQueue_explain` (~127 tokens)

Explain a queued draft

Explain the signals behind a drafted reply: its voice-match score, any critic findings, and the qualification that motivated it.

Luca operation: GET /api/review-queue/{id}/explain
Required scopes: review_queue:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result`

### `luca_reviewQueue_approve` (~246 tokens)

Approve and send a queued draft

Approve a pending draft for sending; dispatches through the lead's channel. Sends a real message.

Luca operation: POST /api/review-queue/{id}/approve
Required scopes: review_queue:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `body` (object, required)
- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_reviewQueue_reject` (~171 tokens)

Reject a queued draft

Reject a pending review-queue draft so it never sends. Stops any related booking-recovery cadence and emits review.rejected.

Luca operation: POST /api/review-queue/{id}/reject
Required scopes: review_queue:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_reviewQueue_restore` (~169 tokens)

Restore a rejected draft

Restore a rejected review-queue item back to pending. Fails if it's a booking message whose recovery window already passed.

Luca operation: POST /api/review-queue/{id}/restore
Required scopes: review_queue:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_reviewQueue_media_retry` (~183 tokens)

Retry a draft's failed media

Retry a failed voice-note transcription so the draft can be reviewed. Only re-transcribes; never redrafts or sends.

Luca operation: POST /api/review-queue/{id}/media/{mediaId}/retry
Required scopes: review_queue:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `mediaId` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_reviewQueue_sla` (~115 tokens)

Check the review queue's response times

Read median first-response time and its daily trend. Tells you whether the queue is being cleared fast enough.

Luca operation: GET /api/review-queue/sla
Required scopes: review_queue:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_reviewQueue_objectionVariant` (~190 tokens)

Record an objection variant choice

Record which objection-specialist variant was picked for one queued draft. It is how the objection tests learn which handling works, so record the variant the coach actually chose.

Luca operation: POST /api/review-queue/{id}/objection-variant
Required scopes: review_queue:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_list` (~150 tokens)

List bookings

List bookings. Query supports limit, cursor, status, and upcoming.

Luca operation: GET /api/bookings
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_create` (~153 tokens)

Book a call

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

Luca operation: POST /api/bookings
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_get` (~110 tokens)

Get a booking

Read one booking: its slot, status, provider, and lead.

Luca operation: GET /api/bookings/{id}
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_availability` (~113 tokens)

Read open call slots

List open slots the coach can actually be booked into. Check this before booking.

Luca operation: GET /api/bookings/availability
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_managedAvailability` (~118 tokens)

Read Luca-managed call slots

List open slots for one of Luca's own call types, with calendar conflicts already removed.

Luca operation: GET /api/bookings/managed-availability
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_list` (~104 tokens)

List call types

List the call types a booking can use, with their duration and provider.

Luca operation: GET /api/bookings/types
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_schedule` (~119 tokens)

Read a call type's schedule

Read a call type's weekly schedule: the hours it can be booked and its time zone.

Luca operation: GET /api/bookings/types/{id}/schedule
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_attendees` (~119 tokens)

List a call type's attendees

List the people invited to every call of this type, on top of the lead.

Luca operation: GET /api/bookings/types/{id}/attendees
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_providers_list` (~109 tokens)

List booking providers

List every booking provider, what each can do, and whether this coach's connection is healthy.

Luca operation: GET /api/bookings/providers
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_providers_get` (~111 tokens)

Get a booking provider

List the event types and calendars in one connected provider account.

Luca operation: GET /api/bookings/providers/{provider}
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `provider` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_calendars_list` (~110 tokens)

List connected calendars

List the calendars Luca reads for conflicts, and which one it writes new events to.

Luca operation: GET /api/bookings/calendars
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_outcomeReasons_list` (~124 tokens)

List loss reasons

List the reasons a sale can be lost or a call cancelled. Use one of these codes when recording an outcome.

Luca operation: GET /api/bookings/outcome-reasons
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_outcome_get` (~120 tokens)

Get a booking's outcome

Read where the sale stands on a booking, plus the version you send back to correct it.

Luca operation: GET /api/bookings/{id}/outcome
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_outcome_history` (~121 tokens)

Read a booking's outcome history

Read every outcome ever recorded on a booking, in order. Corrections append rather than overwrite.

Luca operation: GET /api/bookings/{id}/outcome/history
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_needsOutcome` (~110 tokens)

List calls with no outcome recorded

List attended calls with no outcome recorded yet. The work list for closing revenue attribution.

Luca operation: GET /api/bookings/needs-outcome
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_lifecycleAttention` (~111 tokens)

List bookings needing attention

List bookings where Luca's record and the provider's disagree and a human has to decide.

Luca operation: GET /api/bookings/lifecycle-attention
Required scopes: bookings:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_brief` (~120 tokens)

Read a pre-call brief

Read the pre-call brief: who the lead is, what they want, and the objections to expect.

Luca operation: GET /api/bookings/{id}/brief
Required scopes: bookings:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_bookings_update` (~154 tokens)

Reschedule or edit a booking

Reschedule or update booking status.

Luca operation: PATCH /api/bookings/{id}
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_cancel` (~144 tokens)

Cancel a booking

Cancel a booking.

Luca operation: DELETE /api/bookings/{id}
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_outcome_record` (~191 tokens)

Record a booking's outcome

Record what the call was worth: won, lost with a reason, or still open. To correct an earlier outcome send the expectedVersion you read; a stale version returns 409 with the current one.

Luca operation: POST /api/bookings/{id}/outcome
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_lifecycleResolution` (~178 tokens)

Resolve a booking's lifecycle flag

Settle one booking whose record disagrees with the provider's: retry the sync, dismiss the duplicate, or keep Luca's version.

Luca operation: POST /api/bookings/{id}/lifecycle-resolution
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_providerSync_retry` (~169 tokens)

Retry a booking's provider sync

Retry a failed write-back to the booking provider. A permanent failure returns 409 rather than retrying forever.

Luca operation: POST /api/bookings/{id}/provider-sync/retry
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_guestLinks_create` (~175 tokens)

Create a guest link for a booking

Mint revocable reschedule and cancel links for one booking, so a lead can move the call without an account.

Luca operation: POST /api/bookings/{id}/guest-links
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_guestLinks_revoke` (~157 tokens)

Revoke a booking's guest links

Kill every outstanding guest link on a booking at once.

Luca operation: DELETE /api/bookings/{id}/guest-links
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_outcomeReasons_create` (~168 tokens)

Create a loss reason

Add a lost-sale or cancellation reason in the workspace's own wording. A code already in use returns 409.

Luca operation: POST /api/bookings/outcome-reasons
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_outcomeReasons_update` (~177 tokens)

Update a loss reason

Rename, reorder, or archive an outcome reason. Archiving hides it from the picker and leaves recorded outcomes alone.

Luca operation: PATCH /api/bookings/outcome-reasons/{id}
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_create` (~185 tokens)

Create a booking type

Define a bookable call: how long it runs, where it happens, and how it looks to the lead. Give it a schedule next — a booking type with no schedule offers no slots and will never appear in availability.

Luca operation: POST /api/bookings/types
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_update` (~177 tokens)

Update a booking type

Update only the fields you send on one booking type. Sending `location` replaces the whole location, because its shape depends on the type.

Luca operation: PATCH /api/bookings/types/{id}
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_delete` (~164 tokens)

Delete a booking type

Remove a booking type and get back the types that are left. Calls already booked against it are not cancelled.

Luca operation: DELETE /api/bookings/types/{id}
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_schedule_replace` (~197 tokens)

Replace a booking type schedule

Replace a booking type's schedule outright. Send every rule and override you want to keep — anything left out is dropped, which is also how you clear a day. Read the current schedule first unless you mean to start over.

Luca operation: PUT /api/bookings/types/{id}/schedule
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_attendees_add` (~180 tokens)

Add a booking type attendee

Add a standing attendee to one booking type, so they are invited to every call booked against it. Returns the full attendee list.

Luca operation: POST /api/bookings/types/{id}/attendees
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_types_attendees_remove` (~188 tokens)

Remove a booking type attendee

Remove a standing attendee from one booking type and get back the ones that are left. Calls already booked keep the invitees they were created with.

Luca operation: DELETE /api/bookings/types/{id}/attendees/{attendeeId}
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `attendeeId` (string, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_calendars_select` (~190 tokens)

Select a booking calendar

Add or update a calendar selection, either for conflict checks or as the destination new bookings are written to. The destination has to be writable: a read-only calendar returns 400, and a Google connection needing attention returns 409.

Luca operation: PUT /api/bookings/calendars
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_bookings_calendars_remove` (~172 tokens)

Remove a booking calendar

Stop using a calendar for conflict checks or as the booking destination. The calendar itself is left alone in Google; only Luca's selection changes.

Luca operation: DELETE /api/bookings/calendars
Required scopes: bookings:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_callEvents_needingFeedback` (~113 tokens)

List calls still needing a report

List calls whose time has passed that still need the coach to say what happened. The post-call work queue.

Luca operation: GET /api/call-events
Required scopes: call_events:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_get` (~114 tokens)

Get a call event

Read one call event: outcome, rating, summary, and CRM sync state.

Luca operation: GET /api/call-events/{id}
Required scopes: call_events:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_byBooking` (~128 tokens)

Get a booking's call event

Find the call event attached to a booking. A booking whose call hasn't happened yet returns 404, which is normal.

Luca operation: GET /api/call-events/by-booking/{bookingId}
Required scopes: call_events:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `bookingId` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_byLead` (~125 tokens)

List a lead's call events

Read a lead's full call history, oldest first, so a second or third call reads in sequence.

Luca operation: GET /api/call-events/by-lead/{leadId}
Required scopes: call_events:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `leadId` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_feedback` (~181 tokens)

Report how a call went

File the coach's report on how a call went. A completed or no_show outcome also records booking attendance, and a completed call queues its summary.

Luca operation: POST /api/call-events/{id}/feedback
Required scopes: call_events:write
Required capability: draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_summary_generate` (~162 tokens)

Generate a call summary

Queue a fresh summary and return straight away. Poll the call event for the result.

Luca operation: POST /api/call-events/{id}/summary
Required scopes: call_events:write
Required capability: draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_summary_replace` (~177 tokens)

Replace a call summary

Replace the generated summary with the coach's own wording and push it. A summary already in the CRM updates that same note.

Luca operation: PUT /api/call-events/{id}/summary
Required scopes: call_events:write
Required capability: draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_pushToCrm` (~174 tokens)

Push a call to the CRM

Send the current summary to the CRM now, without waiting out the review window. Re-pushing updates the existing note.

Luca operation: POST /api/call-events/{id}/push-to-crm
Required scopes: call_events:write
Required capability: draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_undoOutcome` (~175 tokens)

Undo a call's outcome

Clear a mistaken attendance mark and put the call back in the queue. The window is 48 hours from when the outcome was set.

Luca operation: POST /api/call-events/{id}/undo-outcome
Required scopes: call_events:write
Required capability: draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_callEvents_backfill` (~179 tokens)

Backfill a booking's call event

Create a call event for a booking that predates automatic creation, then queue its summary. Safe to call twice: an existing call event comes back as is.

Luca operation: POST /api/call-events/backfill/{bookingId}
Required scopes: call_events:write
Required capability: draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `bookingId` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_campaigns_list` (~149 tokens)

List campaigns

List campaigns. Query supports limit, cursor, and status.

Luca operation: GET /api/campaigns
Required scopes: campaigns:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_get` (~105 tokens)

Get a campaign

Get campaign draft and latest published version.

Luca operation: GET /api/campaigns/{id}
Required scopes: campaigns:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_create` (~152 tokens)

Create a campaign

Create a campaign draft. Body requires name and may include graph.

Luca operation: POST /api/campaigns
Required scopes: campaigns:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_generate` (~153 tokens)

Generate a campaign draft

Generate a safe AI campaign plan without creating or publishing it.

Luca operation: POST /api/campaigns/generate
Required scopes: campaigns:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_draft_update` (~158 tokens)

Edit a campaign draft

Autosave a campaign draft.

Luca operation: PATCH /api/campaigns/{id}/draft
Required scopes: campaigns:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_enrollments_list` (~109 tokens)

List a campaign's enrollments

List campaign enrollments.

Luca operation: GET /api/campaigns/{id}/enrollments
Required scopes: campaigns:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_enroll` (~247 tokens)

Enroll leads in a campaign

Enroll a lead in the latest published campaign version. Triggers the live campaign's automation for that lead.

Luca operation: POST /api/campaigns/{id}/enrollments
Required scopes: campaigns:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `body` (object, required)
- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_campaigns_analytics` (~114 tokens)

Read a campaign's results

Read campaign attribution and performance analytics.

Luca operation: GET /api/campaigns/{id}/analytics
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_providerCapabilities` (~111 tokens)

Check what a campaign's channel supports

Evaluate provider capability blockers for a campaign draft.

Luca operation: GET /api/campaigns/{id}/provider-capabilities
Required scopes: campaigns:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_commentEvents_list` (~113 tokens)

List campaign comment events

List matched, suppressed, blocked, and replayed comment automation events.

Luca operation: GET /api/campaigns/comment-events
Required scopes: campaigns:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_campaigns_simulations_list` (~108 tokens)

List a campaign's simulations

List persisted campaign simulation runs.

Luca operation: GET /api/campaigns/{id}/simulations
Required scopes: campaigns:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_simulations_create` (~163 tokens)

Simulate a campaign

Run a persisted dry-run simulation without sending messages.

Luca operation: POST /api/campaigns/{id}/simulations
Required scopes: campaigns:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_simulations_get` (~121 tokens)

Get a campaign simulation

Get a campaign simulation run with trace.

Luca operation: GET /api/campaigns/{id}/simulations/{simulationId}
Required scopes: campaigns:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `simulationId` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_commentSimulationSuite_run` (~192 tokens)

Run the comment automation suite

Run the Instagram comment-to-DM simulation suite against a campaign. Any campaign that uses comment automation has to pass it before it can publish, so run this before reaching for publish.

Luca operation: POST /api/campaigns/{id}/comment-simulation-suite
Required scopes: campaigns:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_publish` (~268 tokens)

Publish a campaign

Freeze the draft as a new immutable version and point new enrollments at it. Published versions never change, and enrollments against a live campaign reach real leads. Publish is blocked when the target provider cannot do something the campaign needs, so read the provider capabilities first.

Luca operation: POST /api/campaigns/{id}/publish
Required scopes: campaigns:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_campaigns_setStatus` (~180 tokens)

Pause, resume, or archive a campaign

Pause, resume, or archive a campaign. A transition that does not make sense for the campaign's current state is rejected rather than forced through.

Luca operation: POST /api/campaigns/{id}/status
Required scopes: campaigns:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_campaigns_duplicate` (~171 tokens)

Duplicate a campaign

Copy a campaign into a fresh unpublished draft and leave the original alone. Use it to change a live campaign without touching what is currently running.

Luca operation: POST /api/campaigns/{id}/duplicate
Required scopes: campaigns:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_versions_list` (~130 tokens)

List campaign versions

List a campaign's published version history. Published versions cannot change, so this is the record of what actually ran rather than what the draft says today.

Luca operation: GET /api/campaigns/{id}/versions
Required scopes: campaigns:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_campaigns_enrollments_timeline` (~140 tokens)

Read an enrollment timeline

Read every step one enrollment has been through: what got sent, when, and how the lead responded.

Luca operation: GET /api/campaigns/{id}/enrollments/{enrollmentId}/timeline
Required scopes: campaigns:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `enrollmentId` (string, required)
- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_list` (~150 tokens)

List broadcasts

List broadcasts. Query supports limit, cursor, and status.

Luca operation: GET /api/broadcasts
Required scopes: broadcasts:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_get` (~102 tokens)

Get a broadcast

Get broadcast detail.

Luca operation: GET /api/broadcasts/{id}
Required scopes: broadcasts:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_create` (~152 tokens)

Create a broadcast

Create a broadcast draft. Body requires campaignId and name.

Luca operation: POST /api/broadcasts
Required scopes: broadcasts:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_preview` (~159 tokens)

Preview a broadcast

Refresh broadcast recipient and sample-message preview.

Luca operation: POST /api/broadcasts/{id}/preview
Required scopes: broadcasts:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_approve` (~155 tokens)

Approve a broadcast

Approve a safe broadcast draft and snapshot recipients.

Luca operation: POST /api/broadcasts/{id}/approve
Required scopes: broadcasts:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_launch` (~227 tokens)

Launch a broadcast

Launch an approved broadcast. Sends messages to live leads.

Luca operation: POST /api/broadcasts/{id}/launch
Required scopes: broadcasts:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_pause` (~161 tokens)

Pause a broadcast

Pause a running broadcast with an optional operator reason.

Luca operation: POST /api/broadcasts/{id}/pause
Required scopes: broadcasts:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_retry` (~238 tokens)

Retry a broadcast's failed sends

Retry failed broadcast recipients after operator review. Re-sends messages to leads.

Luca operation: POST /api/broadcasts/{id}/retry
Required scopes: broadcasts:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `body` (object, required)
- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_broadcasts_cancel` (~165 tokens)

Cancel a broadcast

Cancel a draft, approved, running, paused, or failed broadcast.

Luca operation: POST /api/broadcasts/{id}/cancel
Required scopes: broadcasts:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_subscriptions_list` (~104 tokens)

List webhook subscriptions

List outbound webhook subscriptions.

Luca operation: GET /api/webhook-subscriptions
Required scopes: webhooks:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_subscriptions_create` (~105 tokens)

Create a webhook subscription

Create an outbound webhook subscription.

Luca operation: POST /api/webhook-subscriptions
Required scopes: webhooks:write
Required capability: draft; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_subscriptions_update` (~158 tokens)

Update a webhook subscription

Update an outbound webhook subscription.

Luca operation: PATCH /api/webhook-subscriptions/{id}
Required scopes: webhooks:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_subscriptions_delete` (~129 tokens)

Delete a webhook subscription

Delete an outbound webhook subscription. Terminal, idempotent soft delete: delivery history stays queryable and the subscription can never be resurrected.

Luca operation: DELETE /api/webhook-subscriptions/{id}
Required scopes: webhooks:write
Required capability: draft; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_testDelivery` (~152 tokens)

Send a test webhook

Queue a canonical test webhook event.

Luca operation: POST /api/webhook-subscriptions/test-delivery
Required scopes: webhooks:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_deliveries_list` (~108 tokens)

List webhook deliveries

List webhook deliveries.

Luca operation: GET /api/webhook-subscriptions/deliveries
Required scopes: webhooks:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_signatureGuide` (~101 tokens)

Read the webhook signature guide

Describe Luca webhook HMAC verification.

Luca operation: GET /api/webhook-subscriptions/signature-guide
Required scopes: webhooks:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_deliveries_replay` (~247 tokens)

Replay a webhook delivery

Replay one webhook delivery without changing the event id. Re-triggers the subscriber's downstream automation.

Luca operation: POST /api/webhook-subscriptions/deliveries/{deliveryId}/replay
Required scopes: webhooks:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `deliveryId` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_events_list` (~128 tokens)

List webhook events

List canonical webhook events of one type, newest first, in the delivered payload fields. Falls back to a documented sample payload when the workspace has none yet.

Luca operation: GET /api/webhook-events
Required scopes: webhooks:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_events_replay` (~245 tokens)

Replay a webhook event

Replay one canonical webhook event. Re-triggers subscribers' downstream automations.

Luca operation: POST /api/webhook-subscriptions/events/{eventId}/replay
Required scopes: webhooks:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `body` (object, required)
- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `eventId` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_webhooks_events_bulkReplay` (~237 tokens)

Replay a batch of webhook events

Bulk replay webhook events by type and time range. Re-triggers downstream automations at scale.

Luca operation: POST /api/webhook-subscriptions/events/replay
Required scopes: webhooks:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `body` (object, required)
- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_connectors_list` (~103 tokens)

List available connectors

List Zapier, Make, and CRM provider capabilities.

Luca operation: GET /api/integrations/connectors
Required scopes: integrations:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_oauthUrl` (~121 tokens)

Start a CRM connection

Create a CRM provider OAuth URL.

Luca operation: GET /api/integrations/crm/providers/{provider}/oauth-url
Required scopes: integrations:write
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `provider` (string, required)
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_oauthCallback` (~158 tokens)

Finish a CRM connection

Exchange a CRM OAuth code and store encrypted credentials.

Luca operation: POST /api/integrations/crm/oauth/callback
Required scopes: integrations:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_connections_list` (~99 tokens)

List CRM connections

List CRM connections.

Luca operation: GET /api/integrations/crm/connections
Required scopes: integrations:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_connections_create` (~156 tokens)

Create a CRM connection

Create or update a workspace-scoped CRM connection.

Luca operation: POST /api/integrations/crm/connections
Required scopes: integrations:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_connections_schema` (~111 tokens)

Read a CRM's field schema

Discover CRM provider schema.

Luca operation: GET /api/integrations/crm/connections/{id}/schema
Required scopes: integrations:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_connections_health` (~155 tokens)

Check a CRM connection's health

Probe CRM provider health.

Luca operation: POST /api/integrations/crm/connections/{id}/health
Required scopes: integrations:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_connections_webhooksSetup` (~167 tokens)

Set up a CRM's webhooks

Configure CRM provider webhook status.

Luca operation: POST /api/integrations/crm/connections/{id}/webhooks/setup
Required scopes: integrations:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_webhooks_record` (~182 tokens)

Record a CRM webhook

Record an inbound CRM provider webhook event. Idempotent on the provider's event id, so a redelivery is recorded once.

Luca operation: POST /api/integrations/crm/webhooks/{provider}
Required scopes: integrations:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `provider` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_mappings_suggest` (~160 tokens)

Suggest CRM field mappings

Suggest CRM field mappings.

Luca operation: POST /api/integrations/crm/connections/{id}/mappings/suggest
Required scopes: integrations:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_mappings_confirm` (~164 tokens)

Confirm CRM field mappings

Confirm CRM field mappings.

Luca operation: PUT /api/integrations/crm/connections/{id}/mappings
Required scopes: integrations:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_syncRuns_list` (~114 tokens)

List CRM sync runs

List CRM sync history.

Luca operation: GET /api/integrations/crm/connections/{id}/sync-runs
Required scopes: integrations:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_crm_syncRuns_create` (~170 tokens)

Start a CRM sync

Create a CRM dry-run or live sync run.

Luca operation: POST /api/integrations/crm/connections/{id}/sync-runs
Required scopes: integrations:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_integrations_events_list` (~144 tokens)

List integration events

List integration event log.

Luca operation: GET /api/integrations/events
Required scopes: integrations:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_voice_profile` (~110 tokens)

Read the coach's voice fingerprint

Read a non-verbatim voice-fingerprint summary: version, example count, and last refresh. No corpus text.

Luca operation: GET /api/voice/profile
Required scopes: voice:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_voice_corpus` (~128 tokens)

Read the coach's voice corpus

List the coach's voice corpus: the writing every draft is matched against. Entry id, source, channel, and age always come back; the writing itself is blanked for a redacted-tier key.

Luca operation: GET /api/voice
Required scopes: voice:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_coach_profile` (~123 tokens)

Read the coach's profile

Read the coach's account record: name, timezone, business hours, and tone slider. Use it to know when the coach is reachable and how formal they want to sound.

Luca operation: GET /api/coaches/me
Required scopes: coach:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_coach_niche` (~106 tokens)

Read the coach's niche

Read the coach's canonical niche, the cohort key their benchmarks are compared against.

Luca operation: GET /api/coaches/niche
Required scopes: coach:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_coach_nicheProfile` (~126 tokens)

Read the coach's niche profile

Read the coach's offer, audience, price range, promised outcomes, disqualifiers, and FAQs. This is the context that decides whether a lead is a fit.

Luca operation: GET /api/coaches/niche-profile
Required scopes: coach:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_coach_objectionPlaybook` (~120 tokens)

Read the coach's objection playbook

Read how the coach wants each objection type handled — price, timing, trust, fit — before drafting a reply to one.

Luca operation: GET /api/coaches/objection-playbook
Required scopes: coach:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result`

### `luca_coach_postCallSettings` (~119 tokens)

Read the post-call settings

Read the coach's post-call preferences: what gets summarized, what gets pushed to the CRM, and what the coach fills in themselves.

Luca operation: GET /api/coaches/post-call-settings
Required scopes: coach:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_coach_postCallCrmMapping` (~121 tokens)

Read the post-call CRM mapping

Read which CRM field each post-call value writes to. Check this before a CRM push to know what will land where.

Luca operation: GET /api/coaches/post-call-crm-mapping
Required scopes: coach:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_coach_postCallDealSync` (~110 tokens)

Read the post-call deal sync settings

Read the CRM pipeline and the stage each call outcome moves a deal to.

Luca operation: GET /api/coaches/post-call-deal-sync
Required scopes: coach:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_coach_auditLog` (~192 tokens)

Read the audit log

Read the coach-visible audit trail, newest first, filterable by actor type, action, action prefix, or target. It is the one read that spans every domain, so use it to check what a previous run actually did instead of replaying each list route.

Luca operation: GET /api/audit-log
Required scopes: coach:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_usage_spend` (~115 tokens)

Read this period's spend

Read model spend for the period, rolled up by agent and by day, against the plan's cap.

Luca operation: GET /api/usage
Required scopes: usage:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_usage_messages` (~112 tokens)

Read this period's message count

Read the message pool: used, allowed, and remaining for the period. Check this before starting work that drafts in bulk.

Luca operation: GET /api/usage/messages
Required scopes: usage:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_safety_accounts` (~121 tokens)

Check connected account safety

Read each connected channel account's safety status, 24-hour send count, and human-approval window. An account inside its approval window must not be automated against.

Luca operation: GET /api/account-safety
Required scopes: safety:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_reports_scorecard` (~118 tokens)

Read the scorecard

Read the sales scorecard for a window: calls booked and completed, show rate, won and lost, draft approvals, and hours saved.

Luca operation: GET /api/reports/scorecard
Required scopes: reports:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_reports_morning` (~114 tokens)

Read the morning report

Structured 24h review-queue digest (items + counts) for the coach. No model call; summarize client-side.

Luca operation: GET /api/reports/morning
Required scopes: reports:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_insights_unreadCount` (~113 tokens)

Count unread insights

How many insights the coach has not read yet. Cheap enough to poll before pulling the whole feed.

Luca operation: GET /api/insights/unread-count
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_insights_markRead` (~161 tokens)

Mark an insight read

Mark one insight read, so it stops coming back at the top of the feed.

Luca operation: POST /api/insights/{id}/read
Required scopes: insights:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_insights_dismiss` (~166 tokens)

Dismiss an insight

Dismiss one insight the coach does not want to act on. Use this rather than leaving it unread forever.

Luca operation: POST /api/insights/{id}/dismiss
Required scopes: insights:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_insights_markActioned` (~169 tokens)

Mark an insight actioned

Record that the thing an insight asked for was actually done. Use it after doing the work, not instead of it.

Luca operation: POST /api/insights/{id}/action
Required scopes: insights:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_insights_settings_get` (~136 tokens)

Read alert delivery settings

Read which insight alerts reach the coach and how. The row is created with defaults on the first read, so this never 404s. Check it before concluding a quiet feed means nothing is happening — it may just be muted.

Luca operation: GET /api/insights/settings
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_insights_settings_update` (~167 tokens)

Update alert delivery settings

Merge-patch the coach's alert-delivery settings. Send only what you are changing; anything left out keeps its current value.

Luca operation: PUT /api/insights/settings
Required scopes: insights:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_learning_panel` (~127 tokens)

Read what Luca wants to learn

Read which of the three profile questions Luca still owes an answer to, with suggested answers inferred from the coach's own words. The worked example pair is blanked for a redacted-tier key.

Luca operation: GET /api/teach-luca
Required scopes: learning:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_learning_frameworkPerformance` (~136 tokens)

Read framework objection performance

Win rate by objection bucket for the sales framework the coach has configured right now, over a rolling window. These numbers are correlational — read them as a signal, not as proof a framework caused the result.

Luca operation: GET /api/framework-performance
Required scopes: learning:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_learning_proposals_list` (~128 tokens)

List learning proposals

List what the coach's tests have learned and are proposing they act on, newest first. Dismissed proposals are left out unless you ask for them.

Luca operation: GET /api/learning-proposals
Required scopes: learning:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_learning_proposals_dismiss` (~179 tokens)

Dismiss a learning proposal

Dismiss one learning proposal so it drops out of the default list. Use it when the coach has decided against the change, not when you have simply read it.

Luca operation: POST /api/learning-proposals/{id}/dismiss
Required scopes: learning:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_knowledge_suggestions` (~124 tokens)

List knowledge suggestions

List profile changes proposed from the coach's own knowledge sources, each with the excerpt it was drawn from and the value it would replace.

Luca operation: GET /api/knowledge/suggestions
Required scopes: knowledge:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_knowledge_approveSuggestion` (~249 tokens)

Approve a knowledge suggestion

Approve a profile suggestion and write it into the coach's profile. Every later draft reads the result, so check the excerpt supports the change before approving.

Luca operation: POST /api/knowledge/suggestions/{id}/approve
Required scopes: knowledge:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_knowledge_rejectSuggestion` (~164 tokens)

Reject a knowledge suggestion

Reject a profile suggestion so it stops being offered. The profile is left as it stands.

Luca operation: POST /api/knowledge/suggestions/{id}/reject
Required scopes: knowledge:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_knowledge_sources_list` (~135 tokens)

List knowledge sources

List the content sources the coach has connected — Notion, Google Docs, a website, an Instagram bio — with the sync state of each one. Connecting a new source is app-only; this lists what is already there.

Luca operation: GET /api/knowledge/sources
Required scopes: knowledge:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_knowledge_sources_sync` (~183 tokens)

Re-sync a knowledge source

Queue a re-read of one knowledge source now rather than waiting for its next scheduled sync. It returns as soon as the job is queued, so any new suggestions appear on a later read.

Luca operation: POST /api/knowledge/sources/{id}/sync
Required scopes: knowledge:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_knowledge_sources_disconnect` (~171 tokens)

Disconnect a knowledge source

Delete a knowledge source. Its pending suggestions go with it; values the coach already approved stay in the profile, because approving copies them there.

Luca operation: DELETE /api/knowledge/sources/{id}
Required scopes: knowledge:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_memory_list` (~144 tokens)

List what Luca remembers

List what Luca remembers, filtered by lead, scope, source, trust level, or free text. The fact, the reasoning, and the quoted evidence are blanked for a redacted-tier key; trust level, lead, and dates always come back.

Luca operation: GET /api/memory
Required scopes: memory:read
Required capability: read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_memory_update` (~179 tokens)

Edit a memory

Correct one memory: edit the fact, flag it disputed when it turns out to be wrong, restore an archived one, or make it win over a conflicting memory.

Luca operation: PATCH /api/memory/{id}
Required scopes: memory:write
Required capability: draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `provenance` (object)
- `result` (object)

### `luca_memory_setArchived` (~169 tokens)

Archive or restore memories

Archive or restore several memories at once. Archiving stops Luca using a fact while the record and its provenance survive, so it is always reversible.

Luca operation: POST /api/memory/bulk
Required scopes: memory:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_cadences_rescueStart` (~235 tokens)

Start a silent-lead rescue

Enroll silent leads into the multi-day rescue cadence. Starts outbound touches to real leads.

Luca operation: POST /api/cadences/rescue
Required scopes: cadences:write
Required capability: queue_ops; data sensitivity: redacted
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 parameters:

- `body` (object, required)
- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_cadences_pause` (~169 tokens)

Pause a lead's cadence

Pause (cancel) a lead's running rescue cadence with an optional reason.

Luca operation: POST /api/leads/{id}/cadence/pause
Required scopes: cadences:write
Required capability: draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `body` (object, required)
- `id` (string, required)
- `idempotencyKey` (string): Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_funnel` (~123 tokens)

Read the funnel

Pipeline funnel stage counts with period and channel filters. Returns counts and conversion rates for each funnel stage plus period-over-period deltas.

Luca operation: GET /api/analytics/funnel
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_revenue` (~119 tokens)

Read revenue

Revenue attribution and plan ROI for a period. Returns total revenue, ROI, and a per-channel revenue breakdown.

Luca operation: GET /api/analytics/revenue
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_speedImpact` (~136 tokens)

Read what reply speed is worth

Fast-vs-slow first-reply booking-rate impact for a period. Returns fast- and slow-reply conversion rates, a lost-opportunity estimate, and the peak performance reply window.

Luca operation: GET /api/analytics/speed-impact
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_forecast` (~115 tokens)

Read the revenue forecast

Point-in-time pipeline revenue forecast with on-track, optimistic, and conservative scenarios based on pipeline stage probabilities and historical conversion rates.

Luca operation: GET /api/analytics/forecast
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_callIntelligence` (~153 tokens)

Read call intelligence

Post-call intelligence for a period: show rate, close rate, average rating and rating distribution, call-to-close lag, repeat-call cohort, day-of-week and call-sequence show rates, and surprise patterns, derived from post-call events and coach-recorded outcomes.

Luca operation: GET /api/analytics/call-intelligence
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_callIntelligenceCalls` (~129 tokens)

List calls behind call intelligence

Most recent completed calls with a generated summary, newest first: the coach-facing summary, attendance outcome, rating, and lead name.

Luca operation: GET /api/analytics/call-intelligence/calls
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_ghostedLeads` (~129 tokens)

List ghosted leads

Ghosted-lead counts, rescue-recovery rate, lost-revenue estimate, and top conversation-killer clusters for a period.

Luca operation: GET /api/analytics/ghosted-leads
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_trustScore` (~128 tokens)

Read the trust score

Draft approval, edit, and rejection rates plus auto-send gate state (auto-send flag and any open human-approval window) for a period.

Luca operation: GET /api/analytics/trust-score
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_leadScore` (~158 tokens)

Read a lead's score

Predictive booking-likelihood score (0-100) for one lead from the coach's trained bucket-rate model, with a confidence tier and the top contributing features. Honest about insufficient data: an under-trained model returns a null score and low confidence instead of a fabricated number.

Luca operation: GET /api/analytics/lead-score/{leadId}
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `leadId` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_lossReasons` (~159 tokens)

Read why deals are lost

Category breakdown of automatic 'why you lost' analyses for a period: count and estimated lost revenue per category (price objection, ghosted after a call-to-action, competitor, slow reply, bad fit, other), derived from a per-lead loss analysis generated when a lead goes silent or lost.

Luca operation: GET /api/analytics/loss-reasons
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_contentAttribution` (~158 tokens)

Read which content brings leads

Per-content rollup (leads touched, qualified, booked, revenue) of attributed touches for a period. Content is attributed automatically from an Instagram comment or Story reply that carries a real media id, or tagged manually; an honest empty list means no content is attributed yet, not zero performance.

Luca operation: GET /api/analytics/content-attribution
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_contentPerformance` (~161 tokens)

Read content performance

Per-post rollup (reach, engagement rate, likes/comments/saves/shares, attributed leads/bookings/revenue) for each Instagram post, reel, story, or carousel over a period. Insight fields stay null until the coach's account grants Instagram insights access — read that as not connected yet, not zero engagement.

Luca operation: GET /api/analytics/content-performance
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_topicPerformance` (~154 tokens)

Read topic performance

Weekly rollup by normalized content topic (post count, average engagement rate, attributed leads/bookings/revenue per theme). Defaults to the most recently computed week when weekStart is omitted; an empty items list is the honest, expected state until content topics are extracted, not zero performance.

Luca operation: GET /api/analytics/topic-performance
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_benchmarks` (~160 tokens)

Read peer benchmarks

This coach's own cross-coach benchmark percentiles (e.g. 'top 15% for response speed among fitness coaches'), never another coach's data. `comingSoon: true` with an empty metrics list is the honest, expected state until the cross-coach benchmark pipeline populates this coach's row — never a fabricated comparison.

Luca operation: GET /api/analytics/benchmarks
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_insights` (~211 tokens)

List insights

The coach's proactive-insights feed (metric drops/spikes, opportunities, risks, milestones) surfaced by the daily insight-detection cron, newest first. Optionally filter to one status via the status query param (e.g. unread). An empty items list is the honest, expected state for a coach nothing has been flagged for yet — never a fabricated alert.

Luca operation: GET /api/insights
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `maxPages` (integer): Max pages the server auto-fetches and merges (default 10, hard cap 50). If more remain, the result is marked truncated with a nextCursor to continue.
- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_trends` (~149 tokens)

Read trends

The coach's weekly metrics as a trend series (leads, qualified, booked, revenue, and rates week over week) for charting direction of travel. An empty series is the honest, expected state until enough weeks of history accrue — never fabricated points.

Luca operation: GET /api/analytics/trends
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_recommendations` (~150 tokens)

Read recommendations

The coach's active prescriptive recommendations for a week (what to change and why), generated weekly from detected insights and deduped by title. An empty list is the honest, expected state when nothing is recommended for the window — never a fabricated action.

Luca operation: GET /api/analytics/recommendations
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_benchmarkConsent` (~136 tokens)

Check benchmark sharing consent

The coach's cross-coach benchmark opt-in state (whether this workspace contributes to and sees anonymized niche cohort percentiles). Read-only; the opt-in is changed from the app, not through this key surface.

Luca operation: GET /api/analytics/benchmark-consent
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_learningInsights` (~167 tokens)

Read what Luca has learned

Read-only rollup of the agent-improvement signals mined from post-call feedback for a period: total/applied/pending signal counts, a per-type breakdown (qualification, objection handling, lead quality, general), and recent example notes. An empty rollup is the honest, expected state until the coach submits call feedback — never fabricated learning.

Luca operation: GET /api/analytics/learning-insights
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_crmSyncHealth` (~145 tokens)

Check CRM sync health

Aggregate CRM-sync health for the coach's post-call summaries: counts of synced, pending, local-only, failed, and permanently-failed pushes. All zeros is the honest, expected state for a coach with no synced summaries yet — never a fabricated status.

Luca operation: GET /api/analytics/crm-sync-health
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_objections` (~178 tokens)

Read objection patterns

Objection-bucket rollup over the review queue's qualifier signals for a period (price, timing, trust, fit, authority, smokescreen): per-bucket occurrence count, distinct leads, handled rate, wins, and up to three of the most frequent verbatim lead quotes. Filter by channel. An empty bucket list is the honest, expected state until objections are raised — never fabricated.

Luca operation: GET /api/analytics/objections
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_analytics_objectionDrilldown` (~188 tokens)

Drill into one objection type

Per-conversation drilldown for one objection bucket: one row per matching conversation with the lead's display name, the verbatim objection quote, whether the draft was sent without an edit, and the lead's most recent call outcome. Bounded by a limit with a hasMore truncation flag; an empty list is the honest, expected state for a bucket with no conversations in the window.

Luca operation: GET /api/analytics/objections/{type}
Required scopes: analytics:read
Required capability: read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.

Input parameters:

- `query` (object)
- `type` (string, required)
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

Output parameters:

- `result` (object)

### `luca_triage_inbox` (~162 tokens)

Triage the review queue

Return the coach's prioritized reply queue: pending drafts with lead context and, for the top items, why Luca drafted what it drafted. Start every review session here, then act on an item with luca_approve_and_send, luca_draft_reply, or luca_reviewQueue_reject. Example: call with { explainTop: 3 } to get the queue plus explanations for the three most urgent drafts.

Input parameters:

- `explainTop` (integer): How many of the top items to attach a full explanation to (default 3).
- `limit` (integer): Max queue items to return (default 20).
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_morning_report` (~84 tokens)

Get the morning digest

Return the coach's structured last-24h review-queue digest: queued drafts with status and confidence, plus counts by status. No model call — summarize it client-side. Example: call with {} at the start of the day.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_find_leads` (~133 tokens)

Find leads

Search the coach's leads by free-text query and optional channel. Use this to locate a lead before drafting, booking, or flagging. Example: call with { query: "maria instagram" } to find Maria's Instagram lead.

Input parameters:

- `channel` (string): Optional channel filter (telegram, instagram, messenger, whatsapp).
- `limit` (integer): Max results (default 10).
- `query` (string, required): Free-text search: name, handle, or keyword.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_flag_for_human` (~182 tokens)

Flag a lead for human attention

Add a note to a lead, tagged [needs-human], that the coach sees on the lead's timeline. This is an ordinary note with a prefix — it does not route, alert, or reprioritize anything. Use when a conversation needs judgment an agent should not exercise (payment claims, distress, legal), and tell the coach directly if it is urgent. Example: call with { leadId, reason: "lead mentioned a refund dispute" }.

Input parameters:

- `idempotencyKey` (string): Reuse the same key when retrying this exact flag.
- `leadId` (string, required): The lead to flag.
- `reason` (string, required): Why a human should look — shown to the coach verbatim.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_draft_reply` (~162 tokens)

Draft a reply for a lead

Draft a voice-matched reply for a lead on demand and queue it for review — the middle step of the reply loop (triage → draft → approve). Optional guidance steers tone or content. Nothing is sent; approve it with luca_approve_and_send. Example: call with { leadId, guidance: "keep it short and warm" }.

Input parameters:

- `guidance` (string): Optional steer for tone or content of the draft.
- `idempotencyKey` (string): Reuse the same key when retrying this exact draft.
- `leadId` (string, required): The lead to draft a reply for.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_approve_and_send` (~210 tokens)

Approve a drafted reply and send it

Approve a pending review-queue draft and dispatch it through the lead's channel. THIS SENDS A REAL MESSAGE TO A REAL PERSON — only call it after a human has reviewed and intends to send. Pass confirm: true to proceed. Optional finalBody replaces the draft text before sending. Example: { reviewQueueId, confirm: true }.

Input parameters:

- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `finalBody` (string): Optional edited body to send instead of the drafted text.
- `idempotencyKey` (string): Reuse the same key when retrying this exact approval.
- `reviewQueueId` (string, required): The review-queue item to approve.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_book_call` (~183 tokens)

Book a call with a lead

Book a lead into a slot the provider confirms is open. Checks availability first and returns the open slots instead of booking when the requested one is taken. Example: call with { leadId, slotAt: "2026-07-14T15:00:00Z" } after the lead agreed to a time.

Input parameters:

- `idempotencyKey` (string): Reuse the same key when retrying this exact booking.
- `leadId` (string, required): The lead to book.
- `provider` (string): The coach's booking provider. Pass it when the coach is not on Calendly, or the availability check reads the wrong calendar.
- `slotAt` (string, required): ISO-8601 start time for the call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_reschedule_call` (~246 tokens)

Move a call to a new time

Move a booked call to a new time and hand back a fresh reschedule link for the lead. Checks the new slot is open first and returns the open slots instead of moving the call when it is taken. Example: call with { bookingId, slotAt: "2026-07-16T15:00:00Z" } after the lead asked to push the call. The lead is not messaged — send them the link yourself, or draft the message through the review queue.

Input parameters:

- `bookingId` (string, required): The booking to move.
- `expiresInHours` (integer): How long the new reschedule link stays usable. Defaults to 168 hours.
- `idempotencyKey` (string): Reuse the same key when retrying this exact reschedule.
- `provider` (string): The coach's booking provider. Pass it when the coach is not on Calendly, or the availability check reads the wrong calendar.
- `slotAt` (string, required): ISO-8601 start time to move the call to.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_post_call_queue` (~111 tokens)

List the post-call work

Return everything waiting on the coach after a call: calls that still need a report on how they went, and attended calls with no revenue outcome recorded. The two halves are tracked separately by the API, so a call can sit on one list and not the other. Close an item with luca_close_call_loop. Example: call with {} after a day of calls.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_close_call_loop` (~433 tokens)

Close the loop on a call

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_outcomeReasons_list, or open with the next follow-up. Nothing is sent to the lead. Example: { bookingId, attendance: "completed", outcome: "won", amountMinor: 250000, currency: "USD" }.

Input parameters:

- `amountMinor` (integer): Deal value in minor units (cents) when outcome is won.
- `attendance` (string, required): What happened to the call itself.
- `bookingId` (string, required): The booking whose call just happened.
- `currency` (string): ISO-4217 currency for amountMinor, uppercase.
- `expectedVersion` (integer): The outcome version you read, when correcting an earlier outcome. A stale version returns 409 with the current one.
- `followUpTimezone` (string): Required when outcome is open: IANA timezone the follow-up is scheduled in.
- `idempotencyKey` (string): Reuse the same key when retrying this exact report. Both writes are scoped by route, so one key covers the pair.
- `lossReasonDefinitionId` (string): Required when outcome is lost: a reason id from luca_bookings_outcomeReasons_list.
- `nextFollowUpAt` (string): Required when outcome is open: ISO-8601 follow-up time.
- `notes` (string): The coach's notes on the call, stored on the call event.
- `outcome` (string): The revenue outcome. Leave it off to report attendance only and record the money later.
- `outcomeNote` (string): Note stored on the revenue outcome, separate from notes.
- `rating` (integer): The coach's 1-5 rating of the call.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_rescue_silent_leads` (~213 tokens)

Enroll silent leads into the rescue cadence

Enroll one or more silent leads into the multi-day rescue cadence. THIS STARTS OUTBOUND TOUCHES to real leads over the coming days — pass confirm: true to proceed. cadenceTemplate is light | standard | aggressive (default standard). Example: { leadIds: ["..."], cadenceTemplate: "standard", confirm: true }.

Input parameters:

- `cadenceTemplate` (string): Cadence intensity (default standard).
- `confirm` (boolean): This tool has a real-world side effect: it messages a real lead, starts outbound touches, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
- `idempotencyKey` (string): Reuse the same key when retrying this exact enrollment.
- `leadIds` (array, required): Lead ids to enroll (max 100). Non-tenant ids are skipped.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_pause_cadence` (~130 tokens)

Pause a lead's rescue cadence

Cancel a lead's running rescue cadence so no further touches are sent. Safe to call twice (a no-op once cancelled). Example: call with { leadId, reason: "lead replied elsewhere" }.

Input parameters:

- `idempotencyKey` (string): Reuse the same key when retrying this exact pause.
- `leadId` (string, required): The lead whose cadence to pause.
- `reason` (string): Optional operator reason, stored on the cadence.
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_analytics_rollup` (~101 tokens)

Get campaign and broadcast analytics

Roll up performance across the coach's campaigns (per-campaign analytics for up to 5 recent campaigns) and recent broadcasts. Example: call with {} for the default rollup, or { campaignLimit: 3 }.

Input parameters:

- `campaignLimit` (integer): How many recent campaigns to include (default 5).
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_analytics_magic_monday` (~104 tokens)

Get the Magic Monday report

Return the coach's weekly business intelligence report: pipeline funnel, revenue and ROI, response-speed impact, a point-in-time revenue forecast, and call intelligence (show/close rates), all for the current week. Composes five analytics reads into a single call. Example: call with {} on Monday morning for the week's report.

Input parameters:

- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

### `luca_analytics_deep_dive` (~255 tokens)

Run a deep-dive analytics investigation

Answer a specific business question by composing all seven analytics reads in one call: pipeline funnel, revenue and ROI, response-speed impact, a point-in-time revenue forecast, call intelligence (show/close rates), ghosted-lead recovery, and coach trust/auto-send status. Broader than luca_analytics_magic_monday (which is the fixed weekly report); use this when the coach asks a specific question that needs cross-referencing several of these numbers together. Example: call with {question: "why did close rate drop this month?", period: "this_month"}.

Input parameters:

- `period` (string): Period for the period-scoped reads (funnel, revenue, speedImpact, callIntelligence, ghostedLeads, trustScore). Forecast ignores this — it is always point-in-time. Defaults to this_month.
- `question` (string, required): The coach's specific question driving this investigation, e.g. 'why did close rate drop this month?'. Not sent to any API — captured so the caller's reasoning stays anchored to what the coach actuall…
- `workspaceId` (string): Optional Luca workspace id override.
- `workspaceSlug` (string): Optional Luca workspace slug override.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/setluca-luca-mcp/setluca-mcp#diagnostics

## Score history

- 2026-08-22: 48
- 2026-08-21: 48

## Links

- npm package: https://www.npmjs.com/package/@setluca/mcp
- Socket report: https://socket.dev/npm/package/@setluca/mcp
- Website: https://setluca.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/setluca-luca-mcp/setluca-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/setluca-luca-mcp/setluca-mcp.json
- HTML version of this page: https://verifymcp.io/servers/setluca-luca-mcp/setluca-mcp
