MCP Servers: Connecting External Tools to Claude Code
Day 18-এ Claude Code extend করার তিনটা হাতিয়ার শিখেছিলে, শেষ হয়েছিল “বাইরের tool/data → MCP” দিয়ে। আজ সেই চতুর্থ হাতিয়ার — MCP দিয়ে GitHub, database, Sentry-র সাথে যোগ। Tab থেকে tab-এ copy-paste বন্ধ — Claude নিজেই উৎস থেকে পড়বে।
- •MCP কী বুঝা — বাইরের tool/data Claude-এ যোগ করার open standard (“AI-এর জন্য USB-C”)।
- •কেন MCP — M×N আলাদা integration-এর জট থেকে একটা standard-এ (M+N) আসার গল্প।
- •Host → client → server মডেল, আর local (stdio) বনাম remote (HTTP) server-এর পার্থক্য।
- •একটা server তিনটা জিনিস দেয় — tools (action), resources (`@`-data), prompts (`/`-command)।
- •নিজে server যোগ করা — `claude mcp add`, তিন scope (local/project/user), `/mcp` (এই lesson-এর হাতে-কলমে অংশ)।
- •Trust ও lethal trifecta — কোন server লাগানো নিরাপদ, কোনটা বিপজ্জনক, কেন।
- •Day 15 — tool use (Claude একটা function call করে; MCP সেই ধারণার বড় রূপ)।
- •Day 16 — Claude Code-এর agentic loop ও permission।
- •Day 18 — extend করার চার হাতিয়ার; শেষ হয়েছিল “বাইরের tool/data → MCP” দিয়ে।
Why MCP — the Integration Explosion
বারবার copy-paste করা — সেই ব্যথাটাই MCP সমাধান করে।
একটা চেনা দৃশ্য ভাবো — একটা GitHub issue-র লেখা copy করে Claude Code-এ paste করছো, একটু পর একটা log copy করছো, তারপর একটা query result। Day 15-এ tool use শিখেছিলে — Claude তোমার লেখা একটা function call করে। Day 18 শেষ হয়েছিল একটা লাইনে — বাইরের tool আর data-র জন্য আলাদা হাতিয়ার লাগে: MCP। আজ সেটাই — কীভাবে Claude Code সরাসরি বাইরের উৎস থেকে পড়ে, copy-paste ছাড়াই।
MCPModel Context Protocol
MCP হলো বাইরের tool আর data Claude-এর সাথে যোগ করার একটা open standard। ভাবো একটা USB-C port — একটাই socket, যেকোনো device (GitHub, তোমার database, Sentry, Notion) লাগিয়ে দাও। Claude Code তখন ওই tool সরাসরি পড়তে আর তাতে কাজ করতে পারে — তোমাকে আর tab থেকে tab-এ copy-paste করতে হয় না।
এই এক লাইনটা মাথায় রাখো: যখনই দেখবে অন্য একটা tool থেকে বারবার লেখা copy করে Claude-এ আনছ — issue, log, query result — তখনই একটা MCP server লাগানোর সময়। copy-paste বন্ধ, Claude নিজেই উৎস থেকে পড়বে।
M×N → M+Nকেন MCP দরকার হলো
MCP-র আগে প্রতিটা AI অ্যাপকে প্রতিটা tool-এর জন্য আলাদা connector লিখতে হতো। M অ্যাপ × N tool = M×N বেস্পোক জোড়া — জট, আর scale করানো কঠিন। MCP একটা common protocol দেয়: প্রতিটা অ্যাপ একবার শেখে, প্রতিটা tool একবার বলে → M+N। ঠিক যেমন এক USB-C cable দিয়ে ফোন, ল্যাপটপ, হেডফোন সব চার্জ হয়।
এই কারণেই আজ শত শত ready-made MCP server আছে (GitHub, Slack, Postgres, Figma…)। তুমি বানাও না, শুধু plug করো। standard থাকার এটাই সুবিধা — একজনের বানানো server সবাই use করতে পারে।
Architecture — Host, Client, Server
তুমি host; প্রতি server-এর একটা client; server local বা remote।
MCP-র ধারণা বুঝলে, এবার টুকরোগুলো চেনো। তিনটা শব্দ — host, client, server — আর একটা প্র্যাক্টিক্যাল ফারাক: server তোমার নিজের মেশিনে চলছে, না কোথাও cloud-এ।
Host/client/serverটুকরোগুলো কীভাবে বসে
তিনটা শব্দ। Host = তুমি যে অ্যাপে আছো (Claude Code)। Server = আসল tool বা data উৎস (GitHub, তোমার DB)। আর প্রতিটা server-এর জন্য Claude একটা client খোলে — একটা server, একটা ডেডিকেটেড client। Server দু'ভাবে চলতে পারে: local (stdio — তোমার নিজের মেশিনে একটা process) বা remote (HTTP — cloud-এ, কেউ চালাচ্ছে)।
local বনাম remote ফারাকটা practical। Local stdio server তোমার ফাইল/DB-তে সরাসরি ঢোকে, নেটওয়ার্ক লাগে না — কিন্তু কোডটা তোমার মেশিনে চলে। Remote HTTP server cloud-এ, OAuth/token দিয়ে auth — সুবিধা, কিন্তু তোমার data বাইরের একটা service দেখছে। কোনটা use করছ, জেনে করো।
What a Server Exposes
শুধু tool না — পড়ার data আর তৈরি command-ও।
একটা ভুল ধারণা সবচেয়ে বেশি হয় — MCP মানে শুধু নতুন tool। আসলে একটা server তিন ধরনের জিনিস দিতে পারে। GitHub server-টাই উদাহরণ হিসেবে ভেঙে দেখা যাক।
Server primitivesএকটা server যা যা দেয়
একটা MCP server Claude-কে তিন ধরনের জিনিস দিতে পারে। Tools = action (নতুন PR বানাও, DB query করো)। Resources = পড়ার data, ঠিক file-এর মতো `@` দিয়ে টানো (`@github:issue://123`)। Prompts = তৈরি command, `/` দিয়ে চালাও (`/mcp__github__pr_review 456`)। সব server তিনটাই দেয় না — যেটা যা দেয়, `/mcp` দেখালে বোঝা যায়।
“MCP = বেশি tool” — এই অর্ধেক ছবিটা ভাঙা দরকার। Resources মানে তুমি বাইরের data file-এর মতো prompt-এ attach করতে পারো; prompts মানে server-ই তোমাকে ready-made command দেয়। action + data + command — তিনটাই।
Adding a Server — the Commands
একটা command, তিন scope — আজ থেকেই কাজে লাগবে।
ধারণা আর গঠন বোঝা হলো — এবার হাতে-কলমে। একটা server যোগ করার command একটাই প্যাটার্নে চলে; কোথায় থাকবে সেটা ঠিক করে scope।
claude mcp addযোগ করা + scope
যোগ করার command: `claude mcp add`। Remote হলে `--transport http <name> <url>` (দরকারে `--header` দিয়ে token), local হলে `--transport stdio <name> -- <command>`। কোথায় থাকবে সেটা scope ঠিক করে: local (শুধু তুমি, এই project — default) · project (পুরো টিম, git-এ `.mcp.json`) · user (তুমি, সব project)। ভিতরে `/mcp` দিয়ে status দেখো ও OAuth login করো।
scope-টা টিমওয়ার্কের চাবি। নিজের secret-ওয়ালা server → local (git-এ যাবে না)। পুরো টিমের দরকারি tool → project (`.mcp.json` commit করো, সবাই পায়)। এই command আর তিনটা scope — আজ থেকেই কাজে টাইপ করবে।
Trust & the Lethal Trifecta
যোগ করার আগে দুটো প্রশ্ন — উৎস চেনো, ঝুঁকি মাপো।
MCP যত সহজে tool যোগ করতে দেয়, ততটাই একটা দায়িত্ব দেয়। একটা server কোড চালায়, credential রাখতে পারে। যোগ করার আগে যাচাই না করলে বিপদ ডেকে আনতে পারো।
Lethal trifectaকোন server নিরাপদ
প্রতিটা server যোগ করার আগে দুটো প্রশ্ন। এক — কে বানিয়েছে, trust করো? (অচেনা gist-এর server = তোমার মেশিনে অচেনা কোড + তোমার data পাচারের পথ।) দুই — তোমার connected server-গুলো মিলে কি “lethal trifecta” সম্পূর্ণ করছে: private data পড়া + untrusted content ঢোকা + বাইরে পাঠানোর ক্ষমতা? তিনটা একসাথে হলে একটা বিষমাখা issue/web page তোমার secret বের করে নিতে পারে। তাই Claude Code project-scoped server চালানোর আগে approval চায়।
এটা ভয় দেখানোর জন্য না — শক্তির সাথে দায়িত্ব। MCP যত সহজে tool যোগ করতে দেয়, তত সহজে এই তিনটা ক্ষমতা অজান্তে এক জায়গায় জড়ো হয়। নিয়ম: শুধু বিশ্বস্ত server লাগাও, যা লাগে শুধু তাই, আর read-only রাখো যেখানে পারো। (পরের কোনো module-এ পুরো injection defense।)
Check Your Understanding
ভুল হলে সমস্যা নেই — প্রতিটার ব্যাখ্যা আছে।
MCP মানে নতুন, আরও স্মার্ট একটা AI model
MCP server মানেই cloud-এ চলা কোনো service
MCP শুধু নতুন tool (action) যোগ করে, আর কিছু না
অনলাইনে পাওয়া যেকোনো MCP server লাগানো নিরাপদ
MCP আর Day 15-র tool use একদম আলাদা দুই জিনিস
MCP মূলত কোন সমস্যা সমাধান করে?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
তুমি বারবার GitHub issue-র লেখা copy করে Claude Code-এ paste করছ। সবচেয়ে ভালো সমাধান?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Local (stdio) আর remote (HTTP) server-এর মূল পার্থক্য?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
একটা MCP server Claude-কে কোন তিন ধরনের জিনিস দিতে পারে?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
পুরো টিম যেন git থেকেই একই server পায় — কোন scope?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Lethal trifecta-র তিনটা উপাদান কী কী?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Prove It To Yourself
চারটা takeaway মনে রাখো।
চারটা জিনিস মনে রাখো — MCP = connect once: বাইরের tool/data একবার plug করো (USB-C for AI), tab-এ tab-এ copy-paste বন্ধ। Host → client → server: তুমি (Claude Code) host; প্রতি server-এ একটা client; server local (stdio) বা remote (HTTP)। A server gives 3 things: tools (action) + resources (`@`-data) + prompts (`/`-command)। যোগ করো `claude mcp add` দিয়ে, তিন scope-এ। Trust before you connect: প্রতিটা server যাচাই করো; lethal trifecta (private data + untrusted content + external comms) একটা খারাপ server-কে বিপজ্জনক বানায়।
আজকের শব্দগুলো — MCP, MCP server, MCP host, MCP client, stdio, transport, `.mcp.json`, OAuth, scope, lethal trifecta — এখন থেকে English-ই থাকবে; নিজের project-এ এভাবেই ব্যবহার করবে। পুরো তালিকা নিচের glossary-তে। পরের lesson-এ (Day 20) Claude Code-এর world-এ আরও এগিয়ে যাবে।
শব্দার্থ — পরে ফিরে দেখার জন্য
একনজরে সব key term। কোনো শব্দ ভুলে গেলে এখানে এসে খুঁজে নিও।
- .mcp.json
- Project-scoped server-এর config; repo-তে commit হয়, টিম share করে।
- /mcp
- Claude Code-এর ভিতরে server status দেখা ও OAuth login-এর command।
- claude mcp add
- একটা MCP server যোগ করার command।
- HTTP transport
- Remote transport — server cloud-এ চলে, OAuth/header দিয়ে auth।
- lethal trifecta
- private data + untrusted content + external comms — তিনটা একসাথে = exfiltration ঝুঁকি।
- MCP
- Model Context Protocol — বাইরের tool/data Claude-এ যোগ করার open standard।
- MCP client
- Host-এর ভিতরে প্রতি server-এর জন্য একটা সংযোগ — একটা server, একটা client।
- MCP host
- যে অ্যাপ server-গুলো ব্যবহার করে — যেমন Claude Code।
- MCP server
- একটা tool বা data উৎস MCP দিয়ে expose করা প্রোগ্রাম (GitHub, Postgres…)।
- OAuth
- Remote server-এ নিরাপদে login — `/mcp` দিলে browser খুলে token আনে।
- prompts
- Server-এর দেওয়া তৈরি command — `/mcp__server__name`।
- resources
- Server-এর দেওয়া পড়ার data — `@server:proto://path` দিয়ে টানো।
- scope
- Server কোথায় load হবে: local (শুধু তুমি) / project (টিম) / user (সব project)।
- stdio
- Local transport — server তোমার মেশিনে process হিসেবে চলে।
- tools
- Server-এর দেওয়া action (PR বানাও, query করো)।
Sources consulted to author this lesson. Citation style is informal — follow the links if you want to dig deeper.
- Connect Claude Code to tools via MCP — Anthropic — Claude Code docs (2026)
- What is the Model Context Protocol? — modelcontextprotocol.io (2026)
- MCP Architecture overview — modelcontextprotocol.io (2026)
- Introducing the Model Context Protocol — Anthropic (2024)
- The lethal trifecta for AI agents — Simon Willison (2025)
- Try it: connect your first server — Anthropic (2026)
দুই বাক্যে নিজের ভাষায় লেখো
নিজের ভাষায় দুই বাক্যে লেখো — MCP আসলে কোন সমস্যা সমাধান করে (M×N → M+N), আর একটা নতুন server যোগ করার আগে তুমি কোন দুটো জিনিস যাচাই করবে (trust + lethal trifecta)।