使用说明

项目简介

本仓库实现一个基于 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 获取用户同意

安装步骤

  1. 在设备上安装应用(Google Play 商店中的应用,或从源码构建安装 apk)
  2. 首次运行应用:授予必要权限,完成初始配置
  3. 在应用内启用需要暴露的工具(逐一查看免责声明并获得用户同意)
  4. 启动服务器,获取或生成 Bearer Token
  5. 在 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 管理工具的启用状态、权限和免责声明
  • 如遇连接问题,检查网络连通性、令牌正确性以及服务器日志输出

信息

分类

桌面与硬件