# Zedは速い。それでもエージェントはコードを探す必要がある。

Canonical source: https://maguyva.ai/ja/for-zed

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Zedのエージェントは、あなたが開いたファイルと与えた指示をもとに作業します。Maguyvaはリポジトリ全体をインデックス化してMCP経由で返すので、エージェントは推測する代わりにシンボルの場所を尋ねられます。

> context_serversのエントリは1つ。URLとAuthorizationヘッダーだけ。

## Zedについて知っておくこと

Zed特有の4つの事実。どれも難しくありません。

### settings.json

リモートサーバーは`context_servers`の下に置きます。`zed: open settings file`でファイルを開くか、Settings → AI → MCP Serversからサーバーを追加します。

### URLでリモート接続

ZedはMaguyvaのリモートエンドポイントにHTTPで直接接続します。ローカルプロセスもNode.jsも不要です。

### ヘッダーにそのまま記述

Zedのヘッダーでの環境変数展開はこのガイドでは検証していないため、キーは`Authorization`ヘッダーに直接書きます。コミットするファイルではなく、ユーザー設定に置いてください。

### ツールの権限

Zedはデフォルトでツール呼び出しのたびに確認します。`agent.tool_permissions.tools`の下で、`mcp:maguyva:find_symbol`のようなキーを使い、Maguyvaのツールを1つずつ許可できます。

## プロジェクトの指示は作業上の取り決めです。使いましょう。

```text
# .rules
- 変更を完了とする前に、リポジトリのテストコマンドを実行する。
- 依頼されたパッケージの中だけを編集する。
```

Zedが読み込むプロジェクト指示ファイルは1つだけです。`.rules`で始まり`AGENTS.md`や`CLAUDE.md`を含む固定リストの中で、最初に見つかったものです。個人の指示は`~/.config/zed/AGENTS.md`に置きます。用途は次のとおり:

- ビルド、テスト、lintのコマンド。
- エージェントが何度も間違える規約。
- エージェントが触れてはいけないディレクトリ。

指示ファイルはエージェントに作業の仕方を教えます。しかし、これから変更する関数を4,000個のファイルのうちどれが呼んでいるかは教えられません。

## 開いたバッファの限界

Zedのエージェントが目の前のファイルからは学べない3つのこと。

### // 開いたファイルはリポジトリではない

エージェントに見えるのは、あなたが開いたものとgrepした結果だけです。別パッケージにある同名のヘルパーは、間違った方が出荷されるまで見分けがつきません。

### // 呼び出し元は画面にない

“このシグネチャを変えたら何が壊れる?”はグラフの問いです。インデックスがなければ、エージェントはターンかコンテキストが尽きるまでファイルを1つずつ読み続けます。

### // コンテキストには予算がある

状況把握のためにエージェントが開くファイルは、変更そのものに使えたはずのトークンを消費します。file:line付きのランク付けされた回答1つは、手探りの読み込み10回より安く済みます。

## ZedのコンテキストサーバーとしてのMaguyva

context_serversのエントリ1つで、Zedのエージェントが得られるもの:

- **インデックス済みリポジトリに対する11個のツール**: セマンティック、構造（AST）、グラフ、テキスト検索に加え、シンボル検索、依存元、ファイル取得。
- **ファイルパスと行番号付きの回答**: 285以上の言語に対応。エージェントは最初から正しいファイルを開けます。
- **常に最新のツール一覧**: サーバーが変更を通知すると、Zedは再起動なしでそのサーバーのツールを再読み込みします。

> Zedはエージェントに*速いエディタ*を与える。
> Maguyvaはエージェントに*コードの地図*を与える。

## 2つのワークフロー

まず地図に聞き、それから編集する。

### 01. エージェントがタブを開く前に実装を見つける

```text
zed agent> 外部Webhookのリトライポリシーはどこ?

find_symbol("retryPolicy")
  src/webhooks/dispatch.ts:41   retryPolicy()   ← 実装
  src/webhooks/__mocks__/dispatch.ts:9   ← モック

→ エージェントはモックではなくdispatch.ts:41を開きます。
[exit 0]
```

ランク付けされた検索1回が、grepの往復を置き換えます。回答はエージェントがそのまま開けるパスと行で返ってきます。

### 02. シグネチャ変更の前に依存元を確認する

```text
zed agent> fetchInvoiceにtimeout引数を追加して

dependency_search("fetchInvoice", dependents)
  4パッケージにまたがる7つの呼び出し元

→ エージェントは7つの呼び出し箇所を一度に更新します。
[exit 0]
```

影響範囲は、ビルドが失敗した後ではなく、最初の編集の前に分かります。

## Zedでのセットアップ

3ステップ。Freeプラン:リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。

### 01. maguyva.aiでリポジトリをインデックス化

回答を評価できるよう、すでによく知っているリポジトリを選びましょう。

### 02. Zedの設定のcontext_serversにMaguyvaを追加

`~/.config/zed/settings.json`

```json
{
  "context_servers": {
    "maguyva": {
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer mgv_xxxx"
      }
    }
  }
}
```

### 03. プレースホルダーを置き換えて、質問を1つしてみる

`mgv_xxxx`をあなたのAPIキーに置き換えて保存します。答えをすでに知っている質問をエージェントに1つして、引用されたファイルを開いてみましょう。

Zed公式の[MCPドキュメント](https://zed.dev/docs/ai/mcp)に、コンテキストサーバー、エージェントプロファイル、ツール権限の説明があります。

## すでに知っているリポジトリを1つインデックス化。

MCP経由でZedを接続し、確認できる質問を1つしてみましょう。
