MCP servers برای کدنویسی
MCP servers برای کدنویسی — راهنمای فارسی از مجموعهٔ «کدنویسی با AI» در وبلاگ آیرا. بازنویسیشده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.

اگه از یه ابزار AI مثل Claude Code، Cursor، یا AiraCode برای کدنویسی استفاده میکنی، احتمالاً تا حالا با محدودیت این مواجه شدی: مدل متن مینویسه، ولی نمیتونه مستقیم با codebase، دیتابیس، یا سرویسهات ارتباط برقرار کنه. MCP servers این شکاف رو پر میکنن. این مقاله میگه دقیقاً چطور — با مثالهای واقعی.
چرا MCP برای کدنویسی؟
یه ایجنت کدنویسی بدون ابزار مثل یه برنامهنویس ارشده که فقط میتونه توصیه بده، نه دست بزنه. نمیتونه تست بگیره، نمیتونه مستقیم error log ببینه، نمیتونه دیتابیس schema رو بخونه.
MCP (Model Context Protocol) یه پروتکل استاندارده که به ایجنت اجازه میده با ابزارهای خارجی «به زبان مشترک» حرف بزنه. وقتی MCP server مخصوص کدنویسی وصل میکنی، ایجنت تبدیل به یه همکار واقعی میشه — نه فقط یه autocomplete هوشمند.
مهمترین MCP Serverها برای کدنویسی
۱. Filesystem MCP Server
سادهترین و پرکاربردترین. به ایجنت اجازه میده فایلهای پروژه رو بخونه، بنویسه، و مدیریت کنه.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
}
}
}
چی میشه؟ ایجنت میتونه بگه «برو فایل utils/auth.ts رو بخون، bug رو پیدا کن، و مستقیم اصلاح کن» — بدون copy-paste.
۲. Git MCP Server
برای کار با مخزن Git. ایجنت میتونه:
- تاریخچهٔ commitها رو ببینه
- diff بین branchها رو بخونه
- blame رو چک کنه (کدوم commit این bug رو آورد؟)
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "."]
}
}
}
یه use case واقعی: «چه commitی این regression رو وارد کرد؟» — ایجنت git log میکشه، diff میخونه، و جواب میده.
۳. GitHub MCP Server
یه سطح بالاتر از Git محلی. با GitHub API کار میکنه:
- issueها رو میخونه و میسازه
- PR review میکنه
- repository structure رو میفهمه
برای تیمهایی که روی GitHub کار میکنن، این server میتونه جریان کاری رو اتوماتیک کنه: «issue #۱۲۳ رو بخون، تغییرات لازم رو اعمال کن، PR بساز».
۴. Database MCP Servers
یه دسته از کاربردیترین MCP serverها. نسخههایی برای PostgreSQL، MySQL، SQLite، و MongoDB وجود داره.
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_CONNECTION_STRING": "postgresql://user:pass@localhost/mydb"
}
}
}
}
وقتی این وصله، ایجنت schema دیتابیس رو میفهمه. میتونی بگی «یه query بنویس که X رو نشون بده» و ایجنت schema واقعی رو میبینه، نه چیزی که تو توضیح دادی.
۵. Docker MCP Server
برای کار با containerها. ایجنت میتونه containerها رو list کنه، logها رو بخونه، حتی دستوراتی داخل container اجرا کنه. برای debugging محیطهای containerized خیلی به درد میخوره.
۶. Fetch/Browser MCP Server
وقتی ایجنت باید documentation خارجی بخونه یا API رو تست کنه. mcp-server-fetch یه URL رو دریافت میکنه و محتوا رو به ایجنت میده. برای «این error رو در دیتابیس X جستجو کن» یا «مطمئن شو این endpoint چطور کار میکنه» مفیده.
راهاندازی MCP در ابزارهای کدنویسی مختلف
Claude Code (CLI Anthropic)
claude mcp add filesystem npx -- -y @modelcontextprotocol/server-filesystem /path/to/project
یا مستقیم در فایل .claude/settings.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
}
}
}
AiraCode
AiraCode از MCP پشتیبانی میکنه. در تنظیمات پروژه میتونی MCP server اضافه کنی — این یعنی حافظهٔ پیوستهٔ AiraCode از پروژهات، با قدرت دسترسی مستقیم به filesystem، git، و دیتابیست ترکیب میشه. برای توسعهدهندهای که روی یه پروژهٔ بلندمدت کار میکنه، این ترکیب معنیداره.
Cursor
در فایل .cursor/mcp.json پروژه:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
}
}
}
یه Workflow واقعی: Debug با MCP
فرض کن یه bug داری که فقط در production مشخص میشه. با ابزارهای معمولی، باید logها رو copy-paste کنی، schema دیتابیس رو توضیح بدی، کد مشکوک رو پیدا کنی.
با MCP:
۱. Filesystem server وصله — ایجنت مستقیم کد رو میخونه ۲. Database server وصله — ایجنت schema و حتی دادههای sample رو میبینه ۳. Git server وصله — میفهمه این بخش کِی و چرا تغییر کرده
حالا میتونی بگی: «یه 500 error از endpoint /api/orders دارم با این stack trace. چی میتونه باشه؟»
ایجنت کد route رو میخونه، schema جدول orders رو چک میکنه، commitهای اخیر رو میبینه، و یه تحلیل واقعی میده — نه حدس عمومی.
ساخت MCP Server سفارشی برای پروژهٔ ایرانی
اگه با سرویسهای ایرانی کار میکنی — API پرداخت داخلی، سرویس پیامک، ابر زیتون یا آروان — میتونی MCP server سفارشی بسازی.
ساختار سادهترین MCP server با Node.js:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "my-iran-service", version: "1.0.0" });
server.tool(
"send_sms",
"ارسال پیامک از طریق سرویس ایرانی",
{ phone: z.string(), message: z.string() },
async ({ phone, message }) => {
// ارتباط با API پیامک ایرانی
const result = await iranSmsApi.send(phone, message);
return { content: [{ type: "text", text: `پیامک ارسال شد: ${result.id}` }] };
}
);
const transport = new StdioServerTransport();
await server.connect(transport);
بعد ایجنت میتونه مستقیم بگه «به این شماره پیامک تأیید بفرست» و کار رو انجام بده.
امنیت: چیزی که نباید نادیده بگیری
MCP server قدرتمنده — یعنی باید با احتیاط باهاش رفتار کنی:
فایلسیستم: دسترسی رو محدود کن به پوشهٔ پروژه. نذار ایجنت به /etc یا /home دسترسی داشته باشه.
دیتابیس: برای ایجنت یه user با دسترسی read-only بساز — مگه اینکه واقعاً write لازم داری.
اعتبارنامهها: هیچوقت token یا password رو مستقیم در config نذار. از environment variable استفاده کن.
Prompt injection: یه فایل مخرب در پروژه میتونه سعی کنه ایجنت رو دستکاری کنه. از MCP serverهای معتبر استفاده کن.
کِی MCP واقعاً ارزش داره؟
MCP overhead داره — setup، maintenance، ریسک امنیتی. اگه فقط یه فایل ساده میخوای بنویسی، نیازی نیست.
ارزش MCP وقتیه که:
- روی یه codebase بزرگ کار میکنی که ایجنت باید «بفهمه»
- debugging پیچیده داری که نیاز به ارتباط با چند سیستم داره
- میخوای workflowهای تکراری (مثل ساختن PR، آپدیت دیتابیس) رو اتوماتیک کنی
- در یه تیم هستی و میخوای ایجنت با ابزارهای مشترک تیم ارتباط داشته باشه
همچنین بخوان
ادامهٔ مسیر
همهٔ مقالهها ←AiraCode در برابر Cursor — کدام برای توسعهدهندهٔ ایرانی بهتر است؟
مقایسهٔ AiraCode (CLI و وب فارسی) با Cursor در پنج محور تصمیمگیری: دسترسی، حافظهٔ پروژه، قیمت و کیفیت پیشنهاد کد.
AiraCode در برابر GitHub Copilot — مقایسهٔ کامل برای کدنویس ایرانی
تفاوت AiraCode و GitHub Copilot از زاویهٔ کاربر ایرانی: دسترسی، حافظه، تنوع مدل و کیفیت autocomplete.

