# اشتراک‌گذاری سرورهای MCP، تنظیمات و تاریخچه

> چگونه ccam سرورهای MCP، settings.json، CLAUDE.md، agents، skills و تاریخچه گفتگو را بین حساب‌های Claude Code به اشتراک می‌گذارد و ورودها را جدا نگه می‌دارد.

Source: https://ccam.dev/fa/docs/sharing/ · Updated 2026-10-19

هر حساب ورود خود را جداگانه نگه می‌دارد. همه چیزهای دیگر را می‌توان مورد به مورد به اشتراک گذاشت: ccam فایل یا پوشه حساب را به پوشه یک گروه مشترک پیوند می‌دهد، بنابراین تغییری که در یک حساب ایجاد شود در همه حساب‌های آن گروه دیده می‌شود.

## چه چیزهایی را می‌توان به اشتراک گذاشت

| مورد | گزینه | آنچه مشترک می‌شود |
| --- | --- | --- |
| سرورهای MCP | `--mcp` | فایل `mcp.json` گروه که هنگام اجرا به Claude Code داده می‌شود |
| تنظیمات | `--settings` | `settings.json`: مجوزها، hookها، مدل، خط وضعیت |
| حافظه سراسری | `--memory` | `CLAUDE.md` |
| افزونه‌ها | `--extensions` | `agents/`، `commands/`، `skills/`، `plugins/`، `output-styles/`، `rules/` |
| تاریخچه گفتگو | `--history` | `projects/` و `history.jsonl` |

حساب‌های جدید همه چیز را به جز تاریخچه گفتگو به اشتراک می‌گذارند.

فایل‌های ورود `.credentials.json` و `.claude.json` هرگز به اشتراک گذاشته نمی‌شوند. ccam فقط مسیرهای یک فهرست ثابت را پیوند می‌دهد و این دو فایل در آن فهرست نیستند.

## گروه‌ها

`on` یعنی گروه `default`. می‌توانید یک نام هم بدهید تا فقط برخی از حساب‌ها یک مورد را با هم به اشتراک بگذارند:

```sh
ccam share work --history team
ccam share side --history team
```

اکنون `work` و `side` گفتگوها را با یکدیگر به اشتراک می‌گذارند، اما با حساب‌های دیگر شما نه.

## روشن کردن اشتراک‌گذاری

وقتی یک حساب اشتراک‌گذاری یک مورد را آغاز می‌کند، ccam:

1. برنامه‌ای از همه فایل‌هایی که جابه‌جا، کپی یا پیوند خواهد داد چاپ می‌کند و پیش از شروع از شما می‌پرسد؛
2. اگر گروه هنوز خالی باشد، فایل‌های حساب را به پوشه گروه منتقل می‌کند، وگرنه فایل‌هایی را که گروه هنوز ندارد اضافه می‌کند؛
3. وقتی یک فایل در دو طرف متفاوت باشد، می‌پرسد که نسخه گروه نگه داشته شود، نسخه شما استفاده شود یا JSON آن‌ها ادغام شود؛
4. نسخه اصلی شما را در `.ccam-backup/<time>/` داخل پوشه حساب نگه می‌دارد؛
5. نسخه اصلی را با پیوندی به گروه جایگزین می‌کند.

نام فایل‌های گفتگو از شناسه نشست آن‌ها گرفته می‌شود، بنابراین تاریخچه چند حساب بدون تداخل با هم ترکیب می‌شود.

تا وقتی Claude Code با آن حساب در حال اجراست، ccam اشتراک‌گذاری را تغییر نمی‌دهد، چون نشست همچنان در فایل‌هایی که جابه‌جا می‌شوند می‌نویسد. ابتدا آن را ببندید.

## خاموش کردن اشتراک‌گذاری

```sh
ccam share work --history off
```

پیوند حذف می‌شود و حساب یک نسخه از محتوای فعلی گروه را برای خودش می‌گیرد. برای اینکه به‌جای آن از صفر شروع کنید، `--fresh` را اضافه کنید. گروه محتوای خود را برای حساب‌های دیگر نگه می‌دارد.

## کپی کردن یک پیکربندی موجود

