This page documents the file written by appilots generate (and
staged internally by appilots sync before upload) — a client-side JSON
artifact in <outputDir> (default .appilots). For the conceptual
overview of what an MCP document represents, see
MCP documents. For what actually flows over
the wire to the server, see the API Reference.
Top level: MCPDocument
| Field | Type | Description |
|---|
version | string | Document version — a plain string, dev-controlled, defaults to '1.0' |
generatedAt | string (ISO date) | When the document was generated |
projectName | string | Project name |
screens | ScreenDescriptor[] | One entry per analyzed screen |
navigation | NavigationGraph | The app's navigation structure |
metadata | MCPMetadata | Summary counts and generator info |
| Field | Type |
|---|
generatorVersion | string |
appVersion | string (optional) |
totalScreens | number |
totalForms | number |
totalActions | number |
analyzedFiles | number |
screensFilteredOut | number (optional) |
ScreenDescriptor
One entry per screen.
| Field | Type |
|---|
name | string |
filePath | string |
title | string (optional) |
description | string (optional) |
components | ComponentDescriptor[] |
forms | FormDescriptor[] |
actions | ActionDescriptor[] |
navigationTargets | string[] |
agentHints | optional |
targets | TargetDescriptor[] (optional) |
flows | FlowDescriptor[] (optional) |
collections | CollectionDescriptor[] (optional) |
suggestedPrompts | string[] (optional) |
permissions | ScreenPermissionDescriptor (optional) |
isPii | boolean (optional) |
FormDescriptor:
| Field | Type |
|---|
id | string |
fields | FormFieldDescriptor[] |
submitAction | optional |
validationRules | optional |
FormFieldDescriptor:
| Field | Type |
|---|
name | string |
label | string (optional) |
type | 'text' | 'number' | 'email' | 'phone' | 'select' | 'toggle' | 'date' | 'custom' |
required | boolean |
placeholder | string (optional) |
options | optional |
defaultValue | optional |
locator | optional |
sourceComponent | optional |
valueBinding | optional |
errorBinding | optional |
ActionDescriptor
| Field | Type |
|---|
id | string |
type | 'navigation' | 'submit' | 'api_call' | 'state_change' | 'custom' |
label | string (optional) |
description | string (optional) |
targetScreen | string (optional) |
handler | optional |
locator | optional |
sourceComponent | optional |
opensModal | boolean (optional) |
opensBottomSheet | boolean (optional) |
successSignal | optional |
failureSignal | optional |
nativeConfirmationExpected | boolean (optional) |
destructive | boolean (optional) |
effect | 'read' | 'write' | 'destructive' (optional) |
riskLevel | 'low' | 'medium' | 'high' (optional) |
requiresConfirmation | boolean (optional) |
appilotsInferred | boolean (optional) |
effect, riskLevel, destructive, and requiresConfirmation are
checked by the metadata lint for mutating actions.
NavigationGraph
| Field | Type |
|---|
screens | Record<string, NavigationNode> |
initialScreen | string |
navigators | NavigatorDescriptor[] |
NavigationNode:
| Field | Type |
|---|
screenName | string |
navigatorType | 'stack' | 'tab' | 'drawer' |
parentNavigator | string (optional) |
reachableFrom | string[] |
reachableTo | string[] |
params | optional |
CollectionDescriptor
Describes list/collection components on a screen (e.g. FlatList).
| Field | Type |
|---|
id | string |
component | 'FlatList' | 'SectionList' | 'VirtualizedList' | 'FlashList' | 'ScrollView' | string |
itemType | optional |
dataSource | optional |
keyField | optional |
renderItem | optional |
displayFields | optional |
rowAction | optional |
rowActions | optional |
identityFields | optional |
searchField | optional |
Versioning and change detection
version is a plain, dev-controlled string (defaults to '1.0' if not
passed to sync). The document is also content-addressed by a checksum
for change detection — see MCP documents for
the checksum mechanic; it isn't part of this file's schema.