https://app.lucenthq.com/api/mcp and scoped automatically to the
organization that owns the bearer token. There is no way to pass an
orgId argument — your token IS the scope.
Every tool returns a single JSON-stringified payload in a text content
block. The shapes below are what you’ll see once the client parses that
JSON.
Every tool also accepts an optional prompt argument: the user request
that caused the tool call. Clients should pass it through when they can —
it gives the audit trail context for why an agent read or changed
something.
list_signals
List signals configured for the organization, with match counts and
last-match timestamps.
Arguments
Returns
createdAt descending. matchCount is a LEFT JOIN count of
rows in signal_instances; lastMatchAt is the most recent instance
timestamp or null if the signal has never matched.
list_issues
List issues for the organization, optionally filtered by status.
Arguments
Returns
createdAt descending. sessionCount is the number of session
replays that triggered this issue. linearIssueUrl and
linearIssueIdentifier are populated when the issue has been promoted to
a Linear ticket, otherwise null.
get_issue
Fetch a single issue by ID, scoped to the organization.
Arguments
Returns
isError: true with a “No issue found with id ” message
if the issue doesn’t exist or belongs to a different organization.
Unlike list_issues, get_issue includes stepsToReplicate and
aiVerified — heavier fields that aren’t worth returning in bulk.
update_issue
Update an issue’s status — mark it resolved after a fix ships, ignore a
false positive, or reopen a regression. This is the only write tool, and
the only one that requires the write:issues scope.
Arguments
Returns
The updated issue, in the same shape as
get_issue.
Returns isError: true with Missing required scope: write:issues if the
token lacks the scope, or No issue found with id {issueId} if the issue
doesn’t exist or belongs to a different organization.
The same operation is available over REST as
PATCH /api/v1/issues/{issueId}.
list_insights
List the most recent insights (periodic session summaries) for the
organization.
Arguments
Returns
createdAt descending. Each row covers the window from
intervalStart to intervalEnd and summarizes sessionsCount sessions
that completed in that window. The content field is the structured AI
summary — shape varies by insight type.
Limits and defaults
If you need more than the max for a single tool call, filter by
status
(for list_issues) or fetch specific records individually.
Scopes
API keys get
write:issues by checking Allow issue status updates at
creation; keys without it can use the four read tools but update_issue
returns a missing-scope error. OAuth clients must request write:issues
explicitly — the default OAuth scope is read:lucent.
Organization isolation
Every tool call compiles to a SQL query withWHERE org_id = ? where
org_id comes exclusively from the bearer token’s auth context. No
tool accepts an organization argument from the client, and get_issue
compounds the ID check with the org check so an issue UUID from another
organization will never resolve.
If you need access to a different organization, sign in to that
organization in the dashboard and mint a new token there.