鹅应用程序制作器
该 MCP(模型上下文协议)服务器允许用户通过 Goose 创建、管理和提供 Web 应用程序,利用 Goose 进行 API 调用、数据访问等。
安装
单击此处安装鹅🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿
特征
- 根据基本指令创建新的 Web 应用程序
- 将应用程序存储在
~/.config/goose/app-maker-apps
目录中(每个应用程序都在其自己的子目录中) - 按需在本地提供 Web 应用程序
- 在默认浏览器中打开 Web 应用程序(如果可能的话,使用无边框浏览器)
- 列出所有可用的 Web 应用程序
- 制作可以使用 goose 作为通用后端的应用程序
示例
通过 goose 加载数据(重新使用其扩展)
goose 会跟踪您的应用程序:
按需制作应用程序
还显示丰富的表格或列表数据
来源使用情况
例如鹅:
重要提示:此 MCP 目前需要在 goose 桌面应用中运行(因为它访问 goose-server/goosed)
构建和发布
可选:使用紫外线在干净的环境中构建
出版
- 更新
pyproject.toml
中的版本:
- 构建包:
- 发布到 PyPI:
工作原理
该 MCP 不仅提供应用程序,还允许它们通过 goosed 和它们自己的会话与 goose 对话:
概述
该系统实现了非阻塞、异步的请求-响应模式,允许 Web 应用程序向 Goose 发送请求并接收响应,而不会阻塞主线程。这是通过以下方式实现的:
- 服务器端的阻塞端点
- 客户端的异步 JavaScript
- 一种线程同步的响应存储机制
Web 应用程序结构
Web 应用是根据请求基于资源/模板制作(或下载)的。每个 Web 应用都存储在~/.config/goose/app-maker-apps
下的独立目录中,其结构如下:
goose-app-manifest.json
文件包含有关该应用程序的元数据,包括:
- name:应用程序的显示名称
- 类型:应用程序的类型(例如“静态”,“反应”等)
- 描述:应用程序的简要描述
- created:应用程序创建的时间戳
- 文件:应用程序中的文件列表
1. 客户端请求流程
当客户希望得到 Goose 的回应时:
- 用户发起请求(例如点击“获取列表响应”)
- 客户端调用其中一个请求函数(
gooseRequestText
、gooseRequestList
或gooseRequestTable
) - 该函数生成一个唯一的
responseId
并向Goose发送一个请求,指示其使用该ID调用app_response
- 然后,该函数调用
waitForResponse(responseId)
来轮询/wait_for_response/{responseId}
端点 - 此端点阻塞,直到响应可用或发生超时
- 当响应可用时,它将返回给客户端并显示
2. 服务器端处理
在服务器端:
/wait_for_response/{responseId}
端点使用条件变量来阻止,直到有响应可用- 当 Goose 处理请求时,它会使用响应数据和
responseId
调用app_response
函数 app_response
函数将响应存储在app_responses
字典中,并使用条件变量通知任何等待的线程- 被阻止的 HTTP 请求随后被解除阻止,并将响应返回给客户端
3.线程同步
本系统采用Python的threading.Condition
进行线程同步:
- 当客户端请求尚未可用的响应时,将为该
responseId
创建一个条件变量 - HTTP 处理程序线程等待此条件并超时(30 秒)
- 当响应可用时,通知条件
- 如果在响应可用之前超时,则返回错误
关键组件
客户端函数
gooseRequestText(query)
:请求文本响应gooseRequestList(query)
:请求列表响应gooseRequestTable(query, columns)
:请求具有指定列的表响应waitForResponse(responseId)
:等待具有给定 ID 的响应
服务器端函数
app_response(response_id, string_data, list_data, table_data)
:存储响应并通知服务员- 带有
/wait_for_response/{responseId}
端点的 HTTP 处理程序:阻塞直到响应可用
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
该 MCP 服务器允许用户通过 Goose 创建、管理和提供 Web 应用程序,将应用程序存储在可配置的目录中并提供 Web 应用程序服务功能。
Related MCP Servers
- AsecurityAlicenseAqualityA simple MCP server that facilitates website fetching through a configurable server platform using stdio or SSE transport, allowing integration with tools like Cursor for streamlined access.Last updated -223PythonMIT License
- -securityAlicense-qualityAn MCP server that enables fetching web content using the Node.js undici library, supporting various HTTP methods, content formats, and request configurations.Last updated -668TypeScriptMIT License
- AsecurityFlicenseAqualityAn MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.Last updated -3928
- -securityAlicense-qualityAn MCP server that enables web searches using a SearxNG instance, allowing MCP-compatible applications like Goose to perform internet searches.Last updated -PythonGPL 3.0