سرورهای MCP

افزودن قابلیت به AiraCode از طریق پروتکل Model Context Protocol.

MCP (Model Context Protocol) یه استاندارد بازه که Anthropic معرفی کرد. هر MCP server یه برنامهٔ کوچیکه که tool/resource/prompt به AiraCode می‌ده — مثل دسترسی به دیتابیس، API خصوصی، فایل‌سیستم محدود، و … .

افزودن یک سرور

# stdio (محلی، subprocess می‌مونه)
aira mcp add my-db -- npx -y @modelcontextprotocol/server-postgres "postgresql://localhost/dev"

# HTTP (دور)
aira mcp add my-api --transport http https://my-api.example.com/mcp \
              --header "Authorization=Bearer $TOKEN"

# لیست سرورهای فعال
aira mcp list

# حذف
aira mcp remove my-db

جایی که ذخیره می‌شه

  • ~/.aira/.mcp.json — سرورهای global user-level.
  • .mcp.json در ریشهٔ پروژه — مخصوص اون پروژه (در گیت ذخیره می‌شه).
  • هر دو با هم merge می‌شن، سرور همنام در پروژه roleٔ override رو داره.

tool‌های یک سرور

وقتی سرور MCP اضافه می‌کنی، tool‌هاش با پیشوند mcp__<server-slug>__<tool-name> در فهرست در دسترس می‌شن:

# با سرور my-db بالا:
# mcp__my-db__query
# mcp__my-db__schema
# mcp__my-db__execute

# permission مثل tool‌های دیگه ساخته می‌شه:
# permissions.allow = ["mcp__my-db__schema", "mcp__my-db__query"]

احراز هویت برای MCP

برای سرورهایی که خودشون OAuth دارن، AiraCode از flow استاندارد MCP OAuth پشتیبانی می‌کنه (DCR، CIMD، PKCE). توکن‌ها در ~/.aira/.mcp-tokens.json ذخیره می‌شن.

AiraCode به‌عنوان سرور MCP

می‌تونی AiraCode رو خودش به‌عنوان MCP server اجرا کنی تا ابزارهای دیگه (مثل Cursor، Cline، Continue) ازش استفاده کنن:

aira mcp serve --port 3000

# توی Cursor settings.json:
{
  "mcpServers": {
    "airacode": {
      "url": "http://localhost:3000",
      "headers": { "Authorization": "Bearer $AIRA_API_KEY" }
    }
  }
}