کدنویسی با AI

MCP servers برای کدنویسی

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

نوشتهٔ به‌روزرسانی: ۵ دقیقه مطالعه
تصویر مقالهٔ MCP servers برای کدنویسی

اگه از یه ابزار 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، آپدیت دیتابیس) رو اتوماتیک کنی
  • در یه تیم هستی و می‌خوای ایجنت با ابزارهای مشترک تیم ارتباط داشته باشه

همچنین بخوان

#کدنویسی با AI

ادامهٔ مسیر

همهٔ مقاله‌ها ←

بیشتر در «کدنویسی با AI»