【免费下载链接】Eta
System-level Android AI Agent with direct OS access. | Android 系统级 AI Agent——越过沙盒,让模型访问底层API、屏幕、终端与你的数据
Eta 是一款 Android 系统级 AI Agent,通过内置的 MCP 客户端能力直接连接远程工具服务器(Streamable HTTP),无需绑定任何模型服务商;支持 Bearer Token 认证,并以 Android Keystore 加密保存凭据,让普通用户也能安全地把外部工具生态接入自己的手机 Agent。
为什么 Eta 需要接入 MCP 生态
MCP(Model Context Protocol)让工具提供方把能力标准化成"工具"发布出去。Eta 的设计思路是:把协议能力与模型解耦——你用自己的 API Key(BYOK)接入任意模型,再用 MCP 把日历、数据库、业务 API 等远程工具挂进来,模型就能在对话中直接调用。
与本机工具(终端、文件、浏览器)不同,MCP 工具运行在远程服务器上,Eta 只负责发现(tools/list)和调用(tools/call),一次运行最多冻结 64 个 MCP 工具进入目录,保证上下文可控。
三步添加 MCP 服务器
第 1 步:填写服务器名称与地址
进入设置 → MCP servers页面(源码:McpServersScreen.kt),点击右上角"+":
- 名称:给服务器起个好认的名字(如"我的日历服务");
- 服务器地址:填写 Streamable HTTP 端点,支持公网 HTTPS、局域网与本机地址,走同一条连接链路。
第 2 步:按需填写 Bearer Token
如果服务器要求认证,在"Bearer token (optional)"一栏粘贴 Token。输入框默认密码态遮蔽,不会明文显示。不填则标记为none无认证。
第 3 步:确认连接,自动发现工具
点击"Add server"后,Eta 会立刻发起工具发现请求:
- 自动分页拉取工具列表(最多 8 页、128 个工具,源码:McpHttpClient.kt);
- 成功连接后弹窗提示"已发现 N 个工具";
- 连接失败会显示具体错误(地址无效、HTTP 4xx、协议不匹配等),不会把配置写进数据库——只有发现成功,McpServerRepository.add() 才会落库并保存密钥。
进入服务器详情页后,你可以:
| 操作 | 说明 |
|---|---|
| 🔄 刷新工具 | 服务器更新工具后重新拉取,并显示工具总数 |
| 🔐 认证 | 随时更换或移除 Bearer Token(留空即移除) |
| ✅ 逐项启用工具 | 每个工具独立开关,控制模型可见的工具面 |
| 🗑 删除服务器 | 一并清除端点、Token 与工具开关设置 |
双协议自动适配:省心接入新旧服务器
Eta 默认auto模式(McpServer.kt):
- 优先使用
2026-07-28无状态新版协议,无需会话; - 遇到兼容问题(400/404/405 等信号)自动降级到
2025-11-25旧协议,走initialize协商并维护 session,会话过期(404)会自动重协商重试。
你不需要手工选择协议版本,新旧服务器都能直接接入。
Bearer Token 如何安全存储与使用
这是 Eta MCP 设计中最值得了解的一环(源码:McpSecretStore.kt):
- 加密存储:Token 使用AES/GCM加密,密钥由Android Keystore硬件级密钥库托管,密文存放在 App 私有偏好(
eta_mcp_secrets)中——即使偏好文件被读到,没有 Keystore 密钥也无法还原; - 传输使用:每次 MCP 请求自动附加
Authorization: Bearer <token>头(McpHttpClient.kt 的applyAuthorization); - 一致性保护:数据库写入失败时会回滚/清除刚写入的密钥,删除服务器时 Token 同步清除,避免"孤儿凭据";
- 原始参数与结果不落盘:MCP 的调用参数与返回只在当次运行内存中使用,持久会话、检查点与归档中只保留脱敏记录(sensitive 标记)。
⚠️ 注意:若使用
http://明文地址,Token 与工具参数会明文传输。生产环境请务必使用https://。
风险工具确认机制
工具发现时 Eta 会解析 MCP 的annotations元数据(readOnlyHint、destructiveHint等,McpServerManager.kt):
- 只读工具:列表中标注"Read-only tool",开关直接生效;
- 非只读工具:开启时弹出确认框——"该工具可能修改数据或调用外部服务,仅在你信任该服务器时启用"。
这意味着你可以只放行"查询类"工具,把"写操作类"工具保持关闭,最小化 Agent 的能力面。
常见问题排查清单
| 现象 | 排查方向 |
|---|---|
| "MCP 地址无效" | URL 必须是合法的 http/https 完整地址 |
| 连接超时(局域网地址) | Android 17 需在权限页开启"局域网访问"(见 docs/ROOTLESS_SUPPORT.md) |
| 工具列表为空 | 服务器尚未发布工具,点刷新重试 |
| HTTP 401 | Token 错误或过期,到"认证"里更新 Token |
| 结果被截断 | 文本/结构化结果上限 64KB、图片上限 2MB,超出会带truncated标记(McpRunContext.kt) |
更多协议细节(超时、预算、脱敏策略)可查阅官方文档 docs/AGENT_RUNTIME.md 的「MCP 工具」章节。
小结
Eta 的 MCP 接入对新手非常友好:填地址 → 贴 Token → 确认连接,三步完成;安全层面则由 Keystore 加密、逐项工具开关、风险确认与脱敏归档四道防线兜底。把远程工具生态安全地接进手机 Agent,现在只需要一杯咖啡的时间 ☕
【免费下载链接】Eta
System-level Android AI Agent with direct OS access. | Android 系统级 AI Agent——越过沙盒,让模型访问底层API、屏幕、终端与你的数据
相关推荐
连接远程 MCP 服务器:AI 工程师的云端部署与安全接入实战指南
连接远程 MCP 服务器:AI 工程师的云端部署与安全接入实战指南 远程部署将 Model Context Protocol(MCP)服务器从本地机器迁移到云厂
文档教程知识库用GLiNER2.5-Multi做命名实体识别完全实操:从定义实体标签到置信度调优
用GLiNER2.5 Multi做命名实体识别完全实操:从定义实体标签到置信度调优 做命名实体识别(NER)还要写规则、调标注?不一定。GLiNER2.5 Mu
人工智能NLP信息抽取CerebroSSH插件:远程服务器连接工具
CerebroSSH插件:远程服务器连接工具 你是否还在为频繁切换终端连接远程服务器而烦恼?是否希望有一个高效工具能快速管理多个SSH会话?本文将介绍如何通过C
桌面应用开发者工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考