구스 앱 메이커
이 MCP(Model Context Protocol) 서버를 사용하면 사용자가 Goose를 통해 웹 애플리케이션을 만들고, 관리하고, 제공할 수 있으며, API 호출, 데이터 액세스 등에 Goose를 활용할 수 있습니다.
설치하다
여기를 클릭하여 구스에 설치하세요 🪿 🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿
특징
- 기본 지침으로 새로운 웹 애플리케이션 만들기
~/.config/goose/app-maker-apps
디렉토리에 앱을 저장합니다(각 앱은 자체 하위 디렉토리에 있음)- 로컬에서 필요에 따라 웹 애플리케이션 제공
- 기본 브라우저에서 웹 애플리케이션을 엽니다(가능하면 크롬리스로 실행).
- 사용 가능한 모든 웹 애플리케이션을 나열합니다
- Goose를 일반 백엔드로 사용할 수 있는 앱을 만듭니다.
예시
goose를 통해 데이터 로드(확장 기능 재사용)
구스는 귀하의 앱을 추적합니다:
주문형 앱 만들기
풍부한 표 또는 목록 데이터도 표시합니다.
소스에서의 사용법
예를 들어 거위의 경우:
지엑스피1
중요: 이 MCP는 현재 goose 데스크톱 앱에서 실행해야 합니다(goose-server/goosed에 액세스하기 때문).
건축 및 출판
선택 사항: UV를 사용하여 깨끗한 환경에서 빌드
출판
pyproject.toml
에서 버전을 업데이트합니다:
- 패키지를 빌드하세요:
- PyPI에 게시:
작동 원리
이 MCP는 앱을 제공할 뿐만 아니라 앱이 goosed와 자체 세션을 통해 goose와 통신할 수 있도록 허용합니다.
개요
이 시스템은 웹 애플리케이션이 Goose에 요청을 보내고 메인 스레드를 차단하지 않고 응답을 받을 수 있도록 비차단 비동기 요청-응답 패턴을 구현합니다. 이는 다음 사항들의 조합을 통해 구현됩니다.
- 서버 측의 차단 엔드포인트
- 클라이언트 측의 비동기 JavaScript
- 스레드 동기화를 통한 응답 저장 메커니즘
웹 앱 구조
웹 앱은 리소스/템플릿을 기반으로 요청에 따라 제작(또는 다운로드)됩니다. 각 웹 앱은 ~/.config/goose/app-maker-apps
아래의 자체 디렉터리에 다음과 같은 구조로 저장됩니다.
goose-app-manifest.json
파일에는 다음을 포함하여 앱에 대한 메타데이터가 포함되어 있습니다.
- name: 앱의 표시 이름
- 유형: 앱 유형(예: "정적", "반응형" 등)
- 설명: 앱에 대한 간략한 설명
- created: 앱이 생성된 타임스탬프
- 파일: 앱의 파일 목록
1. 클라이언트 측 요청 흐름
클라이언트가 Goose로부터 응답을 받고 싶어할 때:
- 사용자가 요청을 시작합니다(예: "목록 응답 가져오기" 클릭).
- 클라이언트는 요청 함수 중 하나(
gooseRequestText
,gooseRequestList
또는gooseRequestTable
)를 호출합니다. - 이 함수는 고유한
responseId
생성하고 이 ID로app_response
호출하라는 지침과 함께 Goose에 요청을 보냅니다. - 그런 다음 함수는
/wait_for_response/{responseId}
엔드포인트를 폴링하는waitForResponse(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를 통해 웹 애플리케이션을 만들고, 관리하고, 제공할 수 있으며, 구성 가능한 디렉토리에 앱을 저장하고 웹 애플리케이션 제공 기능을 제공할 수 있습니다.
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