اگر پیش از ccam از Claude Code استفاده کرده‌اید، تنظیمات شما در `~/.claude` است. `ccam migrate` آن‌ها را در یک گروه کپی می‌کند تا همه حساب‌هایی که این موارد را به اشتراک می‌گذارند آن‌ها را داشته باشند:

```sh
ccam migrate
```

در ترمینال، ccam ابتدا فهرستی از موارد را برای انتخاب نشان می‌دهد. همه چیز به جز تاریخچه گفتگو علامت خورده است؛ برای تغییر یک مورد Space و برای دیدن برنامه Enter را بزنید. مواردی که پوشه چیزی برایشان ندارد با `not found` مشخص می‌شوند.

چه چیزهایی کپی می‌شود:

- `settings.json` و فایل سراسری `CLAUDE.md`؛
- افزونه‌های `agents/`، `commands/`، `skills/`، `plugins/`، `output-styles/` و `rules/`؛
- سرورهای MCP کاربر، یعنی بخش `mcpServers` در `~/.claude.json`، به فایل `mcp.json` گروه؛
- ورودهای ذخیره‌شده (OAuth) سرورهای MCP که کپی می‌کند، در فایل ورود خود هر حساب؛
- تاریخچه گفتگو (`projects/` و `history.jsonl`)، اما فقط وقتی `--history` را اضافه کنید.

پوشه مبدأ فقط خوانده می‌شود: هیچ چیزی در آن جابه‌جا، پیوند یا تغییر داده نمی‌شود و `claude` معمولی مثل قبل کار می‌کند. فایل‌های ورود `.credentials.json` و `.claude.json` هرگز در گروه کپی نمی‌شوند.

سرورهای MCP که با OAuth وارد می‌شوند توکن‌های خود را در اطلاعات ورود نگه می‌دارند، نه در فهرست سرورها. برای اینکه لازم نباشد دوباره وارد آن‌ها شوید، ccam این ورودها را در فایل ورود هر حسابی که سرورها را از طریق گروه دریافت می‌کند کپی می‌کند، مگر اینکه آن حساب ورودهای خودش را داشته باشد. حساب‌هایی را که در حال اجرا هستند، هنوز وارد نشده‌اند، با `ccam import` در همان محل ثبت شده‌اند یا اطلاعات ورودشان را در Keychain سیستم macOS نگه می‌دارند رد می‌کند و نامشان را می‌گوید؛ در آن حساب‌ها با `/mcp` وارد سرورها شوید. حسابی که بعداً اشتراک سرورهای MCP را شروع کند، با اجرای دوباره `ccam migrate` ورودها را دریافت می‌کند.

ccam پیش از کپی کردن هر چیزی، برنامه را چاپ می‌کند و از شما می‌پرسد:

```console
$ ccam migrate
Copy from /home/me/.claude into group default (/home/me/.local/share/ccam/groups/default):
  mcp         ~/.claude.json  new: context7, fs
  settings    settings.json   new: 80 B
  memory      CLAUDE.md       new: 31 B
  extensions  agents/         add 1 file the group lacks (17 B)
              commands/       add 1 file the group lacks (15 B)
              skills/         add 1 file the group lacks (32 B)
              not found, skipped: plugins/, output-styles/, rules/
  Conversation history (projects/, history.jsonl) is not included; add --history to copy it.
Copy these into group default? [y/N] y
✓ Copied into group default: 2 MCP servers, settings.json, CLAUDE.md, agents/, commands/, skills/
Accounts that share these through group default:
  mcp         personal
  settings    personal
  memory      personal
  extensions  personal
```

در پایان، ccam حساب‌هایی را که هر مورد را از طریق گروه به اشتراک می‌گذارند فهرست می‌کند. اگر برخی حساب‌ها این کار را نکنند، فرمان‌های `ccam share` را که اشتراک‌گذاری را برای آن‌ها روشن می‌کنند چاپ می‌کند.

