# Muse Code

Meta のターミナル型コーディングエージェントである Muse Code を、~/.config/muse/settings.json の mcpServers エントリ 1 つで、OAuth 経由で XMemo に接続します。

- Canonical: https://docs.xmemo.dev/ja/docs/mcp/muse-code
- Locale: ja-JP
- Content-Locale: ja-JP
- Canonical-Content-Digest: c631844310ded8cc16c2cad894551ed2d09965b65311a9761a503f7d931352f8
- Edition-Digest: 36c3a4dcb09db873b8620272be2e8a432f3a01890b422a30d9aa2cae73ce8f37
- Source-Revision: sha256:e4bb1025634b1d0521ab71134877bf1e2b23afe54bf4b03acb52c414a035e7f5

## 前提条件

~/.config/muse/settings.json から MCP サーバーを読み込む Muse Code のインストールを使用します。Muse Code は OAuth クライアントとして XMemo に接続するため、設定ファイルにトークンは含まれません。

- エンドポイント: https://xmemo.dev/mcp。
- 認証モード: 動的クライアント登録を使用する OAuth（ブラウザ PKCE）。
- 設定ファイル: ~/.config/muse/settings.json。"schema_version": 1 を含める必要があります。
- 付与されるスコープ: memory:read、memory:write、knowledge:read、knowledge:write。
- 自動セットアップ: xmemo setup muse-code は次回の XMemo CLI リリースで提供予定です。それまでは、以下の手動設定を使用してください。

## settings.json に XMemo を追加する

~/.config/muse/settings.json は Muse の外部のターミナルから編集してください。Muse のサンドボックスは、Muse セッション内で行われたこのファイルへの編集を拒否します。トップレベルの camelCase キー mcpServers の下に xmemo エントリを追加します。このファイルにはトークンや Authorization ヘッダーを記述しないでください。

```json
{"schema_version": 1, "mcpServers": {"xmemo": {"type": "streamable-http", "url": "https://xmemo.dev/mcp", "mode": "optional"}}}
```

## mcpServers のみを残す

Muse の公開 Web ドキュメントには今も snake_case の mcp_servers キーが記載されていますが、これは古い情報です。settings.json に mcpServers と mcp_servers の両方が含まれていると、Muse はすべての MCP サーバーを破棄します。既存の mcp_servers ブロックの名前を mcpServers に変更してそのエントリを統合し、ファイルには mcpServers のみが残るようにしてください。

## OAuth でサインインする

xmemo サーバーのログインコマンドを実行し、ブラウザでアクセスを承認します。ブラウザ UI のないマシンでは、--headless を追加します。

```bash
muse mcp login xmemo
# Without a browser UI:
muse mcp login xmemo --headless
```

## クライアントを再起動する

サインイン後に Muse を再起動して、新しい OAuth グラントで xmemo サーバーを読み込めるようにします。

## XMemo ツールを確認する

どのツールも呼び出さずに、XMemo ツールの一覧を表示するよう Muse に依頼します。

```bash
muse exec "List the names of the tools you have from the xmemo MCP server. Do not call any tools."
```

## 実際の recall 呼び出しでテストする

最初の MCP 呼び出しは読み取り専用にします。これはヘルスチェック用のプレースホルダーではなく実際のリコール呼び出しであり、メモリへの書き込みは行いません。

```text
recall({ query: "connection check", limit: 1 })
```

## 期待される応答（リテラル形式）

成功した呼び出しは、以下の公開されたランク付けされたテキスト形式を返します。参照とコンテンツは、承認されたメモリ空間からの実際の値です。

```text
### XMemo Memory Results:
1. Reference: <opaque-memory-id> | Location: <location>
   > <memory content>
```

## XMemo Skill

Muse は ~/.agents/skills、~/.claude/skills、~/.codex/skills をスキャンするため、Claude Code または Codex 用にすでにインストールされている XMemo Skill は、変更なしで Muse でも動作します。

## よくあるエラー

Muse Code は OAuth 経由で接続します。ほとんどのエラーは、設定キー、サインイン手順、またはサンドボックスに起因します。

- xmemo ツールが一覧に表示されない: settings.json に mcpServers と mcp_servers の両方が含まれているため、Muse がすべての MCP サーバーを破棄しました。mcpServers のみを残してください。
- invalid_grant: 認可が無効、期限切れ、または使用済みであるか、選択した接続が有効ではなくなっています。muse mcp login xmemo を再度実行してから、Muse を再起動してください。
- 403 insufficient_scope: 承認されたスコープではこの呼び出しをカバーできません。再度サインインして、memory スコープと knowledge スコープを承認してください。
- settings.json への編集が拒否される: 変更が Muse セッション内で行われました。外部のターミナルからファイルを編集してください。

## Muse Code

OAuth client: add xmemo under mcpServers in ~/.config/muse/settings.json, then run muse mcp login xmemo and restart Muse. No token goes in the config. Keep only mcpServers: if mcp_servers is also present, Muse drops every MCP server.

```
{"schema_version": 1, "mcpServers": {"xmemo": {"type": "streamable-http", "url": "https://xmemo.dev/mcp", "mode": "optional"}}}
```
