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 IDLuego, 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 disponibleCuando 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 esperanControlador HTTP con punto final
/wait_for_response/{responseId}
: se bloquea hasta que la respuesta esté disponible
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
- -securityAlicense-qualityAn MCP server that enables interaction with Kubernetes/Minikube clusters through natural language, allowing AI agents like Codename Goose to manage Kubernetes resources via the Model Context Protocol.Last updated -2MIT License
- -securityAlicense-qualityAn MCP server that enables web searches using a SearxNG instance, allowing MCP-compatible applications like Goose to perform internet searches.Last updated -GPL 3.0
- -securityAlicense-qualityAn MCP server that enables interaction with Kubernetes resources through natural language interfaces like Goose CLI, allowing users to get, read, and patch Kubernetes resources.Last updated -Apache 2.0
- -securityAlicense-qualityGives Goose/Cursor access to your iOS/macOS project index through the Model Control Protocol (MCP) and IndexStoreDB. This provides exhaustive lists of function call sites to help your agent with refactoring and code navigation.Last updated -18Apache 2.0