کدنویسی با هوش مصنوعی چیست؟
کدنویسی با هوش مصنوعی چیست؟ — راهنمای فارسی از مجموعهٔ «کدنویسی با AI» در وبلاگ آیرا. بازنویسیشده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.

Cursor — ویرایشگر کدنویس هوشمند
Cursor — ویرایشگر کدنویس هوشمند — راهنمای فارسی از مجموعهٔ «کدنویسی با AI» در وبلاگ آیرا. بازنویسیشده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.
بیشتر در «کدنویسی با AI»
- GitHub Copilot — راهنمای کامل
- Windsurf (سابق Codeium)
- Claude Code — Anthropic CLI کدنویسی
- AiraCode — همراه کدنویسی فارسی توسعهدهنده ایرانی
- Cursor در مقابل AiraCode
- Aider — pair programming روی ترمینال
- Continue.dev — IDE-agnostic AI
- Cline — autonomous coding agent
- Bolt.new، Lovable و v0 — ساخت اپ با پرامپت
- Devin AI — اولین مهندس نرمافزار هوشمند
- Vibe coding چیست؟
- Agentic coding — نسل جدید کدنویسی
- Sub-agents در Claude Code
- Plan mode چیست و چرا اهمیت دارد
- Tab completion هوشمند
- Multi-file edit با AI
- AI code review
- AI testing و debugging
- پرامپتنویسی برای کدنویسی
- Context-aware refactoring با AI
- AI برای DevOps
- آیندهٔ کدنویسی با AI
- چرا Cursor و Copilot هر روز با یه غریبه میبینندت