이 MCP로 할 수 있는 일
Provides React Native and Expo UI components, runtime guidance, and recipes for emitting, installing, updating, and verifying mobile app screens and projects.
도구
입력 스키마
{'type': 'object', 'required': ['compositionId', 'manifest'], 'properties': {'tab': {'type': 'string', 'description': "nest it in this tab's stack so the tab bar stays visible. Omit to put it at the root, where it covers the tab bar (right for a modal)."}, 'manifest': {'type': 'object', 'description': 'the parsed .opointo/files.json from the project root'}, 'componentName': {'type': 'string', 'description': 'React component name, e.g. "InvoiceDetail". Defaults to GeneratedScreen.'}, 'compositionId': {'type': 'string', 'description': 'share code for the new screen, from the App Builder'}}}
입력 스키마
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'the TSX snippet to check'}}}
입력 스키마
{'type': 'object', 'required': ['appId'], 'properties': {'appId': {'type': 'string', 'description': 'the share code, e.g. "34ca4babb2"'}, 'override': {'type': 'boolean', 'description': 'emit even when screens are flagged as not ready. Ask the customer first; the flags exist for a reason.'}}}
입력 스키마
{'type': 'object', 'required': ['compositionId'], 'properties': {'componentName': {'type': 'string', 'description': 'React component name for the file, e.g. "CheckoutScreen". Defaults to GeneratedScreen.'}, 'compositionId': {'type': 'string', 'description': 'the share code, e.g. "34ca4babb2"'}}}
입력 스키마
{'type': 'object', 'required': ['need'], 'properties': {'need': {'type': 'string', 'description': 'e.g. "a progress bar for an upload"'}}}
입력 스키마
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'e.g. "button"'}}}
입력 스키마
{'type': 'object', 'properties': {'components': {'type': 'array', 'items': {'type': 'string'}, 'description': 'optional slugs in use'}}}
입력 스키마
{'type': 'object', 'properties': {'slug': {'type': 'string', 'description': 'optional — omit for catalog-wide rules'}, 'platform': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'optional — omit for the rules on both platforms'}}}
입력 스키마
{'type': 'object', 'required': ['appId', 'stepId'], 'properties': {'page': {'type': 'number', 'description': 'which page of the file list (write) or the screen list (review); omit for the first. Each page names the next.'}, 'appId': {'type': 'string', 'description': 'the share code you passed to emit_app'}, 'stepId': {'type': 'string', 'description': 'the step id, e.g. "configure" or "write", or "review" for the screen list'}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'the component slug, e.g. "button" or "bottom-sheet"'}}}
입력 스키마
{'type': 'object', 'properties': {'tech': {'enum': ['system', 'glass', 'blur'], 'type': 'string'}, 'category': {'enum': ['controls', 'chrome', 'surfaces'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'required': ['app'], 'properties': {'app': {'type': 'object', 'description': 'The design: { name, tabs: [{ screenId, label }], screens: [{ id, name, composition: { screen: { content: { children: [node] }, chrome: { header?, headerItems?, floating: [] }, overlays: [] } } }], onboardingScreenIds: [], pushed: [{ screenId, fromScreenId, presentation }], theme? }. A node is { id, slug, props }: slug is a component from list_components or "wireframe:<block>" such as "wireframe:list-row" (a list whose rows open one screen is one row with repeats: "true"), and a content node opens a screen with navigate: { to, presentation }. A top bar is header: { id, slug: "header", props: {} }, titled by the screen\'s name. entryScreenId is only for a splash screen before the tabs. Tab icons, titles and composition metadata are set by the builder.'}, 'dryRun': {'type': 'boolean', 'description': 'check the design and report, without making a link'}}}
입력 스키마
{'type': 'object', 'required': ['composition'], 'properties': {'dryRun': {'type': 'boolean', 'description': 'check the screen and report, without making a link'}, 'composition': {'type': 'object', 'description': 'One screen: { name, screen: { content: { children: [node] }, chrome: { header?, headerItems?, floating: [] }, overlays: [] } }. A node is { id, slug, props }: slug is a component from list_components or "wireframe:<block>".'}}}
입력 스키마
{'type': 'object', 'required': ['manifest'], 'properties': {'current': {'type': 'array', 'items': {'type': 'object', 'required': ['path'], 'properties': {'sha': {'type': 'string'}, 'path': {'type': 'string'}, 'missing': {'type': 'boolean'}}}, 'description': 'only when a `split-unverified` blocker asks for it: the hash of each named file on disk, from the command the blocker gives'}, 'manifest': {'type': 'object', 'description': 'the parsed contents of .opointo/files.json from the project root (the whole object, or just its `files` array)'}, 'acceptSplit': {'type': 'array', 'items': {'type': 'string'}, 'description': 'only after the customer agreed to replace a file they edited: the paths named by `split-customer-edited` blockers'}}}
입력 스키마
{'type': 'object', 'required': ['appId', 'files'], 'properties': {'appId': {'type': 'string', 'description': 'the share code you passed to emit_app'}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['path'], 'properties': {'sha': {'type': 'string', 'description': 'optional; when present it is authoritative and the byte check is skipped for that file'}, 'path': {'type': 'string'}, 'bytes': {'type': 'number', 'description': 'size in bytes on disk, as `wc -c` reports'}}}, 'description': "what you actually wrote: { path, bytes } per file, path relative to the project root. `bytes` must be the file's size in BYTES on disk (what `wc -c` reports), not its character count — the two differ for any file containing a non-ASCII character."}, 'config': {'type': 'object', 'properties': {'main': {'type': 'string', 'description': 'package.json "main"'}, 'scheme': {'type': 'string', 'description': 'app.json scheme'}, 'plugins': {'type': 'array', 'items': {'type': 'string'}, 'description': 'app.json plugins'}, 'moduleSuffixes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'tsconfig compilerOptions.moduleSuffixes'}, 'nativeModulesDir': {'type': 'string', 'description': 'package.json expo.autolinking.nativeModulesDir; omit if unset. Checked when the recipe ships a native module in src/modules. Unset, that module is never linked and the app crashes on Android at first render'}, 'userInterfaceStyle': {'type': 'string', 'description': 'app.json userInterfaceStyle'}}}, 'toolchain': {'type': 'object', 'properties': {'xcode': {'type': 'string', 'description': 'the version from `xcodebuild -version`, e.g. "26.2". iOS only; omit on a machine without Xcode'}, 'expoSdk': {'type': 'string', 'description': 'the INSTALLED `expo` package version, e.g. "56.0.15" (`npm ls expo`)'}, 'enableSceneSupport': {'type': 'boolean', 'description': 'app.json → expo-build-properties → ios.enableSceneSupport'}, 'expoBuildProperties': {'type': 'string', 'description': 'the INSTALLED `expo-build-properties` version, e.g. "57.0.21"; omit if it is not installed'}}}, 'dependencies': {'type': 'array', 'items': {'type': 'string'}, 'description': "the keys of package.json's dependencies"}}}
최근 도구 변경
유사한 MCP 서버
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
Blixtworks
Offers pay-per-call utilities for text, image processing and analysis, data conversion, validation, web inspection, cryptography,…
Compose Preview Catalogs
Browses, renders, compares, audits, and edits Jetpack Compose preview catalogs and associated UI designs.
arch-tools-mcp
Provides general-purpose agent APIs for browser automation, web and PDF extraction, data conversion, email operations, fact check…
kernelcad
Authors, evaluates, reviews, simulates, edits, and exports parametric CAD assemblies and geometry from editable TypeScript-based …
floot
Creates, edits, previews, databases, and publishes full-stack web and mobile applications with hosted resources and deployment wo…
Raven
Supports coding agents with design audits, design-system guidance, and a configurable visual preference profile.