# 移行

legacyまたはdirect-client setupから移行し、scope、identity、削除の境界を維持します。

- Canonical: https://docs.xmemo.dev/ja/docs/migration
- Locale: ja-JP
- Content-Locale: ja-JP
- Canonical-Content-Digest: fb66f83d45da488fee5cccfe9563c1ab56211a358d339b0f73df16cfed352b5f
- Edition-Digest: d84a3bbd457f8016070cb4f8f063e927170488ca2fc70fec637f83c6d242b674
- Source-Revision: sha256:a9d9383136b66e379e92a66eabd971c6ca172b426fff3067024039b4e2ec6f2e

## direct-token clientからOAuthへ移行する

clientがOAuthに対応している場合、切り替えによってlocal configurationに保存されたbearer tokenを削除できます。Memory、scope、attributionは変わらず、credential pathだけが移動します。

- XMEMO_KEYを削除する前に、clientがOAuth対応と表示されることを確認します。
- 再接続してmemory:readとmemory:writeを承認します。
- 何かを書き込む前に、無害なrecallを実行します。
- 古いconfiguration fileと環境からtokenを削除します。

## 移行前: direct token configuration

```json
{
  "mcpServers": {
    "XMemo": {
      "type": "http",
      "url": "https://xmemo.dev/mcp",
      "headers": { "Authorization": "Bearer ${env:XMEMO_KEY}" }
    }
  }
}
```

## 移行後: OAuth configuration

Hosted server URLだけが残り、grantがscopeを提供します。

```json
{
  "servers": {
    "XMemo": {
      "type": "http",
      "url": "https://xmemo.dev/mcp"
    }
  }
}
```

## 移行を確認する

先にreadを行うことで、壊れたcredentialを保存済みmemoryを変更せずに検出できます。

```ts
await client.recallContext('current task and recent decisions', {
  preferWorking: true,
});
```

