Skip to main content
Glama
setluca

SetLuca

Official
by setluca

Publish a campaign

luca_campaigns_publish
Destructive

Publish a campaign draft as an immutable version so new enrollments target real leads. Confirm: true is required; check provider capabilities first.

Instructions

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.

Input Schema

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

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely new context beyond them: published versions are immutable, live enrollments reach real leads, a capability-gated failure mode, the Idempotency-Key requirement, and scope requirements. Minor redundancy in restating the destructive/confirm behavior that annotations and the confirm schema field already carry keeps it at 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core behavior in the first sentence, and the operational metadata (operation, scopes, idempotency, confirm, workspace override) is compact. Some lines duplicate what annotations and the confirm schema field already state, which trims it below 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. The description covers the operation path, required scopes, idempotency behavior, the destructive confirm gate, workspace override, and the provider-capability precondition — everything needed to invoke this tool correctly under its complexity.

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

Parameters3/5

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

Schema description coverage is 80%, so the baseline is 3. The schema already documents confirm, workspaceId, workspaceSlug, and idempotencyKey; the description's coverage of idempotencyKey ('or the server will generate one') and workspace override largely repeats it. Only 'id' gains meaning, inferred from the documented path POST /api/campaigns/{id}/publish.

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

Purpose5/5

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

States a specific verb+resource+effect: 'Freeze the draft as a new immutable version and point new enrollments at it.' An agent can distinguish this from siblings like luca_campaigns_set_status, luca_campaigns_draft_update, or luca_campaigns_versions_list without opening any schema.

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

Usage Guidelines4/5

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

Gives an explicit precondition and routes to a sibling: 'Publish is blocked when the target provider cannot do something the campaign needs, so read the provider capabilities first' (luca_campaigns_provider_capabilities). It also states the confirm: true gate. It does not, however, say when NOT to publish or contrast with set_status/draft_update, so it stops short of a 5.

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

Deploy Server

Other Tools