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
Creador de aplicaciones Goose
Este servidor MCP (Protocolo de contexto de modelo) permite a los usuarios crear, administrar y servir aplicaciones web a través de Goose, que utilizan Goose para llamadas de API, acceso a datos y más.
Instalar
haga clic aquí para instalar en goose 🪿 🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿
Características
- Crear nuevas aplicaciones web a partir de instrucciones básicas
- Almacene las aplicaciones en el directorio
~/.config/goose/app-maker-apps
(cada aplicación en su propio subdirectorio) - Servir aplicaciones web localmente bajo demanda
- Abra las aplicaciones web en el navegador predeterminado (y sin cromo si es posible)
- Enumera todas las aplicaciones web disponibles
- Crear aplicaciones que puedan usar Goose como un backend genérico.
Ejemplos
Cargar datos a través de Goose (reutilizando sus extensiones)
Goose realiza un seguimiento de tus aplicaciones:
Crea aplicaciones a pedido
Mostrar también datos tabulares o de lista enriquecidos
Uso de la fuente
p.ej. en ganso:
IMPORTANTE: este MCP debe ejecutarse en la aplicación de escritorio Goose en este momento (ya que accede a goose-server/goosed)
Construcción y publicación
Opcional: Construir en un entorno limpio utilizando rayos UV.
Publicación
- Actualizar la versión en
pyproject.toml
:
- Construya el paquete:
- Publicar en PyPI:
Cómo funciona
Este MCP ofrece aplicaciones, pero también les permite hablar con Goose a través de Goosed y su propia sesión:
Descripción general
El sistema implementa un patrón de solicitud-respuesta asíncrono y sin bloqueo que permite a las aplicaciones web enviar solicitudes a Goose y recibir respuestas sin bloquear el hilo principal. Esto se logra mediante una combinación de:
- Un punto final de bloqueo en el lado del servidor
- JavaScript asincrónico en el lado del cliente
- Un mecanismo de almacenamiento de respuestas con sincronización de subprocesos
Estructura de la aplicación web
Las aplicaciones web se crean (o descargan) a petición, basándose en recursos o plantillas. Cada aplicación web se almacena en su propio directorio, en ~/.config/goose/app-maker-apps
con la siguiente estructura:
El archivo goose-app-manifest.json
contiene metadatos sobre la aplicación, incluidos:
- nombre: Nombre para mostrar de la aplicación
- tipo: Tipo de aplicación (por ejemplo, "estática", "reacción", etc.)
- Descripción: Breve descripción de la aplicación.
- creado: Marca de tiempo cuando se creó la aplicación
- archivos: Lista de archivos en la aplicación
1. Flujo de solicitud del lado del cliente
Cuando un cliente quiere obtener una respuesta de Goose:
- El usuario inicia una solicitud (por ejemplo, al hacer clic en "Obtener respuesta de la lista")
- El cliente llama a una de las funciones de solicitud (
gooseRequestText
,gooseRequestList
ogooseRequestTable
). - La función genera un
responseId
único y envía una solicitud a Goose con instrucciones para llamarapp_response
con este ID - Luego, la función llama
waitForResponse(responseId)
que sondea el punto final/wait_for_response/{responseId}
- Este punto final se bloquea hasta que la respuesta esté disponible o se produzca un tiempo de espera.
- Cuando la respuesta está disponible, se devuelve al cliente y se muestra.
2. Procesamiento del lado del servidor
En el lado del servidor:
- El punto final
/wait_for_response/{responseId}
usa variables de condición para bloquear hasta que haya una respuesta disponible - Cuando Goose procesa la solicitud, llama a la función
app_response
con los datos de respuesta y elresponseId
- La función
app_response
almacena la respuesta en el diccionarioapp_responses
y notifica a todos los hilos en espera mediante la variable de condición. - Luego, la solicitud HTTP bloqueada se desbloquea y devuelve la respuesta al cliente.
3. Sincronización de subprocesos
El sistema utiliza threading.Condition
de Python.Condición para la sincronización de subprocesos:
- Cuando un cliente solicita una respuesta que aún no está disponible, se crea una variable de condición para ese
responseId
- El hilo del controlador HTTP espera esta condición con un tiempo de espera (30 segundos)
- Cuando la respuesta esté disponible, se notifica la condición.
- Si el tiempo de espera expira antes de que la respuesta esté disponible, se devuelve un error.
Componentes clave
Funciones del lado del cliente
gooseRequestText(query)
: solicita una respuesta de textogooseRequestList(query)
: solicita una respuesta de listagooseRequestTable(query, columns)
: solicita una respuesta de tabla con las columnas especificadaswaitForResponse(responseId)
: espera una respuesta con el ID dado
Funciones del lado del servidor
app_response(response_id, string_data, list_data, table_data)
: almacena una respuesta y notifica a los que esperan- Controlador HTTP con punto final
/wait_for_response/{responseId}
: se bloquea hasta que la respuesta esté disponible
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.
Este servidor MCP permite a los usuarios crear, administrar y servir aplicaciones web a través de Goose, almacenando aplicaciones en directorios configurables y brindando capacidades de servicio de aplicaciones 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 -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