openapi: 3.1.0
info:
title: Luciq MCP Server
description: >-
The Luciq MCP Server is a remote Model Context Protocol server hosted at
api.luciq.ai/api/mcp that exposes mobile observability data — applications,
crashes, crash patterns, occurrences, app hangs, bugs, and store reviews —
as agent-callable tools. This OpenAPI document models the underlying read
operations the MCP tools route to so they can be discovered, governed, and
reused outside of an MCP client. Transport in production is Streamable
HTTP over HTTPS (TLS 1.2+); authentication is OAuth 2.0 with Dynamic
Client Registration or a personal access token issued from the Luciq
dashboard. Available on all Luciq plans with no extra setup.
version: '1.0'
contact:
name: Luciq Support
url: https://docs.luciq.ai/product-guides-and-integrations/product-guides/ai-features/luciq-mcp-server
email: [email protected]
termsOfService: https://luciq.ai/terms
license:
name: Proprietary
url: https://luciq.ai/terms
externalDocs:
description: Luciq MCP Tools Reference
url: https://docs.luciq.ai/product-guides-and-integrations/product-guides/ai-features/luciq-mcp-server/mcp-tools-reference
servers:
- url: https://api.luciq.ai/api/mcp
description: Luciq MCP Server (Streamable HTTP)
tags:
- name: Applications
description: >-
Enumerate the mobile applications accessible to the authenticated
account. Applications are the root scoping primitive for every other
MCP tool in this surface.
- name: Crashes
description: >-
Inspect grouped crashes for a Luciq application, including occurrence
frequency, affected users, root cause hints, and aggregation patterns
by device, OS, app version, view, app status, and experiment.
- name: Occurrences
description: >-
Drill down from a crash group into individual occurrence ULIDs and the
full per-occurrence context: device, OS, memory, storage, app status,
user identity, and log URLs.
- name: App Hangs
description: >-
Inspect grouped UI freeze (hang) events for a Luciq application,
filterable by date, status, app version, device, OS, and current view.
- name: Bugs
description: >-
Read user-reported bugs submitted via the Luciq SDK report flow,
filterable by status, priority, and app version, with full detail
including logs, user data, and device metadata for reproduction.
- name: Reviews
description: >-
Read app store, native-prompt, and custom-prompt reviews captured
through the Luciq SDK, with filters for rating, version, country,
device, prompt type, and OS.
security:
- oauth2: []
- personalAccessToken: []
paths:
/applications:
get:
operationId: listApplications
summary: List Applications
description: >-
Returns all applications accessible to the authenticated account.
Backs the list_applications MCP tool.
tags:
- Applications
parameters:
- name: platform
in: query
required: false
description: Filter applications by mobile platform.
schema:
type: string
enum: [ios, android, react_native, flutter]
- name: limit
in: query
required: false
schema:
type: integer
default: 50
minimum: 1
maximum: 200
- name: offset
in: query
required: false
schema:
type: integer
default: 0
minimum: 0
responses:
'200':
description: A page of applications.
content:
application/json:
schema:
type: object
properties:
applications:
type: array
items:
$ref: '#/components/schemas/Application'
total:
type: integer
'401':
$ref: '#/components/responses/Unauthorized'
/applications/{slug}/crashes:
get:
operationId: listCrashes
summary: List Crashes
description: >-
Returns crash groups for an application with occurrence frequency,
affected users, and cause hints. Backs the list_crashes MCP tool.
tags:
- Crashes
parameters:
- $ref: '#/components/parameters/Slug'
- $ref: '#/components/parameters/Mode'
- name: date_ms
in: query
required: false
schema:
type: integer
format: int64
- name: status_id
in: query
required: false
schema:
type: string
- name: devices
in: query
required: false
schema:
type: array
items:
type: string
- name: os_versions
in: query
required: false
schema:
type: array
items:
type: string
- name: app_versions
in: query
required: false
schema:
type: array
items:
type: string
- name: current_views
in: query
required: false
schema:
type: array
items:
type: string
- name: teams
in: query
required: false
schema:
type: array
items:
type: string
- name: platform
in: query
required: false
schema:
type: string
enum: [ios, android, react_native, flutter]
responses:
'200':
description: Crash groups for the application.
content:
application/json:
schema:
type: object
properties:
crashes:
type: array
items:
$ref: '#/components/schemas/Crash'
'401':
$ref: '#/components/responses/Unauthorized'
/applications/{slug}/crashes/{number}:
get:
operationId: getCrashDetails
summary: Get Crash Details
description: >-
Returns everything Luciq knows about a single crash — stack, versions,
status, severity. Backs the crash_details MCP tool.
tags:
- Crashes
parameters:
- $ref: '#/components/parameters/Slug'
- $ref: '#/components/parameters/Mode'
- $ref: '#/components/parameters/Number'
responses:
'200':
description: Crash group detail.
content:
application/json:
schema:
$ref: '#/components/schemas/Crash'
'404':
$ref: '#/components/responses/NotFound'
/applications/{slug}/crashes/{number}/patterns:
get:
operationId: getCrashPatterns
summary: Get Crash Patterns
description: >-
Groups crash occurrences by a pivot key — device, OS, app version,
current view, app status, or experiments — to reveal concentration
patterns. Backs the crash_patterns MCP tool.
tags:
- Crashes
parameters:
- $ref: '#/components/parameters/Slug'
- $ref: '#/components/parameters/Mode'
- $ref: '#/components/parameters/Number'
- name: pattern_key
in: query
required: true
schema:
type: string
enum: [devices, oses, app_versions, current_views, app_status, experiments]
responses:
'200':
description: Pattern aggregations.
content:
application/json:
schema:
type: object
properties:
pattern_key:
type: string
buckets:
type: array
items:
type: object
properties:
value:
type: string
count:
type: integer
/applications/{slug}/crashes/{number}/occurrences:
get:
operationId: listOccurrenceTokens
summary: List Occurrence Tokens
description: >-
Lists individual crash occurrence ULIDs for drilling down into specific
user/device sessions. Backs the list_occurrence_tokens MCP tool.
tags:
- Occurrences
parameters:
- $ref: '#/components/parameters/Slug'
- $ref: '#/components/parameters/Mode'
- $ref: '#/components/parameters/Number'
- name: foreground
in: query
required: false
schema:
type: boolean
- name: device
in: query
required: false
schema:
type: string
- name: os_version
in: query
required: false
schema:
type: string
- name: app_version
in: query
required: false
schema:
type: string
- name: experiments
in: query
required: false
schema:
type: array
items:
type: string
- name: view
in: query
required: false
schema:
type: string
- name: date_from_ms
in: query
required: false
schema:
type: integer
format: int64
- name: date_to_ms
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: Occurrence ULIDs.
content:
application/json:
schema:
type: object
properties:
ulids:
type: array
items:
type: string
format: ulid
/applications/{slug}/crashes/{number}/occurrences/{ulid}:
get:
operationId: getOccurrenceDetails
summary: Get Occurrence Details
description: >-
Returns the exact context of one crash occurrence: device, OS, memory,
storage, app status, user, and log URLs. Backs the
get_occurrence_details MCP tool.
tags:
- Occurrences
parameters:
- $ref: '#/components/parameters/Slug'
- $ref: '#/components/parameters/Mode'
- $ref: '#/components/parameters/Number'
- name: ulid
in: path
required: true
schema:
type: string
format: ulid
responses:
'200':
description: Single occurrence detail.
content:
application/json:
schema:
$ref: '#/components/schemas/Occurrence'
/applications/{slug}/app-hangs:
get:
operationId: listAppHangs
summary: List App Hangs
description: >-
Displays grouped UI freeze events for the application. Backs the
list_app_hangs MCP tool.
tags:
- App Hangs
parameters:
- $ref: '#/components/parameters/Slug'
- $ref: '#/components/parameters/Mode'
- name: date_ms
in: query
required: false
schema:
type: integer
format: int64
- name: status_id
in: query
required: false
schema:
type: string
- name: app_versions
in: query
required: false
schema:
type: array
items:
type: string
- name: devices
in: query
required: false
schema:
type: array
items:
type: string
- name: os_versions
in: query
required: false
schema:
type: array
items:
type: string
- name: platform
in: query
required: false
schema:
type: string
enum: [ios, android, react_native, flutter]
- name: current_views
in: query
required: false
schema:
type: array
items:
type: string
responses:
'200':
description: Grouped UI hang events.
content:
application/json:
schema:
type: object
properties:
hangs:
type: array
items:
$ref: '#/components/schemas/AppHang'
/applications/{slug}/bugs:
get:
operationId: listBugs
summary: List Bugs
description: >-
Returns user-reported bugs submitted via the Luciq SDK with filtering
capabilities. Backs the list_bugs MCP tool.
tags:
- Bugs
parameters:
- $ref: '#/components/parameters/Slug'
- $ref: '#/components/parameters/Mode'
- name: status
in: query
required: false
schema:
type: string
enum: [new, in-progress, closed]
- name: priority
in: query
required: false
schema:
type: string
enum: [trivial, minor, major, critical, blocker]
- name: app_version
in: query
required: false
schema:
type: string
responses:
'200':
description: A page of user-reported bugs.
content:
application/json:
schema:
type: object
properties:
bugs:
type: array
items:
$ref: '#/components/schemas/Bug'
/applications/{slug}/bugs/{number}:
get:
operationId: getBugDetails
summary: Get Bug Details
description: >-
Returns comprehensive bug information including logs, user data, and
device metadata for reproduction. Backs the bug_details MCP tool.
tags:
- Bugs
parameters:
- $ref: '#/components/parameters/Slug'
- $ref: '#/components/parameters/Mode'
- $ref: '#/components/parameters/Number'
responses:
'200':
description: Full bug record.
content:
application/json:
schema:
$ref: '#/components/schemas/Bug'
'404':
$ref: '#/components/responses/NotFound'
/applications/{application_token}/reviews:
get:
operationId: listReviews
summary: List Reviews
description: >-
Lists app reviews from store, native, and custom prompts with filters
for rating, version, country, etc. Backs the list_reviews MCP tool.
tags:
- Reviews
parameters:
- name: application_token
in: path
required: true
schema:
type: string
- name: date_ms.gte
in: query
required: false
schema:
type: integer
format: int64
- name: date_ms.lte
in: query
required: false
schema:
type: integer
format: int64
- name: app_version
in: query
required: false
schema:
type: string
- name: rating
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 5
- name: country
in: query
required: false
schema:
type: string
description: ISO 3166-1 alpha-2 country code.
- name: device
in: query
required: false
schema:
type: string
- name: prompt_type
in: query
required: false
schema:
type: string
enum: [store, native, custom]
- name: os
in: query
required: false
schema:
type: string
enum: [ios, android]
responses:
'200':
description: A page of reviews.
content:
application/json:
schema:
type: object
properties:
reviews:
type: array
items:
$ref: '#/components/schemas/Review'
components:
securitySchemes:
oauth2:
type: oauth2
description: >-
OAuth 2.0 with Dynamic Client Registration. The Luciq MCP server
advertises its authorization and token endpoints to MCP clients that
register dynamically — no pre-shared client ID/secret is required.
flows:
authorizationCode:
authorizationUrl: https://api.luciq.ai/oauth/authorize
tokenUrl: https://api.luciq.ai/oauth/token
scopes:
mcp:read: Read access to applications, crashes, occurrences, hangs, bugs, and reviews
personalAccessToken:
type: http
scheme: bearer
bearerFormat: token
description: >-
Personal Access Token generated from the Luciq dashboard under
Account Management > Luciq MCP. Pass as `Authorization: Bearer <pat>`.
parameters:
Slug:
name: slug
in: path
required: true
description: The application slug as exposed by list_applications.
schema:
type: string
Mode:
name: mode
in: path
required: true
description: The reporting mode for the application (crash, bug, etc.).
schema:
type: string
Number:
name: number
in: path
required: true
description: The crash or bug number within the application's mode scope.
schema:
type: integer
responses:
Unauthorized:
description: Missing, expired, or invalid OAuth token / personal access token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource does not exist or is not accessible.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
required:
- code
- message
properties:
code:
type: string
message:
type: string
Application:
type: object
properties:
slug:
type: string
name:
type: string
platform:
type: string
enum: [ios, android, react_native, flutter]
token:
type: string
description: Application token used for review queries.
Crash:
type: object
properties:
number:
type: integer
title:
type: string
first_seen:
type: string
format: date-time
last_seen:
type: string
format: date-time
occurrence_count:
type: integer
affected_users:
type: integer
status:
type: string
enum: [new, in-progress, resolved, ignored]
severity:
type: string
cause:
type: string
app_version:
type: string
os_version:
type: string
device:
type: string
current_view:
type: string
Occurrence:
type: object
properties:
ulid:
type: string
format: ulid
crash_number:
type: integer
timestamp:
type: string
format: date-time
device:
type: string
os:
type: string
os_version:
type: string
app_version:
type: string
memory_mb:
type: integer
storage_mb:
type: integer
app_status:
type: string
enum: [foreground, background]
user_id:
type: string
log_url:
type: string
format: uri
AppHang:
type: object
properties:
number:
type: integer
title:
type: string
duration_ms:
type: integer
first_seen:
type: string
format: date-time
last_seen:
type: string
format: date-time
occurrence_count:
type: integer
app_version:
type: string
os_version:
type: string
device:
type: string
current_view:
type: string
Bug:
type: object
properties:
number:
type: integer
title:
type: string
reported_at:
type: string
format: date-time
status:
type: string
enum: [new, in-progress, closed]
priority:
type: string
enum: [trivial, minor, major, critical, blocker]
email:
type: string
format: email
app_version:
type: string
device:
type: string
user_steps:
type: array
items:
type: object
properties:
type:
type: string
message:
type: string
timestamp:
type: string
format: date-time
console_log:
type: string
attachments:
type: array
items:
type: object
properties:
type:
type: string
enum: [image, video, file]
url:
type: string
format: uri
Review:
type: object
properties:
id:
type: string
rating:
type: integer
minimum: 1
maximum: 5
title:
type: string
body:
type: string
country:
type: string
app_version:
type: string
device:
type: string
os:
type: string
enum: [ios, android]
prompt_type:
type: string
enum: [store, native, custom]
submitted_at:
type: string
format: date-time