Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.setluca/luca-mcp

NPM · @SETLUCA/MCP · 2 COMPONENTS

SetLuca DM sales from any MCP client: 208 API tools and 15 task tools for leads, replies, calls.

0 this week 89 Trust /100

Last scanned (11 hours ago)

Scores higher than 93% of npm servers

Category CRM and Sales

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 4 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to setluca/luca-mcp). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 11 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability75
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 39879 tokens (~176/item across 226 items; 223 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management62
  • Stability check failed: the tool surface changed between 0.2.1 and 0.6.0: 73 tool removals, 3 breaking changes, 98 additions. See how to fix → Fail
Tool Coverage92
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 74% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety98
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 13 of 14 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "luca_conversations_send_status" implies "send" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 225 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 25 Oct 26 +26
    • Malware scan: unverified → pass ▲ security
    • Known CVEs: unverified → pass ▲ security
    • Dependency health: unverified → 1.00 ▲ functional
  • 24 Oct 26 −12
    • Known CVEs: pass → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Dependency health: 1.00 → unverified ▼ functional
    • Package version: 0.5.2 → 0.6.0 functional
  • 23 Oct 26 −4
    • Malware scan: pass → unverified ▼ security
    • Known CVEs: unverified → pass ▲ security
    • Dependency health: unverified → 1.00 ▲ functional
    • Package version: 0.5.1 → 0.5.2 functional
  • 22 Oct 26 −6
    • Known CVEs: pass → unverified ▼ security
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Source repository: fail → pass ▲ security
    • Schema quality: 35121 → 39994 ▼ functional
    • Schema quality: 35121 → 40034 ▼ functional
    • Dependency health: 1.00 → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Destructive annotations: 13 of 14 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "luca_conversations_send_status" implies "send" and declares readOnlyHint instead, contradicting what its own name says it does. functional
    • Package version: 0.4.0 → 0.5.1 functional
    • Package version: 0.4.0 → 0.5.0 functional
  • 19 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63.

  • 17 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 56.

  • 15 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 46 to 50.

  • 14 Oct 26 +37
    • Stability: unverified → fail ▼ security
    • Injection markers: unverified → pass ▲ security
    • Judged manipulation: unverified → pass ▲ security
    • Schema quality: 151 → 170 ▼ functional
    • Tool coverage: 92% → 100% ▲ functional
    • Tool coverage: unverified → 100 ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Package version: 0.2.1 → 0.4.0 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@setluca/mcp@0.6.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo setluca/luca-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/setluca/luca-mcp/.github/workflows/publish-mcp.yml@refs/tags/mcp-v0.6.0
Rekor log index 3437389699
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:8a88197a6a88d369331b3b23d0112097d6bd678e1a3823ca7a6158f079d41f81855c75cd0439b19d785eee85d3c80035ec73726dbd8d26231deecbc50

Background: How many MCP packages publish verified provenance →

Dependencies 4 packages
Packages resolved 4
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 223 exposed · ~39,605 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
luca_bookings_provider_sync_retry ~275

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 OAuth scope: luca: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.

NameTypeReqDescription
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_providers_get ~115

List the event types and calendars in one connected provider account. Luca operation: GET /api/bookings/providers/{provider} Required scopes: bookings:read Required OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
providerstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_providers_list ~113

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 OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_recovery_get ~141

Read a booking's no-show recovery: whether it is active, paused for review, stopped, or done, which follow-up is next, and when the last one went out. Luca operation: GET /api/bookings/{id}/recovery Required scopes: bookings:read Required OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
idstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_recovery_stop ~220

Stop a booking's no-show recovery so no further follow-up is scheduled. A follow-up already being sent may still arrive. Send recovery.id as recoveryCaseId and recovery.outcomeVersion from luca_bookings_recovery_get; a recovery that changed since that read returns 409 booking_recovery_changed. Luca operation: POST /api/bookings/{id}/recovery/stop Required scopes: bookings:write Required OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobjectyes–
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_attendees ~123

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 OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
idstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_attendees_add ~185

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobjectyes–
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_attendees_remove ~193

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
attendeeIdstringyes–
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_create ~190

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobjectyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_delete ~169

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_list ~108

List the call types a booking can use, with their duration and provider. Luca operation: GET /api/bookings/types Required scopes: bookings:read Required OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_schedule ~123

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 OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
idstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_schedule_replace ~202

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobjectyes–
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_types_update ~182

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobjectyes–
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_bookings_update ~283

Reschedule or update booking status. A Google Calendar or Cal.com booking changes on that calendar too, and the calendar can email the lead about it. Luca operation: PATCH /api/bookings/{id} Required scopes: bookings:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobjectyes–
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_broadcasts_approve ~167

Approve a safe broadcast draft and snapshot recipients. Luca operation: POST /api/broadcasts/{id}/approve Required scopes: broadcasts:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobjectyes–
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_broadcasts_cancel ~170

Cancel a draft, approved, running, paused, or failed broadcast. Luca operation: POST /api/broadcasts/{id}/cancel Required scopes: broadcasts:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobject––
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_broadcasts_create ~157

Create a broadcast draft. Body requires campaignId and name. Luca operation: POST /api/broadcasts Required scopes: broadcasts:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobjectyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_broadcasts_get ~106

Get broadcast detail. Luca operation: GET /api/broadcasts/{id} Required scopes: broadcasts:read Required OAuth scope: luca:read; data sensitivity: full_content Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
idstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_broadcasts_launch ~261

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

NameTypeReqDescription
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_broadcasts_list ~154

List broadcasts. Query supports limit, cursor, and status. Luca operation: GET /api/broadcasts Required scopes: broadcasts:read Required OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
maxPagesinteger–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.
queryobject––
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_broadcasts_pause ~166

Pause a running broadcast with an optional operator reason. Luca operation: POST /api/broadcasts/{id}/pause Required scopes: broadcasts:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobject––
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_broadcasts_preview ~164

Refresh broadcast recipient and sample-message preview. Luca operation: POST /api/broadcasts/{id}/preview Required scopes: broadcasts:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobject––
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_broadcasts_retry ~272

Retry failed broadcast recipients after operator review. Re-sends messages to leads. Luca operation: POST /api/broadcasts/{id}/retry Required scopes: broadcasts:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobject––
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_cadences_pause ~174

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobject––
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_cadences_rescue_start ~269

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 OAuth scope: luca: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.

NameTypeReqDescription
bodyobjectyes–
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_call_events_backfill ~183

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 OAuth scope: luca: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.

NameTypeReqDescription
bookingIdstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_by_booking ~132

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 OAuth scope: luca:read; data sensitivity: full_content Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bookingIdstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_by_lead ~130

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 OAuth scope: luca:read; data sensitivity: full_content Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
leadIdstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_feedback ~320

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. A no_show can start recovery messages to the lead, so it needs the queue_ops grant and confirm: true. Luca operation: POST /api/call-events/{id}/feedback Required scopes: call_events:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Destructive when outcome is no_show (can start recovery messaging): 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.

NameTypeReqDescription
bodyobjectyes–
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_get ~118

Read one call event: outcome, rating, summary, and CRM sync state. Luca operation: GET /api/call-events/{id} Required scopes: call_events:read Required OAuth scope: luca:read; data sensitivity: full_content Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
idstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_needing_feedback ~117

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 OAuth scope: luca:read; data sensitivity: full_content Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_push_to_crm ~279

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 OAuth scope: luca:full; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_summary_generate ~166

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 OAuth scope: luca: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.

NameTypeReqDescription
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_summary_replace ~282

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 OAuth scope: luca:full; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobjectyes–
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_call_events_undo_outcome ~180

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 OAuth scope: luca: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.

NameTypeReqDescription
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_campaigns_analytics ~118

Read campaign attribution and performance analytics. Luca operation: GET /api/campaigns/{id}/analytics Required scopes: analytics:read Required OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
idstringyes–
queryobject––
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_campaigns_comment_events_list ~159

List matched, suppressed, blocked, and replayed comment automation events. Luca operation: GET /api/campaigns/comment-events Required scopes: campaigns:read Required OAuth scope: luca:read; data sensitivity: full_content Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
maxPagesinteger–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.
queryobject––
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_campaigns_comment_simulation_suite_run ~198

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobject––
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_campaigns_create ~157

Create a campaign draft. Body requires name and may include graph. Luca operation: POST /api/campaigns Required scopes: campaigns:write Required OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobjectyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_campaigns_draft_update ~163

Autosave a campaign draft. Luca operation: PATCH /api/campaigns/{id}/draft Required scopes: campaigns:write Required OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobjectyes–
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_campaigns_duplicate ~176

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 OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_campaigns_enroll ~281

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 OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
bodyobjectyes–
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_campaigns_enrollments_list ~162

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

NameTypeReqDescription
idstringyes–
maxPagesinteger–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.
queryobject––
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_campaigns_enrollments_timeline ~144

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 OAuth scope: luca:read; data sensitivity: full_content Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
enrollmentIdstringyes–
idstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
provenanceobject––
resultobjectyes–

No examples provided.

luca_campaigns_generate ~183

Build a campaign plan from a brief with fixed rules, not an AI model. Nothing is created or published: create the draft from the plan, review it, and publish it yourself. Luca operation: POST /api/campaigns/generate Required scopes: campaigns:write Required OAuth scope: luca:queue_ops; 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.

NameTypeReqDescription
bodyobjectyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_campaigns_get ~109

Get campaign draft and latest published version. Luca operation: GET /api/campaigns/{id} Required scopes: campaigns:read Required OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
idstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_campaigns_list ~153

List campaigns. Query supports limit, cursor, and status. Luca operation: GET /api/campaigns Required scopes: campaigns:read Required OAuth scope: luca:read; data sensitivity: redacted Does not require idempotency. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

NameTypeReqDescription
maxPagesinteger–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.
queryobject––
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_campaigns_provider_capabilities ~116

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

NameTypeReqDescription
idstringyes–
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

luca_campaigns_publish ~302

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 OAuth scope: luca: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.

NameTypeReqDescription
confirmboolean–This tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events…
idstringyes–
idempotencyKeystring–Stable key for safe retries. If omitted, the MCP server generates a unique key for this call.
workspaceIdstring–Optional Luca workspace id override.
workspaceSlugstring–Optional Luca workspace slug override.
NameTypeReqDescription
resultobjectyes–

No examples provided.

Install

How do I install the io.github.setluca/luca-mcp server?

io.github.setluca/luca-mcp runs locally as an npm package, launched with npx -y @setluca/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @setluca/mcp

# add to Claude Code
claude mcp add setluca-luca-mcp -- npx -y @setluca/mcp
Common questions

What is the io.github.setluca/luca-mcp server?

io.github.setluca/luca-mcp is listed in the public MCP registry as io.github.setluca/luca-mcp. SetLuca DM sales from any MCP client: 208 API tools and 15 task tools for leads, replies, calls. This page covers its npm package (@setluca/mcp).

Is the io.github.setluca/luca-mcp server safe to use?

io.github.setluca/luca-mcp scores 89 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.setluca/luca-mcp server expose?

io.github.setluca/luca-mcp exposes 223 tools: luca_capabilities_get, luca_leads_list, luca_leads_get, luca_leads_explain, luca_leads_create, and 218 more. Their descriptions and schemas cost roughly 39,605 tokens of context every time the server is loaded.

Is the io.github.setluca/luca-mcp server still maintained?

io.github.setluca/luca-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.setluca/luca-mcp server under?

io.github.setluca/luca-mcp declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.