使用说明

项目简介

Gosling 是一个 Android 平台的开源智能体项目,旨在帮助用户自动化手机上的各种任务。与传统的 MCP 服务器不同,Gosling 提出了一种移动端 MCP (Mobile MCP) 的概念。它允许其他的 Android 应用程序通过特定的 Intent 广播机制向 Gosling 注册并提供工具,从而扩展 Gosling 的能力。这种机制无需集中式的服务器,而是利用 Android 系统本身的应用间通信能力,实现了一种去中心化的、更适合移动环境的 MCP 架构。

主要功能点

  • 移动端 MCP 协议扩展: 定义了一套基于 Android Intent 广播的 "移动端 MCP" 协议,用于工具的注册和调用。
  • 工具发现机制: Gosling 应用可以动态发现并利用其他 Android 应用通过 "移动端 MCP" 协议暴露的工具。
  • 跨应用任务自动化: 通过集成来自不同应用的工具,Gosling 可以执行涉及多个应用的复杂自动化任务。
  • 通知响应: Gosling 可以响应 Android 系统通知,并根据预设规则自动执行任务。
  • 作为 Home 屏幕替代: Gosling 可以作为 Android 设备的 Home 屏幕,提供更智能化的交互体验。

请注意: Gosling 并非传统的 MCP 服务器实现,它没有采用 JSON-RPC 等标准 MCP 协议,也没有资源管理和 Prompt 模板功能。它专注于移动端场景,利用 Android 特有的应用间通信机制实现了类似 MCP 协议的工具扩展能力。

安装步骤

  1. 环境准备: 确保已安装 Android Studio 和 Android SDK,并配置好 Android 开发环境。
  2. 克隆仓库: 从 GitHub 克隆 Gosling 仓库到本地。
    git clone https://github.com/block/gosling.git
  3. 导入项目: 在 Android Studio 中选择 "Open an existing Android Studio project",导入克隆下来的 Gosling 项目。
  4. 编译运行: 使用 Android Studio 编译并运行 Gosling 项目到 Android 模拟器或真机设备。

服务器配置 (移动端 MCP 客户端配置)

由于 Gosling 本身作为 MCP 客户端,需要配置才能发现和使用 "移动端 MCP 服务器" (即提供工具的 Android 应用)。但这里的 "服务器配置" 与传统 MCP 服务器的概念不同,不需要配置服务器的启动命令和参数

在 Gosling 的 "移动端 MCP" 架构中,"服务器" 指的是那些实现了 "移动端 MCP" 协议并提供工具的 Android 应用 (例如 'breezy-weather' 示例应用)。 Gosling 作为 "客户端",通过监听特定的 Intent 广播来发现和调用这些 "服务器" 提供的工具。

因此,不需要对 Gosling 应用本身进行额外的服务器配置。 你只需要确保:

  1. 安装并运行 Gosling 应用。
  2. 安装并运行实现了 "移动端 MCP" 协议的工具提供应用 (例如 'breezy-weather' 示例应用)。 这些应用会在后台广播 Intent 来声明它们提供的工具。

示例 "服务器" (工具提供应用) 配置说明 (以 'breezy-weather' 为例):

为了让 Gosling 能够发现 'breezy-weather' 提供的工具,'breezy-weather' 应用需要配置一个 'BroadcastReceiver' (例如 'WeatherMCP'),并在其 'AndroidManifest.xml' 文件中注册。

'WeatherMCP.kt' (示例代码,无需用户配置,开发者需要实现类似代码来扩展 Gosling 功能):

class WeatherMCP : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        when (intent?.action) {
            "com.example.ACTION_MMCP_DISCOVERY" -> {
                val bundle = Bundle().apply {
                    putStringArray("tools", arrayOf("getWeather"))
                    putString("getWeather.description", "Returns current weather for given location.")
                    putString("getWeather.parameters", "{\"location\": \"string\"}")
                }
                setResultExtras(bundle)
            }

            "com.example.ACTION_MMCP_INVOKE" -> {
                val tool = intent.getStringExtra("tool")
                val params = intent.getStringExtra("params") // JSON string

                val result = when (tool) {
                    "getWeather" -> "Weather is sunny, 25°C"
                    else -> "Unknown tool"
                }

                setResultData(result)
            }
        }
    }
}

'AndroidManifest.xml' (示例配置,无需用户配置,开发者需要配置):

        <receiver android:name=".WeatherMCP" android:exported="true">
            <intent-filter>
                <action android:name="com.example.ACTION_MMCP_DISCOVERY" />
                <action android:name="com.example.ACTION_MMCP_INVOKE" />
            </intent-filter>
        </receiver>

总结: 用户无需手动配置服务器地址或参数。 只需要安装 Gosling 和兼容的工具提供应用,Gosling 就能自动发现并使用这些应用提供的工具。

基本使用方法

  1. 启动 Gosling 应用。
  2. 确保安装并运行了提供 "移动端 MCP" 工具的应用 (例如 'breezy-weather')。
  3. Gosling 将自动发现并可以使用这些应用提供的工具来执行自动化任务。
  4. 具体的使用方式和可执行的任务取决于 Gosling 应用本身的功能实现以及已安装的工具提供应用。 请参考 Gosling 应用的界面和文档了解更多使用细节。

信息

分类

开发者工具