项目简介

这是一个基于Model Context Protocol (MCP) 实现的服务器端应用。它专注于通过暴露一系列工具,帮助用户自动完成iOS WebDriverAgent (WDA) 的构建和使用特定描述文件(Provisioning Profile)进行签名的过程。主要服务于需要自动化构建和签名WDA的场景,例如Appium等测试框架。

主要功能点

  • 列出描述文件: 能够扫描本地系统,找到所有可用的iOS描述文件(.mobileprovision),并提供详细信息,供用户选择。
  • 确认账户类型: 允许用户确认所选描述文件关联的Apple开发者账户是个人免费账户还是企业账户,这会影响后续的签名流程。
  • 构建并签名WDA: 使用本地已安装的Xcode和Appium自带的WebDriverAgent源码,根据用户选择的描述文件和账户类型,自动执行构建、打包IPA和重新签名的全过程。

安装步骤

  1. 前提条件:
    • 已安装Node.js和npm/yarn。
    • 已安装Xcode并配置好开发者账户。
    • 已安装Appium(以便获取WebDriverAgent源码)。
    • 系统中存在有效的Mobile Provisioning Profiles。
  2. 获取代码: 克隆该GitHub仓库到本地。
    git clone https://github.com/AppiumTestDistribution/mcp-webdriveragent.git
    cd mcp-webdriveragent
  3. 安装依赖:
    npm install
    # 或 yarn install
  4. 编译 TypeScript: 将 TypeScript 代码编译为 JavaScript。
    npm run build
    # 或 yarn build

服务器配置 (供MCP客户端使用)

要让MCP客户端(如大型语言模型应用)连接并使用此服务,客户端需要知道如何启动该服务器。配置信息通常包含服务器的名称、启动命令及其参数。

  • 服务器名称 (name): 'wda-mcp-server' (这是代码中定义的名称)
  • 启动命令 (command): 'node' (因为这是一个Node.js应用)
  • 命令参数 (args): '["path/to/mcp-webdriveragent/dist/index.js"]' (指向编译后主入口文件的路径。请将 'path/to/mcp-webdriveragent' 替换为你实际克隆仓库的本地路径。注意:主文件通常位于编译后的 'dist' 或 'build' 目录下)

重要: MCP客户端通常通过标准输入输出 (Stdio) 与此类服务器通信,无需额外的网络配置。

基本使用方法

服务器启动后(通常由MCP客户端根据上述配置启动),它会等待客户端的JSON-RPC请求。客户端(例如通过与用户的对话)需要调用服务器暴露的工具来完成WDA签名任务:

  1. 客户端首先调用 'list_tools' 工具,获取可用工具列表及描述。
  2. 根据 'list_tools' 的结果,客户端会发现 'list_provisioning_profiles' 工具。调用此工具以获取系统中所有可用描述文件的列表。客户端可能需要向用户展示这些选项,并获取用户选择的描述文件的UUID。
  3. 根据 'list_provisioning_profiles' 的结果,客户端会发现 'is_free_account' 工具。调用此工具,询问用户所选描述文件是否属于免费开发者账户(true)或企业/付费账户(false),并获取用户的确认。
  4. 最后,客户端调用 'build_and_sign_wda' 工具,传入用户选择的描述文件信息和确认的账户类型。服务器将执行WDA的构建和签名过程,并返回结果,包括签名后IPA文件的路径。

整个过程是基于工具调用的自动化流程,由MCP客户端(通常是与用户交互的LLM)编排和驱动。

信息

分类

开发者工具