Back to course
Module 3 · Day 19

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 নিজেই উৎস থেকে পড়বে।

~150 min read6 learning objectives
What you'll learn
  • 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 লাগানো নিরাপদ, কোনটা বিপজ্জনক, কেন।
Before this
  • Day 15 — tool use (Claude একটা function call করে; MCP সেই ধারণার বড় রূপ)।
  • Day 16 — Claude Code-এর agentic loop ও permission।
  • Day 18 — extend করার চার হাতিয়ার; শেষ হয়েছিল “বাইরের tool/data → MCP” দিয়ে।
1

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 করতে হয় না।

Why it matters

এই এক লাইনটা মাথায় রাখো: যখনই দেখবে অন্য একটা 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 দিয়ে ফোন, ল্যাপটপ, হেডফোন সব চার্জ হয়।

Why it matters

এই কারণেই আজ শত শত ready-made MCP server আছে (GitHub, Slack, Postgres, Figma…)। তুমি বানাও না, শুধু plug করো। standard থাকার এটাই সুবিধা — একজনের বানানো server সবাই use করতে পারে।

2

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-এ, কেউ চালাচ্ছে)।

Why it matters

local বনাম remote ফারাকটা practical। Local stdio server তোমার ফাইল/DB-তে সরাসরি ঢোকে, নেটওয়ার্ক লাগে না — কিন্তু কোডটা তোমার মেশিনে চলে। Remote HTTP server cloud-এ, OAuth/token দিয়ে auth — সুবিধা, কিন্তু তোমার data বাইরের একটা service দেখছে। কোনটা use করছ, জেনে করো।

3

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` দেখালে বোঝা যায়।

Why it matters

“MCP = বেশি tool” — এই অর্ধেক ছবিটা ভাঙা দরকার। Resources মানে তুমি বাইরের data file-এর মতো prompt-এ attach করতে পারো; prompts মানে server-ই তোমাকে ready-made command দেয়। action + data + command — তিনটাই।

4

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 করো।

Why it matters

scope-টা টিমওয়ার্কের চাবি। নিজের secret-ওয়ালা server → local (git-এ যাবে না)। পুরো টিমের দরকারি tool → project (`.mcp.json` commit করো, সবাই পায়)। এই command আর তিনটা scope — আজ থেকেই কাজে টাইপ করবে।

5

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 চায়।

Why it matters

এটা ভয় দেখানোর জন্য না — শক্তির সাথে দায়িত্ব। MCP যত সহজে tool যোগ করতে দেয়, তত সহজে এই তিনটা ক্ষমতা অজান্তে এক জায়গায় জড়ো হয়। নিয়ম: শুধু বিশ্বস্ত server লাগাও, যা লাগে শুধু তাই, আর read-only রাখো যেখানে পারো। (পরের কোনো module-এ পুরো injection defense।)

6

Check Your Understanding

ভুল হলে সমস্যা নেই — প্রতিটার ব্যাখ্যা আছে।

Misconception check

MCP মানে নতুন, আরও স্মার্ট একটা AI model

Misconception check

MCP server মানেই cloud-এ চলা কোনো service

Misconception check

MCP শুধু নতুন tool (action) যোগ করে, আর কিছু না

Misconception check

অনলাইনে পাওয়া যেকোনো MCP server লাগানো নিরাপদ

Misconception check

MCP আর Day 15-র tool use একদম আলাদা দুই জিনিস

Quick check

MCP মূলত কোন সমস্যা সমাধান করে?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

তুমি বারবার GitHub issue-র লেখা copy করে Claude Code-এ paste করছ। সবচেয়ে ভালো সমাধান?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

Local (stdio) আর remote (HTTP) server-এর মূল পার্থক্য?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

একটা MCP server Claude-কে কোন তিন ধরনের জিনিস দিতে পারে?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

পুরো টিম যেন git থেকেই একই server পায় — কোন scope?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

Lethal trifecta-র তিনটা উপাদান কী কী?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

7

Prove It To Yourself

চারটা takeaway মনে রাখো।

Note

চারটা জিনিস মনে রাখো — 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-এ আরও এগিয়ে যাবে।

Glossary

শব্দার্থ — পরে ফিরে দেখার জন্য

একনজরে সব 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 করো)।
References

Sources consulted to author this lesson. Citation style is informal — follow the links if you want to dig deeper.

Exit check

দুই বাক্যে নিজের ভাষায় লেখো

নিজের ভাষায় দুই বাক্যে লেখো — MCP আসলে কোন সমস্যা সমাধান করে (M×N → M+N), আর একটা নতুন server যোগ করার আগে তুমি কোন দুটো জিনিস যাচাই করবে (trust + lethal trifecta)।

0 chars
Back to course