Tools and MCP
Built-in device tools
| Tool | Description |
|---|---|
get_time |
Current time / date |
set_alarm / cancel_alarm |
Device alarms |
open_app |
Launch by package name |
search_web |
Browser search |
get_weather |
Weather lookup |
send_sms |
SMS compose/send |
open_settings |
System settings |
take_screenshot |
Capture via MediaProjection |
Definitions: lib/tools/tool_definitions.dart
Native: android/.../ToolExecutor.kt
Progress streams over EventChannel('dev.nova.assistant/tools_progress').
Dart-side tools
Tasks and notes are executed in Dart (TaskService, NoteService) without native code.
MCP
Nova supports:
- HTTP + SSE (legacy MCP transport)
- stdio (local process; Node required on device/host)
Not yet: Streamable HTTP + OAuth (e.g. Have I Been Pwned returns HTTP 405 on legacy GET SSE).
Configure servers in Settings → MCP. On connect failure, the UI shows a clear error.
Screenshot / vision
- Grant MediaProjection when prompted
- Tool or UI requests capture →
ScreenshotService.requestCapture() - Bytes fetched via screenshot MethodChannel
- Orchestrator attaches
Message.withImagewhen the active engine supports vision