Skill
Aster - 您的移动端AI副驾驶
您的AI副驾驶,适用于任何使用MCP(模型上下文协议)的安卓设备——或者为您的AI配备一部专用手机,让它能够自主通话、发短信和行动。完全开源且隐私优先——您的数据永远不会离开您的网络。
网站:aster.theappstack.in|GitHub:github.com/satyajiit/aster-mcp
如需查看安卓应用和网页仪表盘的截图,请访问aster.theappstack.in。
设置
- 安装并启动服务器:
npm install -g aster-mcp
aster start
-
在任何安卓设备上安装Aster安卓应用——可以是您的日常手机,或是为AI准备的备用机——从发布页面获取,并连接到终端显示的服务器地址。
-
在您的in your
.mcp.json:
{
"mcpServers": {
"aster": {
"type": "http",
"url": "http://localhost:5988/mcp"
}
}
}
安全与隐私
Aster 采用安全至上、隐私至上的架构:
- 自托管— 完全在您的本地机器上运行。无需云服务器,无需第三方中继。您的数据保留在您的网络中。
- 零遥测— 无分析、无追踪、无使用数据收集。您的行为完全由您掌控。
- 设备审批— 每台新设备在连接或执行命令前,都必须从控制面板手动批准。
- Tailscale 集成— 通过 Tailscale 和 WireGuard 提供可选的加密网状 VPN。实现带自动 TLS (WSS) 的安全远程访问 — 无需端口转发。
- 无需 Root 权限— 使用官方的 Android 无障碍服务 API(与驱动屏幕阅读器的系统相同)。无需 Root、无需 ADB 破解、无需漏洞利用。每个操作都受权限控制并在沙盒中运行。
- 前台透明度— 服务运行时,您的Android设备上会显示常驻通知。不会在后台静默访问。
- 仅限本地存储— 所有数据(设备信息、日志)均存储在本地SQLite数据库中。不会向外部发送任何信息。
- 100% 开源— 采用MIT许可证,代码库完全可审计。您可以在GitHub上检查每一行代码。
可用工具
设备与屏幕
aster_list_devices- 列出已连接的设备aster_get_device_info- 获取设备详情(电池、存储、规格)aster_take_screenshot- 截取屏幕截图aster_get_screen_hierarchy- 获取UI无障碍功能树
输入与交互
aster_input_gesture- 点击、滑动、长按aster_input_text- 在聚焦字段中输入文本aster_click_by_text- 通过文本点击元素aster_click_by_id- 通过视图ID点击元素aster_find_element- 查找UI元素aster_global_action- 返回、主页、最近任务等
应用与系统
aster_launch_intent- 启动应用或意图aster_list_packages- 列出已安装应用aster_read_notifications- 读取通知aster_read_sms- 读取短信消息aster_send_sms- 向电话号码发送短信aster_get_location- 获取GPS位置aster_execute_shell- 在Android应用沙盒中运行Shell命令(无需root权限,仅限于应用数据目录和用户可访问的存储空间,30秒超时,1MB输出限制)
文件与存储
aster_list_files- 列出目录内容aster_read_file- 读取文件内容aster_write_file- 写入文件aster_delete_file- 删除文件aster_analyze_storage- 存储分析aster_find_large_files- 查找大文件aster_search_media- 使用自然语言搜索照片/视频
设备功能
aster_get_battery- 电池信息aster_get_clipboard/aster_set_clipboard- 剪贴板访问aster_show_toast- 显示Toast消息aster_speak_tts- 文本转语音aster_vibrate- 设备振动aster_play_audio- 播放音频aster_post_notification- 发布通知aster_make_call- 发起电话呼叫aster_make_call_with_voice- 拨打电话,接通后启用免提并通过TTS播报AI文本aster_show_overlay- 在设备上显示网页悬浮层
媒体智能
aster_index_media_metadata- 提取照片/视频的EXIF元数据aster_search_media- 使用自然语言查询搜索照片/视频
主动事件转发(OpenClaw回调)
Aster可以通过webhook将手机实时事件推送给您的AI智能体。启用后,这些事件会以HTTP POST载荷形式送达——您的智能体无需轮询,手机会主动告知当前动态。
可通过控制面板进行配置:/settings/openclaw或使用命令行工具:aster set-openclaw-callbacks。
Webhook格式说明
事件将以HTTP POST形式发送至已配置的OpenClaw端点(/hooks/agent为默认路径)。AI智能体将读取message字段。所有事件上下文均通过标准化[键名] 数值标签格式封装至message字段中。
通知事件的原始HTTP POST载荷示例:
{
"message": "[skill] aster\n[event] notification\n[device_id] 6241e40fb71c0cf7\n[model] samsung SM-S938B, Android 16\n[data-app] messaging\n[data-package] com.google.android.apps.messaging\n[data-title] John\n[data-text] Hey, are you free tonight?",
"wakeMode": "now",
"deliver": true,
"channel": "whatsapp",
"to": "+1234567890"
}
message——包含标准标题的结构化事件文本(此为AI实际读取内容)wakeMode——始终为"现在"(立即唤醒代理)发送— 总是真针对真实事件,假针对测试ping频道/至— 发送频道和接收方,在仪表板中配置
事件格式
每个事件都遵循一个标准化结构,包含4个固定头部和[data-*]字段:
[skill] aster
[event] <event_name>
[device_id] <device_uuid>
[model] <manufacturer model, Android version>
[data-key] value
[data-key] value
[skill]— 总是aster[event]— 事件名称:短信、通知、设备在线,设备离线,配对[设备ID]— 设备的UUID(使用此ID通过Aster工具定位设备)[型号]— 设备制造商、型号和操作系统[数据-*]— 特定于事件的字段,每个字段均以data-为前缀(例如[数据-应用]、[数据-发送者])
事件类型
短信— 接收短信
[skill] aster
[event] sms
[device_id] a1b2c3d4-5678-90ab
[model] samsung SM-S938B, Android 15
[data-sender] +1234567890
[data-body] Hey are you free tonight?
通知— 应用通知(针对短信进行去重)
[skill] aster
[event] notification
[device_id] a1b2c3d4-5678-90ab
[model] samsung SM-S938B, Android 15
[data-app] whatsapp
[data-package] com.whatsapp
[data-title] John
[data-text] Meeting moved to 3pm
设备在线— 已批准设备上线
[skill] aster
[event] device_online
[device_id] a1b2c3d4-5678-90ab
[model] samsung SM-S938B, Android 15
[data-status] connected
设备离线— 设备离线
[skill] aster
[event] device_offline
[device_id] a1b2c3d4-5678-90ab
[model] samsung SM-S938B, Android 15
[data-status] disconnected
配对— 新设备需要批准(使用[device_id]进行批准)
[skill] aster
[event] pairing
[device_id] e5f6g7h8-9012-cdef
[model] Samsung SM-S924B, Android 15
[data-status] pending_approval
[data-action] approve this device from the Aster dashboard or via aster devices approve
如何响应事件
当您收到包含[skill] aster的消息时,解析[event]和[device_id]以确定发生了什么以及应对哪个设备进行操作。
短信 — 回复、提取信息或上报处理:
[event] sms | [device_id] a1b2c3d4 | sender: +1234567890 | body: Running late, be there in 20
→ aster_send_sms (deviceId: a1b2c3d4) to +1234567890: "No worries, see you soon!"
[event] sms | [device_id] a1b2c3d4 | sender: +1800555 | body: Your OTP is 482913
→ Extract OTP "482913", use aster_input_text (deviceId: a1b2c3d4) to enter it
通知 — 监控并代表用户采取行动:
[event] notification | [device_id] a1b2c3d4 | app: driver | text: Your driver is arriving
→ aster_speak_tts (deviceId: a1b2c3d4) "Your Uber is almost here"
[event] notification | [device_id] a1b2c3d4 | app: mShop | text: Your package was delivered
→ aster_send_sms (deviceId: a1b2c3d4) to user: "Your Amazon package just arrived"
设备生命周期 — 管理连接状态:
[event] device_offline | [device_id] a1b2c3d4
→ Pause pending automations for device a1b2c3d4
[event] device_online | [device_id] a1b2c3d4
→ Resume queued tasks, aster_read_notifications (deviceId: a1b2c3d4) to catch up
配对 — 批准或发出警报:
[event] pairing | [device_id] e5f6g7h8 | model: Samsung SM-S924B
→ If expected: approve device e5f6g7h8 via dashboard API
→ If unexpected: alert user "Unknown device SM-S924B trying to connect"
使用示例
您的移动端副驾驶:
"Open YouTube and search for cooking videos"
→ aster_launch_intent → aster_click_by_id → aster_input_text
"Find photos from my trip to Mumbai last month"
→ aster_search_media with query "photos from Mumbai last month"
"Take a screenshot and tell me what's on screen"
→ aster_take_screenshot → aster_get_screen_hierarchy
AI专属手机 — 让它为您代劳:
"Call me and tell me my flight is delayed"
→ aster_make_call_with_voice with number, text "Your flight is delayed 45 min, new gate B12", waitSeconds 8
"Text me when my delivery arrives"
→ aster_read_notifications → aster_send_sms with number and message
"Reply to the delivery guy: Thanks, I'll be home"
→ aster_send_sms with number and message
命令
aster start # Start the server
aster stop # Stop the server
aster status # Show server and device status
aster dashboard # Open web dashboard
aster devices list # List connected devices
aster devices approve # Approve a pending device
aster devices reject # Reject a device
aster devices remove # Remove a device
aster set-openclaw-callbacks # Configure event forwarding to OpenClaw
要求
- Node.js >= 20
- 任何安装了Aster应用的Android设备(您的手机或专用AI设备)
- 设备和服务器在同一网络(或使用Tailscale进行安全的远程访问)
网站:aster.theappstack.in|GitHub:github.com/satyajiit/aster-mcp


微信扫一扫,打赏作者吧~