使用说明
项目简介
本仓库实现一个基于 MCP(模型上下文协议)的服务器端,部署在 Android 设备上,提供标准化的上下文服务接口。服务器通过 SSE(Server-Sent Events)传输,使用 JSON-RPC 风格的请求/响应,允许客户端读取资源、执行工具、获取并渲染提示模板等。服务器具备会话管理、能力声明、工具注册与管理等能力,支持 Bearer Token 认证以及多种传输与扩展能力。
主要功能点
- SSE 基于 MCP 的服务端通信,端点地址通常为 http://设备IP:3001/sse,需携带 Bearer Token 进行认证
- 资源管理:对设备上的资源(如通讯录、传感器数据、媒体等)提供读取与查询能力
- 工具注册与执行:可注册不同的工具(Tools),允许 LLM 通过 MCP 调用外部功能
- 提示模板(Prompts):定义与渲染用于与 LLM 交互的提示模板
- 模块化架构:工具模块化,便于扩展与替换
- 安全与隐私:逐工具授权、清晰免责声明、令牌认证、数据访问受控
- 外部工具扩展:支持通过 Content Providers 等方式接入其他应用的工具
- 动态工具管理:可在运行时启用/禁用工具,并通过 UI 获取用户同意
安装步骤
- 在设备上安装应用(Google Play 商店中的应用,或从源码构建安装 apk)
- 首次运行应用:授予必要权限,完成初始配置
- 在应用内启用需要暴露的工具(逐一查看免责声明并获得用户同意)
- 启动服务器,获取或生成 Bearer Token
- 在 MCP 客户端配置服务器连接信息并连接
服务器配置(供 MCP 客户端参考的配置信息)
以下 JSON 格式信息用于描述 MCP 服务器的启动与连接参数,帮助 MCP 客户端在启动阶段了解如何连接服务器。请注意,实际连接时请使用应用内实际生成的 Bearer Token;以下示例仅用于说明参数含义。
{ "serverName": "Android Phone MCP Server", "command": "startForegroundService", "args": [ "se.premex.mcp/.McpServerService", "--port=3001", "--bearerToken=YOUR_TOKEN" ], "notes": "端口默认为 3001,使用 Bearer Token 进行认证。设备需处于同一网络以便 MCP 客户端访问。" }
说明:
- serverName:服务器的显示名称,便于在客户端区分和管理
- command 和 args:在客户端可参考的“启动命令与参数”信息,尽量与设备实现和应用行为一致,便于理解如何触发 MCP 服务器进程/服务(实际启动方式可能因平台而异,Android 端通常通过应用自身服务启动)
- 该配置仅用于描述性目的,真实连接需以设备端实际生成的启动信息和令牌为准
基本使用方法
- 在 MCP 客户端中指定服务器地址,例如 http://设备IP:3001/sse,并提供 Bearer Token
- 通过 MCP 客户端发起请求以读取资源、调用工具、获取并渲染 Prompts
- 通过应用 UI 管理工具的启用状态、权限和免责声明
- 如遇连接问题,检查网络连通性、令牌正确性以及服务器日志输出
信息
分类
桌面与硬件