Integrations
Enables creation and management of web application styles through custom CSS files stored in app directories
Supports web application functionality through custom JavaScript code, including integration with Goose API via a helper script
Provides package distribution capabilities, with instructions for building and publishing the MCP server to PyPI
鹅应用程序制作器
该 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 处理程序:阻塞直到响应可用
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 -3925
- -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