グースアプリメーカー
この MCP (Model Context Protocol) サーバーを使用すると、ユーザーは、API 呼び出し、データ アクセスなどに Goose を利用する Web アプリケーションを Goose 経由で作成、管理、提供できます。
インストール
Goose にインストールするにはここをクリックしてください🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿
特徴
基本的な指示から新しいWebアプリケーションを作成する
アプリを
~/.config/goose/app-maker-appsディレクトリに保存します(各アプリは独自のサブディレクトリに保存されます)。ウェブアプリケーションをオンデマンドでローカルに提供する
ウェブ アプリケーションをデフォルトのブラウザで開く (可能であればクロムレスで開く)
利用可能なすべてのWebアプリケーションを一覧表示します
Gooseを汎用バックエンドとして使用できるアプリを作成する
例
Goose 経由でデータをロードする(拡張機能を再利用)
Goose はあなたのアプリを追跡します:
オンデマンドでアプリを作成
豊富な表形式やリスト形式のデータも表示
ソースからの使用法
例えばガチョウの場合:
重要: この MCP は現時点では Goose デスクトップ アプリで実行する必要があります (goose-server/goosed にアクセスするため)
構築と公開
オプション: UVを使用してクリーンな環境で構築する
出版
pyproject.tomlのバージョンを更新します:
パッケージをビルドします。
PyPI に公開:
仕組み
この MCP はアプリを提供するだけでなく、goosed と独自のセッションを介してアプリが goose と通信できるようにします。
概要
このシステムは、非ブロッキングの非同期リクエスト・レスポンスパターンを実装しており、これによりウェブアプリケーションはメインスレッドをブロックすることなくGooseにリクエストを送信し、レスポンスを受信できます。これは、以下の要素を組み合わせることで実現されています。
サーバー側のブロッキングエンドポイント
クライアント側の非同期JavaScript
スレッド同期を備えたレスポンス保存メカニズム
ウェブアプリの構造
ウェブアプリは、リクエストに応じてリソース/テンプレートに基づいて作成(またはダウンロード)されます。各ウェブアプリは~/.config/goose/app-maker-apps配下の専用ディレクトリに、以下の構造で保存されます。
goose-app-manifest.jsonファイルには、次のようなアプリに関するメタデータが含まれています。
name: アプリの表示名
type: アプリの種類 (例: 「static」、「react」など)
説明: アプリの簡単な説明
created: アプリが作成された時のタイムスタンプ
ファイル: アプリ内のファイルのリスト
1. クライアント側のリクエストフロー
クライアントが Goose から応答を得たい場合:
ユーザーがリクエストを開始する(例:「リストの応答を取得」をクリックする)
クライアントはリクエスト関数(
gooseRequestText、gooseRequestList、またはgooseRequestTable)のいずれかを呼び出します。この関数は一意の
responseIdを生成し、このIDでapp_responseを呼び出すように指示するリクエストをGooseに送信します。次に関数は
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 ハンドラー: 応答が利用可能になるまでブロックします
local-only server
The server can only run on the client's local machine because it depends on local resources.
この MCP サーバーを使用すると、ユーザーは Goose を通じて Web アプリケーションを作成、管理、提供し、構成可能なディレクトリにアプリケーションを保存し、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 -1GPL 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 -19Apache 2.0