Skip to content

Latest commit

 

History

History
141 lines (106 loc) · 4.26 KB

File metadata and controls

141 lines (106 loc) · 4.26 KB
type handoff
project tasker-mcp
path D:\servers\tasker-mcp
phase Phase 6: Phone Setup & E2E Testing
progress 5/6
status active
temperature hot
git
branch dirty
master
true
created 2026-01-16 12:49:00 UTC
updated 2026-01-17 01:45:00 UTC
generated 2026-01-17 01:45:00 UTC

HANDOFF: tasker-mcp

Current Phase

Phase 6: Phone Setup & E2E Testing - UNIVERSAL EXECUTOR WORKING

Major Breakthrough This Session

Claude can now control the phone via eval(). The XML import approach failed, so we pivoted to a "Universal Executor" pattern:

Claude → HTTP POST → Tasker (port 1821) → JavaScriptlet eval() → Phone action

What Works Now

Command Status Example
flash ✅ Working {"type":"flash","msg":"Hi"}
eval ✅ Working {"type":"eval","code":"flash('test')"}
say (TTS) ✅ Working {"type":"say","text":"Hello"}
get ✅ Working {"type":"get","name":"BATT"}
shell Untested {"type":"shell","cmd":"ls"}
tap Needs AI_Tap task {"type":"tap","x":500,"y":1000}
text Needs AI_Text task {"type":"text","input":"hello"}

Progress

  • Phase 1: Project setup
  • Phase 2: Go server implementation
  • Phase 3: Tasker profile hardening
  • Phase 4: Integration with master-mcp-proxy
  • Phase 5: android-mcp Repair + Tasker Bridge
  • Phase 6: Phone Setup & E2E Testing <- IN PROGRESS
    • Tailscale connectivity (100.98.193.61)
    • Port 1821 HTTP working
    • Claude_Executor task created (JavaScriptlet + HTTP Response)
    • Basic commands working (flash, eval, say, get)
    • Create AI_Tap task (AutoInput)
    • Create AI_Text task (AutoInput)
    • Full integration test
    • Update tasker-mcp Go code to use new endpoint

Blockers

Blocker Severity Notes
XML Import fails ABANDONED "failed to import profile data" - gave up, using Universal Executor instead

Phone Setup Complete

Component Status
Tasker profile: Claude_Executor ✅ Created
HTTP trigger: POST /exec on 1821 ✅ Working
JavaScriptlet with eval() ✅ Working
HTTP Response action ✅ Added (no more timeouts)
AutoInput installed ✅ Yes
AI_Tap task ❌ Not created yet
AI_Text task ❌ Not created yet

Key Files

File Purpose
/sdcard/Download/claude_executor.js Full JavaScriptlet code (on phone)
D:\servers\android-mcp\mcp_server\unified\android_mcp.py Fixed SSH fallback (added tailscale_ip)
D:\servers\tasker-mcp\CLAUDE.md Added gotcha about android tools

SSH Fix Applied This Session

Problem: SSH to phone was flaky when remote.

Root Cause: Code used elif so tailscale_ip was never tried when tailscale_hostname existed.

Fix:

  1. Added tailscale_ip: "100.98.193.61" to phone config
  2. Changed elif to if so both IP and hostname are tried
  3. Order: local IP → Tailscale IP → MagicDNS hostname

Files changed:

  • android_mcp.py:169 - added tailscale_ip
  • android_mcp.py:726-729 - fixed fallback logic

Next Actions

  1. Create AI_Tap task (for AutoInput screen taps):

    • Tasks → + → name: AI_Tap
    • Add Plugin → AutoInput → Action
    • Action Type: Click, Click Type: Point
    • X: %par1, Y: %par2
  2. Create AI_Text task (for AutoInput typing):

    • Tasks → + → name: AI_Text
    • Add Plugin → AutoInput → Action
    • Action Type: Text
    • Text: %par1
  3. Test full capabilities (shell, file ops, wifi toggle, etc.)

  4. Optional: Update tasker-mcp Go code to call /exec endpoint

Full JavaScriptlet Code (on phone)

Location: /sdcard/Download/claude_executor.js

Handles: flash, eval, run, shell, set, get, say, clip, read, write, wifi, vol, bright, tap, text

Context Notes

  • User has AutoInput installed and enabled
  • XML import is fundamentally broken for this Tasker version - don't retry
  • Universal Executor gives ~80% phone control without root
  • TTS works - Claude can speak to user
  • Session ended because user needs to be home to create AutoInput tasks (Tasker kicks out when switching apps)

To Resume

/start tasker-mcp

Create the two AutoInput tasks (AI_Tap, AI_Text), then test full control.