// 設定ファイル
config.yaml
拡張機能は~/.config/goose/config.yamlのextensionsの下に置きます。goose configure → Add Extensionでも同じ種類のエントリが書き込まれます。
Gooseユーザー向け
Gooseは拡張機能を通じて作業し、拡張機能はどれもMCPサーバーです。Maguyvaはコードベースをインデックス化する拡張機能なので、Gooseはディレクトリを一覧する代わりに、どこに何があるかを尋ねられます。
Freeプラン:リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。
.goosehintsは作業の仕方に。Maguyvaは今のコードの中身に。 Goose特有の4つの事実。
// 設定ファイル
拡張機能は~/.config/goose/config.yamlのextensionsの下に置きます。goose configure → Add Extensionでも同じ種類のエントリが書き込まれます。
// トランスポート
Maguyvaはstreamable_http拡張機能なので、Gooseがエンドポイントに直接接続します。ローカルプロセスもNode.jsも不要です。URLはurlではなくuriに書きます。
// キー
Gooseはリクエストのたびにheadersマップを送るので、キーはAuthorizationヘッダーに書きます。env_keysに列挙した環境変数から埋めることもできます。
// ツールフィルター
拡張機能はツールの一部だけを公開できます。使いたいツールをavailable_toolsに列挙するか、空のままにしてすべてを使います。
# .goosehints
- npmではなくpnpmを使う。
- 変更を完了とする前に結合テストを実行する。GooseはデフォルトでAGENTS.mdと.goosehintsを読み込みます。グローバルなヒントは~/.config/goose/.goosehintsから、プロジェクトのヒントはリポジトリから、さらにサブフォルダで作業する際にはネストされたファイルも読みます。ヒントにはDeveloper拡張機能が必要です。向いているのは:
ヒントはプロジェクトを説明します。“これに依存しているのは何?”には答えません。
Gooseがシェルコマンドで1ファイルずつ埋めている3つの穴。
見慣れないリポジトリでは、Gooseはディレクトリ一覧とファイルの読み込みで状況を把握します。そのたびに、タスクが始まる前からコンテキストを消費します。
テキスト検索では、本当の呼び出しと、コメントやモックや同名のメソッドとを区別できません。
前の四半期に書かれたヒントファイルは、前の四半期の構成を説明しています。それでもGooseは従います。
extensionsのエントリ1つで、Gooseが得られるもの:
ヒントは、Gooseに作業の仕方を教える。
Maguyvaは、Gooseにコードの地図を与える。
まず地図、それからGooseに任せる。
// workflow 01
goose> エクスポートが0行で終わることがあるのはなぜ? semantic_search("export job empty result") src/export/runner.ts:118 flushBatch() src/export/filters.ts:40 applyTenantFilter() → Gooseはexportパッケージ全体ではなく、2つのファイルを読みます。 [exit 0]
Gooseがシェルを開く前に、ランク付けされた結果が探す範囲を絞り込みます。
// workflow 02
goose> Notifierクラスをメール用とSMS用に分割して dependency_search("Notifier", dependents) 5パッケージにまたがる11件の参照 → 最初の編集の前に、計画が11件すべてをカバーします。 [exit 0]
Gooseはgrepを何度も重ねる代わりに、1回の呼び出しで依存元の完全なリストを得ます。
3ステップ。Freeプラン:リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。
// step 01
回答を評価できるよう、すでによく知っているリポジトリを選びましょう。
// step 02
~/.config/goose/config.yaml
extensions:
maguyva:
name: maguyva
type: streamable_http
uri: https://maguyva.tools/mcp
enabled: true
headers:
Authorization: Bearer mgv_xxxx
timeout: 300
// step 03
mgv_xxxxをあなたのAPIキーに置き換え、goose sessionを実行して、答えをすでに知っている質問を1つしてみましょう。YAMLはインデントに敏感です。タブではなくスペースを使ってください。