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(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 핸들러: 응답이 가능할 때까지 차단됨
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