Implementation Guidance tools
The Extentos MCP server's guidance tools — getVoiceCommandGuidance (analyze proposed wake / command phrases for UX issues) and getPermissions (derive exact platform permissions, Meta DAT requirements, and foreground-service needs from the declared SDK capability list). Side-quest helpers the agent calls during composition.
Two helpers the agent calls between scaffolding and validation. Both are pure-read, no side effects.
getVoiceCommandGuidance
Analyze proposed wake / command phrases for UX issues — length, homophones, digit-usage, Meta wake-word collision (hey meta, hey facebook, ok meta are reserved), ambiguity against existing phrases — before the agent wires them into a glasses.audio.transcriptions() consumer.
Parameters: phrases: string[] (required), existingPhrases: string[] (optional, so the tool can flag ambiguity against phrases the handler already matches), glasses: "meta_rayban".
Response: per-phrase analysis with issues[] (length / homophones / digits / wake-word collision), suggestions[] (concrete rewrites), collisions[] (other phrases too similar), plus a roll-up summary.
Post-pivot voice matching is plain string contains/regex inside the customer's handler — this tool catches the issues the customer can't see at runtime ("didn't match"-style failures with no signal from the recognizer).
getPermissions
Derive Android manifest permissions, iOS Info.plist keys, and Meta DAT scopes from the list of SDK capabilities the handler uses. Run after the agent decides which primitives (capture_photo, transcription_incremental, speak, …) the handler will subscribe to.
Parameters: capabilities: string[] (required; feature names from getPlatformInfo.features[].name), platform: "android" | "ios".
Response: { android: { permissions[], manifestEntries[], foregroundService, ... }, ios: { plistKeys[], ... }, metaDat: { scopes[], registrationRequired, ... }, summary }. Drops in directly to AndroidManifest.xml / Info.plist.
The capability → permission map is centralized in mcp-server/src/tools/util/permissions.ts. transcription_incremental adds RECORD_AUDIO + NSMicrophoneUsageDescription + NSSpeechRecognitionUsageDescription; capture_photo adds CAMERA + NSCameraUsageDescription; continuous-capture capabilities (video_frames, audio_chunks, transcription_incremental) additionally require FOREGROUND_SERVICE on Android 14+. See concepts/permissions for the full mapping table.
Update extentos.manifest.json's capabilities array as your handler grows; re-run getPermissions and write the diff into the manifest / Info.plist.
Related
- Capabilities — the SDK primitive vocabulary
- Permissions — the full per-capability permission mapping
- Tools overview — back to the full tool catalog
Setup and Generation tools
The Extentos MCP server's generation surface — generateConnectionModule, the one-shot project scaffold that emits the bootstrap module, build-script changes, dependencies, permissions, and the integration manifest. After scaffolding, the customer (or their agent) writes handler classes against the SDK primitives surfaced by getCapabilityGuide / getCodeExample.
Validation tools
The Extentos MCP server's validation tools — inspectIntegration (read-only project snapshot) and validateIntegration (whole-project correctness gate before testing). The pre-test sanity checks the agent runs after structural changes.