Skip to main content

Output Format

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

FieldTypeDescription
versionstringDocument version — a plain string, dev-controlled, defaults to '1.0'
generatedAtstring (ISO date)When the document was generated
projectNamestringProject name
screensScreenDescriptor[]One entry per analyzed screen
navigationNavigationGraphThe app's navigation structure
metadataMCPMetadataSummary counts and generator info

MCPMetadata

FieldType
generatorVersionstring
appVersionstring (optional)
totalScreensnumber
totalFormsnumber
totalActionsnumber
analyzedFilesnumber
screensFilteredOutnumber (optional)

ScreenDescriptor

One entry per screen.

FieldType
namestring
filePathstring
titlestring (optional)
descriptionstring (optional)
componentsComponentDescriptor[]
formsFormDescriptor[]
actionsActionDescriptor[]
navigationTargetsstring[]
agentHintsoptional
targetsTargetDescriptor[] (optional)
flowsFlowDescriptor[] (optional)
collectionsCollectionDescriptor[] (optional)
suggestedPromptsstring[] (optional)
permissionsScreenPermissionDescriptor (optional)
isPiiboolean (optional)

FormDescriptor and FormFieldDescriptor

FormDescriptor:

FieldType
idstring
fieldsFormFieldDescriptor[]
submitActionoptional
validationRulesoptional

FormFieldDescriptor:

FieldType
namestring
labelstring (optional)
type'text' | 'number' | 'email' | 'phone' | 'select' | 'toggle' | 'date' | 'custom'
requiredboolean
placeholderstring (optional)
optionsoptional
defaultValueoptional
locatoroptional
sourceComponentoptional
valueBindingoptional
errorBindingoptional

ActionDescriptor

FieldType
idstring
type'navigation' | 'submit' | 'api_call' | 'state_change' | 'custom'
labelstring (optional)
descriptionstring (optional)
targetScreenstring (optional)
handleroptional
locatoroptional
sourceComponentoptional
opensModalboolean (optional)
opensBottomSheetboolean (optional)
successSignaloptional
failureSignaloptional
nativeConfirmationExpectedboolean (optional)
destructiveboolean (optional)
effect'read' | 'write' | 'destructive' (optional)
riskLevel'low' | 'medium' | 'high' (optional)
requiresConfirmationboolean (optional)
appilotsInferredboolean (optional)

effect, riskLevel, destructive, and requiresConfirmation are checked by the metadata lint for mutating actions.

FieldType
screensRecord<string, NavigationNode>
initialScreenstring
navigatorsNavigatorDescriptor[]

NavigationNode:

FieldType
screenNamestring
navigatorType'stack' | 'tab' | 'drawer'
parentNavigatorstring (optional)
reachableFromstring[]
reachableTostring[]
paramsoptional

CollectionDescriptor

Describes list/collection components on a screen (e.g. FlatList).

FieldType
idstring
component'FlatList' | 'SectionList' | 'VirtualizedList' | 'FlashList' | 'ScrollView' | string
itemTypeoptional
dataSourceoptional
keyFieldoptional
renderItemoptional
displayFieldsoptional
rowActionoptional
rowActionsoptional
identityFieldsoptional
searchFieldoptional

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.