Model Context Protocol (MCP) হল Anthropic দ্বারা তৈরি একটি ওপেন স্ট্যান্ডার্ড যা নির্ধারণ করে কীভাবে AI মডেল বাহ্যিক টুলস, ডেটা সোর্স এবং সার্ভিসের সাথে যোগাযোগ করে। এটিকে "AI এর USB-C" হিসাবে ভাবুন - একটি ইউনিভার্সাল কানেক্টর যা যেকোনো AI এজেন্টকে একটি স্ট্যান্ডার্ডাইজড ইন্টারফেসের মাধ্যমে যেকোনো টুলের সাথে কথা বলতে দেয়।
লঞ্চের পর থেকে, MCP প্রতি মাসে 97 মিলিয়ন SDK ডাউনলোড অতিক্রম করেছে এবং প্রতিটি প্রধান AI প্রদানকারী দ্বারা গৃহীত হয়েছে: Anthropic, OpenAI, Google, Microsoft এবং Amazon। এই গাইডে, আমরা MCP দিয়ে তৈরি করতে আপনার যা জানা দরকার তার সবকিছু অন্বেষণ করব।
কেন MCP আছে
MCP এর আগে, প্রতিটি AI অ্যাপ্লিকেশনকে প্রতিটি টুলের জন্য কাস্টম ইন্টিগ্রেশন তৈরি করতে হতো। আপনার AI কে ফাইল পড়াতে চান? কাস্টম কোড লিখুন। ডেটাবেস কুয়েরি করতে? আরও কাস্টম কোড। Slack এ পোস্ট করতে? আরেকটি ইন্টিগ্রেশন।
এটি একটি N×M সমস্যা তৈরি করেছিল: N AI অ্যাপ্লিকেশন প্রতিটির M কাস্টম ইন্টিগ্রেশন প্রয়োজন, যা ডুপ্লিকেট প্রচেষ্টা এবং খণ্ডিত ইকোসিস্টেমের দিকে নিয়ে গেছে।
MCP এটি একটি একক প্রোটোকল দিয়ে সমাধান করে যা যেকোনো AI ক্লায়েন্ট যেকোনো MCP সার্ভারের সাথে যোগাযোগ করতে ব্যবহার করতে পারে:
মূল ধারণাসমূহ
MCP এর তিনটি মৌলিক প্রিমিটিভ রয়েছে:
1. টুলস (Tools)
টুলস হল ফাংশন যা AI কল করতে পারে। এগুলি "একটি ফাইল তৈরি করুন", "একটি ডেটাবেস কুয়েরি করুন" বা "একটি মেসেজ পাঠান" এর মতো অ্যাকশন উপস্থাপন করে। প্রতিটি টুলের একটি নাম, বিবরণ এবং এর প্যারামিটারের জন্য একটি JSON Schema আছে।
{ name: "create_issue", description: "Create a new GitHub issue", inputSchema: { type: "object", properties: { title: { type: "string", description: "Issue title" }, body: { type: "string", description: "Issue body" }, repo: { type: "string", description: "Repository name" } }, required: ["title", "repo"] } }
2. রিসোর্স (Resources)
রিসোর্স হল ডেটা যা AI পড়তে পারে। এগুলি ফাইল, ডেটাবেস রেকর্ড, API রেসপন্স বা অন্য যেকোনো ডেটা সোর্স উপস্থাপন করে। রিসোর্সগুলি URIs দ্বারা চিহ্নিত হয়।
{ uri: "file:///Users/dev/project/README.md", name: "Project README", mimeType: "text/markdown" }
3. প্রম্পট (Prompts)
প্রম্পট হল পুনরায় ব্যবহারযোগ্য টেমপ্লেট যা ইন্টারঅ্যাকশন গঠন করতে সাহায্য করে। এগুলিতে ডায়নামিক প্যারামিটার অন্তর্ভুক্ত থাকতে পারে এবং সাধারণ ওয়ার্কফ্লো স্ট্যান্ডার্ডাইজ করার জন্য উপযোগী।
{ name: "code_review", description: "Review code changes for quality and security", arguments: [ { name: "diff", description: "The code diff to review", required: true } ] }
আর্কিটেকচার
MCP একটি ক্লায়েন্ট-সার্ভার আর্কিটেকচার অনুসরণ করে:
- হোস্ট: AI অ্যাপ্লিকেশন (Claude Desktop, Cursor, আপনার কাস্টম অ্যাপ)
- ক্লায়েন্ট: একটি MCP সার্ভারের সাথে 1:1 সংযোগ বজায় রাখে
- সার্ভার: ক্লায়েন্টের কাছে টুলস, রিসোর্স এবং প্রম্পট প্রকাশ করে
- ট্রান্সপোর্ট: stdio (লোকাল) বা Server-Sent Events (রিমোট) এর মাধ্যমে JSON-RPC 2.0 দিয়ে যোগাযোগ হয়
একটি MCP সার্ভার তৈরি করা
চলুন একটি প্র্যাক্টিক্যাল MCP সার্ভার তৈরি করি যা একটি JSON ফাইলে সংরক্ষিত টুডু লিস্টের সাথে ইন্টারঅ্যাক্ট করে।
সেটআপ
mkdir mcp-todo-server && cd mcp-todo-server npm init -y npm install @modelcontextprotocol/sdk zod
সার্ভার ইমপ্লিমেন্টেশন
// src/index.ts import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { z } from "zod"; import fs from "fs"; const TODO_FILE = "./todos.json"; function readTodos(): { id: number; text: string; done: boolean }[] { if (!fs.existsSync(TODO_FILE)) return []; return JSON.parse(fs.readFileSync(TODO_FILE, "utf-8")); } function writeTodos(todos: { id: number; text: string; done: boolean }[]) { fs.writeFileSync(TODO_FILE, JSON.stringify(todos, null, 2)); } const server = new McpServer({ name: "todo-server", version: "1.0.0", }); // Tool: Add a todo server.tool( "add_todo", "Add a new todo item", { text: z.string().describe("The todo text") }, async ({ text }) => { const todos = readTodos(); const newTodo = { id: Date.now(), text, done: false }; todos.push(newTodo); writeTodos(todos); return { content: [{ type: "text", text: `Added: "${text}"` }] }; } ); // Tool: List todos server.tool( "list_todos", "List all todo items", {}, async () => { const todos = readTodos(); const list = todos .map((t) => `${t.done ? "✅" : "⬜"} [${t.id}] ${t.text}`) .join("\n"); return { content: [{ type: "text", text: list || "No todos yet." }] }; } ); // Tool: Complete a todo server.tool( "complete_todo", "Mark a todo as completed", { id: z.number().describe("The todo ID to complete") }, async ({ id }) => { const todos = readTodos(); const todo = todos.find((t) => t.id === id); if (!todo) return { content: [{ type: "text", text: "Todo not found." }] }; todo.done = true; writeTodos(todos); return { content: [{ type: "text", text: `Completed: "${todo.text}"` }] }; } ); // Resource: Current todos as a readable resource server.resource( "todos://list", "Current todo list", async () => ({ contents: [{ uri: "todos://list", mimeType: "application/json", text: JSON.stringify(readTodos(), null, 2), }], }) ); // Start the server const transport = new StdioServerTransport(); await server.connect(transport);
কনফিগারেশন
Claude Desktop এর সাথে এই সার্ভার ব্যবহার করতে, আপনার কনফিগে এটি যোগ করুন:
{ "mcpServers": { "todo": { "command": "npx", "args": ["tsx", "/path/to/mcp-todo-server/src/index.ts"] } } }
একটি MCP ক্লায়েন্ট তৈরি করা
আপনি একটি কাস্টম ক্লায়েন্টও তৈরি করতে পারেন যা যেকোনো MCP সার্ভারের সাথে সংযোগ করে:
import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; const transport = new StdioClientTransport({ command: "npx", args: ["tsx", "./src/index.ts"], }); const client = new Client({ name: "my-client", version: "1.0.0" }); await client.connect(transport); // List available tools const { tools } = await client.listTools(); console.log("Available tools:", tools.map((t) => t.name)); // Call a tool const result = await client.callTool({ name: "add_todo", arguments: { text: "Write MCP blog post" }, }); console.log(result);
জনপ্রিয় MCP সার্ভার
MCP ইকোসিস্টেম দ্রুত বৃদ্ধি পেয়েছে। এখানে কিছু জনপ্রিয় সার্ভার রয়েছে:
| সার্ভার | বিবরণ | ব্যবহারের ক্ষেত্র |
|---|---|---|
| GitHub | Issue, PR তৈরি, রেপো পরিচালনা | ডেভেলপমেন্ট ওয়ার্কফ্লো |
| Slack | মেসেজ পাঠানো, চ্যানেল পরিচালনা | টিম কমিউনিকেশন |
| PostgreSQL | ডেটাবেস কুয়েরি ও পরিচালনা | ডেটা অ্যাক্সেস |
| Filesystem | ফাইল পড়া, লেখা ও অনুসন্ধান | লোকাল ডেভেলপমেন্ট |
| Puppeteer | ব্রাউজার অটোমেশন ও স্ক্র্যাপিং | ওয়েব টেস্টিং |
| Sentry | এরর মনিটরিং ও ডিবাগিং | প্রোডাকশন সাপোর্ট |
| Supabase | ডেটাবেস, auth, স্টোরেজ | ব্যাকএন্ড অপারেশন |
MCP বনাম A2A (Agent-to-Agent)
MCP এজেন্ট-টু-টুল যোগাযোগ পরিচালনা করে, আর Google এর A2A (Agent-to-Agent) প্রোটোকল এজেন্ট-টু-এজেন্ট যোগাযোগ পরিচালনা করে। এগুলি পরিপূরক:
- MCP: কীভাবে একটি AI এজেন্ট টুলস ব্যবহার করে (উল্লম্ব ইন্টিগ্রেশন)
- A2A: কীভাবে AI এজেন্টরা একে অপরের সাথে সহযোগিতা করে (অনুভূমিক ইন্টিগ্রেশন)
সেরা অনুশীলন
- সার্ভারকে ফোকাসড রাখুন: প্রতিটি ডোমেনের জন্য একটি সার্ভার (GitHub সার্ভার, Slack সার্ভার, ইত্যাদি)। মনোলিথিক সার্ভার তৈরি করবেন না।
- Zod দিয়ে ইনপুট ভ্যালিডেট করুন: সর্বদা সঠিক স্কিমা দিয়ে টুল ইনপুট ভ্যালিডেট করুন।
- এরর সুন্দরভাবে হ্যান্ডেল করুন: স্ট্যাক ট্রেস নয়, অর্থবহ এরর মেসেজ ফেরত দিন।
- রিড-অনলি ডেটার জন্য রিসোর্স ব্যবহার করুন: AI যদি শুধুমাত্র ডেটা পড়তে চায়, তাহলে টুলের বদলে রিসোর্স হিসাবে প্রকাশ করুন।
- সঠিক বিবরণ যোগ করুন: ভালো টুল এবং প্যারামিটার বিবরণ AI কে বুঝতে সাহায্য করে কখন এবং কীভাবে প্রতিটি টুল ব্যবহার করতে হবে।
- MCP Inspector দিয়ে টেস্ট করুন: আপনার সার্ভার ইন্টারঅ্যাক্টিভভাবে টেস্ট করতে
npx @modelcontextprotocol/inspectorব্যবহার করুন।
শুরু করুন
# Create a new MCP server from template npx @modelcontextprotocol/create-server my-server # Test with the MCP Inspector npx @modelcontextprotocol/inspector npx tsx ./src/index.ts
উপসংহার
MCP 2026 সালে AI টুল ব্যবহারের জন্য ডি ফ্যাক্টো স্ট্যান্ডার্ড হয়ে উঠেছে। আপনি কাস্টম AI এজেন্ট তৈরি করছেন, Claude Code প্রসারিত করছেন, বা বিদ্যমান প্ল্যাটফর্মের জন্য ইন্টিগ্রেশন তৈরি করছেন, MCP বোঝা অপরিহার্য। প্রোটোকলটি একটি বিকেলে শেখার জন্য যথেষ্ট সহজ কিন্তু প্রোডাকশন-গ্রেড AI ওয়ার্কফ্লো তৈরি করার জন্য যথেষ্ট শক্তিশালী।
পরবর্তী পদক্ষেপ:
- MCP স্পেসিফিকেশন অন্বেষণ করুন
- অনুপ্রেরণার জন্য বিদ্যমান MCP সার্ভার ব্রাউজ করুন
- TypeScript বা Python SDK দিয়ে আপনার প্রথম সার্ভার তৈরি করুন
- Claude Desktop বা MCP Inspector দিয়ে টেস্ট করুন