项目简介
Mother Goose 是一个专门为 Model Context Protocol (MCP) 设计的服务器实现。它独特的功能在于,允许连接的 AI 客户端(如大型语言模型)通过标准化的 MCP 工具调用接口,直接启动和管理 Block 的 Goose CLI 进程。这些子 Goose 进程(被称为 "goslings")可以被视为主要的 AI 代理创建的子代理,用于并行处理、分派任务或实现递归的问题解决策略。
主要功能点
- 启动子进程: 提供工具 'run_goose',允许 AI 根据需要启动新的 Goose CLI 进程,并为其提供Prompt。
- 管理并行任务: 支持同时运行和管理多个子 Goose 进程,每个进程可以独立工作。
- 监控状态与输出: 通过 MCP 资源接口,AI 客户端可以实时获取所有或指定子进程的状态(运行中、完成、错误)、标准输出和错误输出。
- 释放进程: 提供工具 'release_gosling',允许 AI 客户端在任务完成后主动终止或释放子进程。
- 标准化接口: 所有功能都通过 MCP 标准的资源和工具接口提供,方便任何支持 MCP 的客户端集成和使用。
安装步骤
Mother Goose 基于 Node.js 运行,并依赖 Block's Goose CLI。
- 安装 Node.js: 确保您的系统安装了 Node.js (版本 16 或更高)。您可以访问 Node.js 官网 下载安装包。
- 安装 Block's Goose CLI: 按照 Block 的官方文档 指导安装 Goose CLI,并确保 'goose' 命令可以在您的终端中正常执行,并且已配置有效的 API 密钥。
- 安装 Mother Goose: 打开终端,使用 npx 即可直接运行或通过 npm 全局安装:
- 直接运行 (推荐): 'npx mother-goose [命令]'
- 全局安装: 'npm install -g mother-goose' (安装后可直接使用 'mother-goose [命令]')
- 验证安装: 运行验证脚本检查环境是否配置正确:
这个脚本会检查 Node.js 和 Goose CLI 是否可用。npx mother-goose validate # 或如果您全局安装了: # mother-goose validate
服务器配置 (供MCP客户端使用)
Mother Goose MCP 服务器设计为通过标准输入/输出 (Stdio) 进行通信,这是 MCP 支持的一种常见传输协议。AI 客户端(如支持 MCP 的 LLM 界面或代理框架)需要配置连接到此服务器。
通常,您需要在客户端的 MCP 配置中添加一个新的服务器条目,指向 Mother Goose 的启动命令。
- 启动命令 (command): 通常是 'npx mother-goose'。如果您通过 'npm install -g' 全局安装,也可以是 'mother-goose'。
- 参数 (args): Mother Goose 服务器启动时不需要额外的命令行参数,因此通常留空('[]')。
例如,在支持配置多个 MCP 服务器的客户端中,您的配置可能包含一个类似于以下概念的条目:
// 这是一个概念性的配置示例,实际格式取决于您的AI客户端 { "mcpServers": { "mother-goose-server": { // 给这个服务器实例起一个名字 "command": "npx mother-goose", // 指向 Mother Goose 可执行文件的路径或命令 "args": [], // 启动参数列表 "protocol": "stdio", // 指定使用Stdio协议,通常是默认的无需显式指定 // ... 其他客户端特定的配置项 ... } } }
配置完成后,您的 AI 客户端应该能在启动时发现并连接到 Mother Goose 服务器,并识别其提供的资源和工具能力。
基本使用方法 (通过AI客户端)
一旦您的 AI 客户端成功连接到 Mother Goose 服务器,AI 模型即可利用其提供的 MCP 工具和资源来执行递归 Goose 调用。
- 让AI启动一个子任务: 在 Prompt 中指示 AI 使用 'run_goose' 工具,并提供子任务的描述作为 'prompt' 参数。例如:
AI 客户端解析后,会向 Mother Goose 发送一个 MCP CallTool 请求,调用 'run_goose' 工具,参数为 '{ "prompt": "研究2023年的AI技术进展" }'。请使用 run_goose 工具,让一个子AI研究一下2023年的AI技术进展。 - 让AI查看子进程状态: 提示 AI 使用 'list_goslings' 工具来查看当前有哪些子进程正在运行或已完成。
- 让AI获取子任务结果: 提示 AI 使用 'get_gosling_output' 工具,提供通过 'list_goslings' 获取到的子进程 ID ('process_id'),以读取该子进程的输出内容。
- 让AI释放子进程: 提示 AI 使用 'release_gosling' 工具,提供子进程 ID,释放不再需要的进程资源。
通过组合这些工具和读取子进程资源,AI 客户端可以构建复杂的递归和协作工作流。
信息
分类
AI与计算