# MCP সার্ভার, সেটিংস ও ইতিহাস শেয়ার করুন

> প্রতিটি লগইন আলাদা রেখে ccam কীভাবে Claude Code অ্যাকাউন্টগুলোর মধ্যে MCP সার্ভার, settings.json, CLAUDE.md, agents, skills ও কথোপকথনের ইতিহাস শেয়ার করে।

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

প্রতিটি অ্যাকাউন্ট নিজের লগইন রাখে। বাকি সবকিছু আইটেম ধরে ধরে শেয়ার করা যায়: ccam অ্যাকাউন্টের ফাইল বা ফোল্ডারকে একটি শেয়ার করা গ্রুপ ফোল্ডারের সঙ্গে লিংক করে, তাই একটি অ্যাকাউন্টে করা পরিবর্তন ওই গ্রুপের সব অ্যাকাউন্টে দেখা যায়।

## কী কী শেয়ার করা যায়

| আইটেম | অপশন | কী শেয়ার হয় |
| --- | --- | --- |
| MCP সার্ভার | `--mcp` | গ্রুপের `mcp.json`, চালু হওয়ার সময় Claude Code-কে দেওয়া হয় |
| সেটিংস | `--settings` | `settings.json`: অনুমতি, হুক, মডেল, স্ট্যাটাস লাইন |
| গ্লোবাল মেমরি | `--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. মূল ফাইলটিকে গ্রুপের একটি লিংক দিয়ে প্রতিস্থাপন করে।

কথোপকথনের ফাইলের নাম তাদের সেশন ID অনুযায়ী হয়, তাই একাধিক অ্যাকাউন্টের ইতিহাস কোনো দ্বন্দ্ব ছাড়াই একত্র হয়।

অ্যাকাউন্ট হিসেবে 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 সার্ভার, অর্থাৎ `~/.claude.json`-এর `mcpServers` এন্ট্রি, গ্রুপের `mcp.json`-এ;
- এটি যে MCP সার্ভারগুলো কপি করে, সেগুলোর সংরক্ষিত সাইন-ইন (OAuth), প্রতিটি অ্যাকাউন্টের নিজস্ব লগইন ফাইলে;
- কথোপকথনের ইতিহাস (`projects/` ও `history.jsonl`), তবে শুধু আপনি `--history` যোগ করলে।

উৎস ফোল্ডারটি শুধু পড়া হয়: এর ভেতরের কিছুই সরানো, লিংক করা বা বদলানো হয় না, এবং সাধারণ `claude` আগের মতোই কাজ করে। লগইন ফাইল `.credentials.json` ও `.claude.json` কখনও গ্রুপে কপি হয় না।

যে MCP সার্ভারগুলো OAuth দিয়ে সাইন ইন করে, সেগুলো তাদের টোকেন সার্ভার তালিকায় নয়, লগইনে রাখে। যাতে আপনাকে আবার সেগুলোতে সাইন ইন করতে না হয়, ccam ওই সাইন-ইনগুলো গ্রুপের মাধ্যমে সার্ভার পাওয়া প্রতিটি অ্যাকাউন্টের লগইন ফাইলে কপি করে, যদি না অ্যাকাউন্টটির নিজেরই থাকে। যে অ্যাকাউন্টগুলো চলছে, এখনও লগইন করা হয়নি, `ccam import` দিয়ে নিজের জায়গায় নিবন্ধিত, বা লগইন macOS Keychain-এ রাখে, সেগুলো এটি বাদ দেয় এবং তাদের নাম জানায়; সেখানে `/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`-এ রাখে এবং `--mcp-config=<group>/mcp.json` দিয়ে Claude Code চালু করে। আপনার নিজের `--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.json`-এ লেখে, Claude Code-এর নিজস্ব ফাইল লকের অধীনে এবং একটি ব্যাকআপসহ।

## একই ফোল্ডারে দুটি অ্যাকাউন্ট

যে অ্যাকাউন্টগুলো কথোপকথনের ইতিহাস শেয়ার করে, সেগুলো একই ফাইলে লেখে। একই গ্রুপের অন্য একটি অ্যাকাউন্ট যে ফোল্ডারে আগে থেকেই চলছে, সেখানে দ্বিতীয় একটি Claude Code চালু করলে ccam আপনাকে সতর্ক করে এবং চালিয়ে যাবেন কি না জিজ্ঞেস করে।

## কিছু ভেঙে গেলে

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

কোনো শেয়ার করা পাথ যদি সাধারণ ফাইলে পরিণত হয়, যেমন আপনি হাতে একটি ব্যাকআপ পুনরুদ্ধার করার পর, তাহলে ccam Claude Code চালু করার আগেই থেমে যায় এবং `ccam doctor --fix` দেখিয়ে দেয়, যা ফাইলটিকে গ্রুপে মার্জ করে এবং একটি ব্যাকআপ রাখে।