وقتی گروه از قبل نسخه متفاوتی از یک فایل دارد، ccam همان‌طور که هنگام روشن کردن اشتراک‌گذاری می‌پرسد، از شما می‌پرسد: نسخه گروه نگه داشته شود یا نسخه شما استفاده شود. `settings.json` و دیگر فایل‌های JSON را می‌توان ادغام هم کرد و `history.jsonl` را خط به خط. نسخه‌های قبلی گروه در `.ccam-backup/<time>/` درون پوشه گروه ذخیره می‌شوند.

| گزینه | اثر |
| --- | --- |
| `--settings`، `--memory`، `--extensions`، `--mcp`، `--history` | فقط مواردی را که نام می‌برید کپی می‌کند، بدون فهرست انتخاب؛ بدون آن‌ها و بیرون از ترمینال، همه چیز به جز تاریخچه گفتگو |
| `-g`، `--group <group>` | به‌جای `default` در این گروه کپی می‌کند |
| `-y`، `--yes` | بدون پرسش کپی می‌کند؛ وقتی فایلی متفاوت باشد، نسخه گروه را نگه می‌دارد |

`--dry-run` را پیش از فرمان بگذارید، مانند `ccam --dry-run migrate`، تا برنامه را بدون کپی کردن چیزی ببینید. برای کپی از پوشه‌ای دیگر، نام آن را بدهید: `ccam migrate ~/.claude-work --group work`.

## سرورهای MCP

Claude Code سرورهای MCP را همراه با اطلاعات ورود در `.claude.json` ذخیره می‌کند، بنابراین نمی‌توان آن فایل را به اشتراک گذاشت. ccam سرورهای مشترک را در `mcp.json` گروه نگه می‌دارد و Claude Code را با `--mcp-config=<group>/mcp.json` اجرا می‌کند. گزینه‌های `--mcp-config` خود شما همچنان روی آن اعمال می‌شوند.

```sh
ccam mcp add fs -- npx -y @modelcontextprotocol/server-filesystem ~/code
ccam mcp list
```

سروری که داخل یک نشست با `claude mcp add` اضافه کنید فقط برای همان حساب ذخیره می‌شود. دفعه بعد که آن حساب را اجرا کنید، ccam نام سرور و فرمانی را که آن را به گروه منتقل می‌کند نشان می‌دهد:

```sh
ccam mcp import work gh
```

اگر گروه از قبل سرور دیگری با همین نام داشته باشد، ccam آن را رد می‌کند و این را اعلام می‌کند. `--force` سرور گروه را جایگزین می‌کند و `mcp.json` قدیمی را در پوشه `.ccam-backup/` گروه نگه می‌دارد.

سرورهای MCP که با OAuth وارد می‌شوند توکن‌های خود را کنار اطلاعات ورود حساب ذخیره می‌کنند، پس باید در هر حساب یک بار به آن‌ها مجوز بدهید، یا ورودها را با `ccam migrate` از `~/.claude` کپی کنید.

اگر ترجیح می‌دهید سرورها در `claude mcp list` و `/mcp` به شکل سرورهای عادی کاربر دیده شوند، در `~/.config/ccam/config.toml` مقدار `mcp_strategy = "sync"` را تنظیم کنید. در این حالت ccam پیش از اجرا، آن‌ها را با استفاده از قفل فایل خود Claude Code و با نسخه پشتیبان در `.claude.json` هر حساب می‌نویسد.

## دو حساب در یک پوشه

حساب‌هایی که تاریخچه گفتگو را به اشتراک می‌گذارند در فایل‌های یکسانی می‌نویسند. اگر Claude Code دومی را در پوشه‌ای اجرا کنید که حساب دیگری از همان گروه در آن در حال اجراست، ccam به شما هشدار می‌دهد و می‌پرسد که ادامه دهد یا نه.

## وقتی چیزی خراب می‌شود

```sh
ccam doctor
ccam doctor --fix
```

اگر یک مسیر مشترک به فایل عادی تبدیل شده باشد، برای مثال پس از آنکه یک نسخه پشتیبان را دستی بازگردانده‌اید، ccam پیش از اجرای Claude Code متوقف می‌شود و شما را به `ccam doctor --fix` ارجاع می‌دهد؛ این فرمان فایل را در گروه ادغام می‌کند و یک نسخه پشتیبان نگه می‌دارد.
