→ بازگشت به وبلاگ

MCP چیست؟ آموزش کامل ساخت MCP Server از صفر | Hozhi Learn

MCP چیست؟ آموزش کامل ساخت MCP Server از صفر | Hozhi Learn
MCP چیست؟ آموزش کامل + ساخت MCP Server اختصاصی (قدم‌به‌قدم و از صفر) | Hozhi Learn
هوش مصنوعی · ساخت ابزار

MCP چیست؟ هوش مصنوعی را به همه‌چیز وصل کن

در این راهنمای کامل و از صفر یاد می‌گیری MCP دقیقاً چیست، چرا مهم است، و چطور با پایتون یک MCP Server اختصاصی بسازی و به Claude وصلش کنی — همه به ساده‌ترین زبان ممکن و قدم‌به‌قدم، حتی اگر تازه‌کار باشی.

۲۰ دقیقه مطالعه سطح: از صفر / مقدماتی همراه کد کامل همراه ویدیوی آموزشی
فصل ۰۱

MCP دقیقاً چیست؟

تا حالا شده با یک هوش مصنوعی مثل Claude یا ChatGPT حرف بزنی و از یک جایی به بعد بگوید «من به این اطلاعات دسترسی ندارم»؟ مشکل اینجاست که این مدل‌ها خیلی باهوش‌اند، ولی مثل یک آدم فوق‌العاده باهوش‌اند که در یک اتاق دربسته نشسته؛ نه به فایل‌های تو دسترسی دارد، نه به برنامه‌هایی که هر روز با آن‌ها کار می‌کنی. MCP همان چیزی است که این در بسته را باز می‌کند.

MCP مخفف سه کلمه است: Model Context Protocol. بیایید ساده معنی‌شان کنیم. Model یعنی همان مدل هوش مصنوعی (مثل Claude). Context یعنی اطلاعات و ابزارهایی که مدل برای انجام کار لازم دارد (فایل‌هایت، دیتابیس، ایمیل). و Protocol یعنی یک قرارداد یا زبان مشترک؛ یک سری قانون که همه سرشان توافق کرده‌اند تا دو چیز راحت با هم حرف بزنند.

پس MCP یعنی: یک زبان مشترک و استاندارد که به مدل‌های هوش مصنوعی اجازه می‌دهد به اطلاعات و ابزارهای دنیای بیرون وصل شوند.

بهترین تشبیه: MCP مثل USB-C برای هوش مصنوعی است
قدیم هر دستگاه یک شارژر مخصوص خودش داشت و این یک دردسر بود. بعد USB-C آمد و همه از یک درگاه استاندارد استفاده کردند. MCP دقیقاً همین کار را برای هوش مصنوعی کرده: یک بار یک سرور می‌سازی، و هر هوش مصنوعی‌ای که استاندارد MCP را بلد باشد می‌تواند از آن استفاده کند. یک بار بساز، همه‌جا استفاده کن.

و این فقط یک ایده روی کاغذ نیست. MCP را شرکت Anthropic (سازنده‌ی Claude) اواخر ۲۰۲۴ به‌صورت یک استاندارد باز معرفی کرد و خیلی زود بقیه هم پذیرفتندش؛ امروز ابزارهای مختلفی مثل Claude، Cursor و VS Code از آن پشتیبانی می‌کنند. پس وقتی MCP یاد می‌گیری، مهارتی یاد می‌گیری که به یک هوش مصنوعی خاص وصل نیست.

خلاصه: MCP یک زبان مشترک و استاندارد است که هوش مصنوعی را به ابزارها و اطلاعات دنیای بیرون وصل می‌کند؛ مثل USB-C برای هوش مصنوعی.
فصل ۰۲

مشکلی که MCP حل می‌کند

بیایید دو دنیا را مقایسه کنیم تا اهمیتش روشن شود.

دنیای بدون MCP: فرض کن می‌خواهی هوش مصنوعی‌ات به فایل‌های شرکت، دیتابیس مشتری‌ها و تقویم کاری وصل شود. باید برای هر کدام یک اتصال جداگانه و دست‌ساز بنویسی. حالا اگر فردا بخواهی همین‌ها را به یک هوش مصنوعی دیگر هم وصل کنی، باید دوباره از اول همه را بنویسی. یعنی هر ابزار ضربدر هر هوش مصنوعی؛ یک کابوس تکراری.

دنیای با MCP: برای هر ابزار فقط یک بار یک سرور می‌سازی، و بعد هر هوش مصنوعی‌ای که بخواهد فقط به آن وصل می‌شود. Claude می‌تواند استفاده کند، Cursor می‌تواند، بقیه هم می‌توانند؛ همه از یک زبان مشترک.

موضوعبدون MCPبا MCP
اتصال هر ابزارکد جداگانه برای هر ترکیبیک سرور، قابل استفاده برای همه
افزودن هوش مصنوعی جدیدباید همه‌چیز را از نو بنویسیفقط وصلش می‌کنی
نگه‌داریسخت و پرتکرارتمیز و استاندارد
خلاصه: MCP کار تکراری را حذف می‌کند و یک راه استاندارد می‌گذارد جلوی پایت؛ یک بار می‌سازی و همه‌ی هوش مصنوعی‌ها می‌توانند استفاده کنند.
فصل ۰۳

سه جزء اصلی MCP

برای ساختن MCP، اول باید بفهمیم از چه قطعه‌هایی تشکیل شده. فقط سه قطعه‌ی اصلی داریم.

  • Host (میزبان): برنامه‌ای که تو با آن کار می‌کنی و هوش مصنوعی داخلش زندگی می‌کند؛ مثل Claude Desktop یا Cursor.
  • Client (مشتری): یک واسطه که داخل Host نشسته و پیام‌ها را بین هوش مصنوعی و سرور رد و بدل می‌کند. معمولاً پشت صحنه کار می‌کند و مستقیم نمی‌بینی‌اش.
  • Server (سرور): همان چیزی که ابزارها و اطلاعات واقعی را نگه می‌دارد. این همان قسمتی است که ما می‌سازیم.

جریان کار ساده است: داخل Host چیزی می‌نویسی، Client آن را به Server می‌دهد، Server کار را انجام می‌دهد و جواب برمی‌گردد. حالا خودِ Server می‌تواند سه نوع چیز ارائه دهد:

نوعیعنی چهمثال
Tools (ابزارها)کارهایی که هوش مصنوعی می‌تواند انجام دهدفرستادن ایمیل، افزودن یک کار
Resources (منابع)اطلاعاتی که فقط خوانده می‌شوندمحتوای یک فایل یا داده
Prompts (الگوها)قالب‌های آماده برای راحتی کاردستور آماده‌ی «این کد را بررسی کن»

در این آموزش بیشتر روی Tools تمرکز می‌کنیم، چون کاربردی‌ترین و هیجان‌انگیزترین بخش است. وقتی همین را یاد بگیری، بقیه خیلی راحت می‌شود.

خلاصه: MCP سه جزء دارد: Host (برنامه)، Client (واسطه)، Server (چیزی که می‌سازیم). سرور می‌تواند ابزار، منبع و الگو ارائه دهد.
فصل ۰۴

آماده‌سازی محیط از صفر

قبل از ساختن چیزی، باید چند ابزار نصب کنیم. اگر هر کدام را از قبل داری، از رویش رد شو.

  • پایتون ۳.۱۰ یا بالاتر: زبانی که با آن سرور را می‌نویسیم. لازم نیست پایتون بلد باشی؛ کدها را کامل داریم. از python.org بگیر. (ویندوزی‌ها موقع نصب حتماً تیک Add Python to PATH را بزنند.)
  • ابزار uv: کار نصب و اجرای پایتون را خیلی راحت می‌کند.
  • یک ادیتور کد: مثل VS Code یا Cursor (هر دو رایگان).
  • Claude Desktop: همان Host یا میزبان ما. از claude.ai/download بگیر. با اکانت رایگان هم کار می‌کند.
  • Node.js: فقط برای مرحله‌ی تست (ابزار Inspector) و بعضی سرورهای آماده لازم است. نسخه‌ی LTS را از nodejs.org نصب کن.

برای مطمئن‌شدن از نصب درست پایتون و uv، این دستورها را در ترمینال بزن:

بررسی نصب
python --version
uv --version
خلاصه: پنج ابزار لازم داریم: پایتون، uv، یک ادیتور، Claude Desktop و Node.js. همه رایگان و روی سیستم خودت.
فصل ۰۵

ساخت اولین MCP Server

اول یک پروژه‌ی جدید می‌سازیم و کتابخانه‌ی MCP را نصب می‌کنیم:

ساخت پروژه و نصب MCP
uv init mcp-server-demo
cd mcp-server-demo
uv add 'mcp[cli]>=1.28,<2'
چرا نسخه را روی ۱ قفل کردیم؟ (خیلی مهم)
همین اواخر نسخه‌ی ۲ این کتابخانه آمد و ساختارش را کامل عوض کرد. اگر نسخه‌ی ۲ نصب شود، کدهای این آموزش کار نمی‌کنند و خطای No module named 'mcp.server.fastmcp' می‌گیری. برای همین با >=1.28,<2 عمداً روی نسخه‌ی پایدار ۱ می‌مانیم.

حالا در پوشه‌ی پروژه یک فایل به اسم server.py بساز و این کد را داخلش بنویس. (یادت باشه: دستورها در ترمینال زده می‌شوند، ولی کد داخل فایل نوشته و با Ctrl+S ذخیره می‌شود.)

server.py — اولین سرور ما
from mcp.server.fastmcp import FastMCP

# ساختن یک سرور با یک اسم دلخواه
mcp = FastMCP("hozhi-first-server")


# اولین ابزار ما: جمع دو عدد
@mcp.tool()
def add(a: int, b: int) -> int:
    """دو عدد را با هم جمع می‌کند"""
    return a + b


# اجرای سرور
if __name__ == "__main__":
    mcp.run()

بیایید کد را خط‌به‌خط بفهمیم. خط اول ابزار آماده‌ی FastMCP را وارد می‌کند (Fast یعنی سریع؛ راه سریع ساختن سرور). خط بعد یک سرور می‌سازد و یک اسم دلخواه به آن می‌دهد. مهم‌ترین قسمت آن خط @mcp.tool() است؛ این علامت به سرور می‌گوید تابع پایینش یک «ابزار» است که هوش مصنوعی می‌تواند از آن استفاده کند.

آن جمله‌ی داخل سه کوتیشن ("""دو عدد را با هم جمع می‌کند""") هم خیلی مهم است: این توضیح ابزار است و هوش مصنوعی آن را می‌خواند تا بفهمد ابزار چه کاری می‌کند. پس همیشه برای ابزارهایت یک توضیح واضح بنویس. همین! ما با کمتر از ده خط، اولین MCP Server را ساختیم.

خلاصه: با FastMCP و یک دکوریتور @mcp.tool() در چند خط یک سرور با یک ابزار ساختیم. توضیح واضح هر ابزار حیاتی است.
فصل ۰۶

تست با MCP Inspector

قبل از وصل‌کردن سرور به Claude، بهتر است خودمان تستش کنیم. برای این کار ابزار MCP Inspector را داریم که یک صفحه‌ی تصویری می‌دهد و می‌توانیم ابزارها را دستی امتحان کنیم — بدون نیاز به هیچ هوش مصنوعی‌ای. (این ابزار به Node.js نیاز دارد.)

اجرای Inspector
uv run mcp dev server.py
دو چیزی که اولین بار می‌بینی (هیچ‌کدام خطا نیست)
۱) ممکن است یک خط زرد با کلمه‌ی Warning ببینی؛ این فقط یک هشدار بی‌خطر است، ردش کن. ۲) ممکن است بپرسد ابزار Inspector را نصب کند یا نه و بنویسد Ok to proceed?؛ فقط حرف y را بزن و Enter کن.

بعد از چند لحظه یک صفحه در مرورگر باز می‌شود (روی یک آدرس محلی مثل localhost). دکمه‌ی Connect را بزن، برو تب Tools، ابزار add را انتخاب کن، برای a بگذار ۵ و برای b بگذار ۳ و اجرا کن. اگر جواب ۸ آمد، یعنی سرورت درست کار می‌کند.

خلاصه: با uv run mcp dev server.py سرور را قبل از اتصال به هوش مصنوعی، مستقل تست می‌کنیم.
فصل ۰۷

اتصال سرور به Claude Desktop

حالا می‌خواهیم سرور را به Claude Desktop وصل کنیم. یک دستور کوتاه به اسم mcp install وجود دارد، اما در عمل روی ویندوز اغلب با پیام Claude app not found شکست می‌خورد. پس روش دستی را نشان می‌دهیم که همیشه کار می‌کند.

قدم ۱: مسیر پایتونِ پروژه را پیدا کن

پیدا کردن مسیر python.exe پروژه
uv run python -c "import sys; print(sys.executable)"

خروجی یک مسیر می‌دهد که به python.exe ختم می‌شود؛ کپی‌اش کن.

قدم ۲: فایل کانفیگ را باز کن

بهترین و مطمئن‌ترین راه این است که خودِ Claude فایل را برایت باز کند تا دنبال مسیر نگردی: در Claude Desktop برو Settings → Developer → Edit Config. این دکمه دقیقاً همان فایلی را باز می‌کند که اپ از آن می‌خواند.

چرا دستی دنبال فایل نگردیم؟
روی ویندوز، Claude Desktop به شکل MSIX بسته‌بندی می‌شود و فایل کانفیگ واقعی در یک مسیر پنهان و مجازی‌سازی‌شده نگه‌داری می‌شود. برای همین گشتن دستی اغلب به فایل اشتباه می‌خورد. دکمه‌ی «Edit Config» این دردسر را کامل حذف می‌کند.

قدم ۳: سرور را اضافه کن

این بلوک را داخل فایل بگذار. دو نکته‌ی حیاتی: مسیرها را با مسیرهای خودت عوض کن، و در ویندوز هر بک‌اسلش \ را دوتا کن یعنی \\.

claude_desktop_config.json
{
  "mcpServers": {
    "hozhi-first-server": {
      "command": "C:\\path\\to\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\server.py"]
    }
  }
}

اگر فایل از قبل محتوا داشت، بلوک mcpServers را به‌عنوان یک کلید جدید کنار بقیه اضافه کن (نه اینکه چیزی را پاک کنی) و یادت باشد بین کلیدها ویرگول بگذاری.

قدم ۴: کامل ببند و باز کن

خیلی مهم: Claude را فقط با زدن ضربدر نبند، چون پشت صحنه باز می‌ماند. روی آیکونش کنار ساعت راست‌کلیک کن و Quit بزن، بعد دوباره از منوی استارت بازش کن.

قدم ۵: تست کن

حالا در Claude بنویس: «با استفاده از ابزارت، عدد ۱۲۴ و ۲۹۸ را با هم جمع کن.» یک پنجره برای اجازه می‌آید (این برای امنیت است)؛ اجازه بده. Claude به‌جای اینکه خودش حساب کند، ابزار add ما را صدا می‌زند و جواب ۴۲۲ را می‌دهد.

اگر ابزار ظاهر نشد
معمولاً یکی از این سه است: بک‌اسلش‌ها را دوتا نکردی، مسیر python.exe اشتباه است، یا Claude را کامل نبستی. این سه را چک کن. برای دیدن وضعیت سرورها هم برو Settings → Developer و ببین سرورت آنجا هست و سبز است یا نه.
خلاصه: روش دستی (Settings → Developer → Edit Config) مطمئن‌ترین راه اتصال است. مسیر درست، بک‌اسلش دوتایی و بستن کامل، سه کلید موفقیت‌اند.
فصل ۰۸

ساخت یک سرور واقعی: مدیریت کارها

جمع دو عدد فقط برای یادگیری بود. حالا یک چیز واقعی می‌سازیم: یک دستیار مدیریت کارها که به Claude اجازه می‌دهد کار جدید اضافه کند، لیست کارها را بدهد و علامت بزند کدام انجام شده. کارها را در یک فایل ذخیره می‌کنیم تا محفوظ بمانند، و کاملاً آفلاین است (بدون کلید یا اشتراک).

یک فایل به اسم todo_server.py بساز و این کد را بنویس:

todo_server.py — سرور مدیریت کارها
import json
from pathlib import Path
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("todo-manager")

# فایل را دقیقاً کنار همین فایل پایتون بساز (مهم!)
TASKS_FILE = Path(__file__).parent / "tasks.json"


def load_tasks() -> list:
    """کارها را از فایل می‌خواند"""
    if TASKS_FILE.exists():
        return json.loads(TASKS_FILE.read_text(encoding="utf-8"))
    return []


def save_tasks(tasks: list) -> None:
    """کارها را در فایل ذخیره می‌کند"""
    TASKS_FILE.write_text(
        json.dumps(tasks, ensure_ascii=False, indent=2),
        encoding="utf-8",
    )


@mcp.tool()
def add_task(title: str) -> str:
    """یک کار جدید به لیست اضافه می‌کند"""
    tasks = load_tasks()
    new_task = {"id": len(tasks) + 1, "title": title, "done": False}
    tasks.append(new_task)
    save_tasks(tasks)
    return f"کار اضافه شد: {title}"


@mcp.tool()
def list_tasks() -> str:
    """همه‌ی کارها را نمایش می‌دهد"""
    tasks = load_tasks()
    if not tasks:
        return "هیچ کاری در لیست نیست."
    result = []
    for task in tasks:
        status = "انجام‌شده" if task["done"] else "در انتظار"
        result.append(f'{task["id"]}. {task["title"]} ({status})')
    return "\n".join(result)


@mcp.tool()
def complete_task(task_id: int) -> str:
    """یک کار را انجام‌شده علامت می‌زند"""
    tasks = load_tasks()
    for task in tasks:
        if task["id"] == task_id:
            task["done"] = True
            save_tasks(tasks)
            return f'کار شماره {task_id} انجام‌شده علامت خورد.'
    return f'کاری با شماره {task_id} پیدا نشد.'


if __name__ == "__main__":
    mcp.run()
چرا Path(__file__).parent ؟ (نکته‌ی طلایی)
اگر بنویسی Path("tasks.json")، فایل کنار جایی ساخته می‌شود که برنامه از آنجا اجرا می‌شود. ولی وقتی Claude سرور را اجرا می‌کند، پوشه‌ی کاری‌اش یک مسیر سیستمی است که اجازه‌ی نوشتن ندارد و خطای دسترسی می‌گیری. با Path(__file__).parent / "tasks.json" فایل همیشه دقیقاً کنار خودِ سرور و در جای قابل‌نوشتن ساخته می‌شود.

حالا این سرور را هم مثل قبلی، از راه فایل کانفیگ به Claude اضافه کن. دقت کن که هر سرور باید به فایل خودش اشاره کند (اشتباه رایج: اشاره‌ی سرور دوم به فایل سرور اول). و بین دو سرور ویرگول بگذار:

افزودن هر دو سرور در کانفیگ
{
  "mcpServers": {
    "hozhi-first-server": {
      "command": "C:\\path\\to\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\server.py"]
    },
    "todo-manager": {
      "command": "C:\\path\\to\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\todo_server.py"]
    }
  }
}

بعد از ذخیره و ری‌استارت کامل Claude، امتحان کن: «کارهای زیر را به لیستم اضافه کن: تدوین ویدیو، جواب دادن به کامنت‌ها، نوشتن اسکریپت بعدی.» Claude خودش سه بار ابزار add_task را صدا می‌زند. بعد بگو «لیست کارهایم را نشان بده» و بعد «کار اول را انجام دادم، علامتش بزن».

خلاصه: با سه ابزار (افزودن، لیست، تکمیل) یک دستیار واقعی ساختیم. مسیر ذخیره را با Path(__file__).parent بده تا خطای دسترسی نگیری.
فصل ۰۹

استفاده از سرورهای آماده

همیشه لازم نیست خودت از صفر بسازی. هزاران سرور MCP آماده وجود دارد که می‌توانی در دو دقیقه اضافه کنی. چند جای اصلی برای پیدا کردنشان:

  • github.com/modelcontextprotocol/servers — مخزن رسمی و مورد اعتماد
  • mcp.so و glama.ai/mcp/servers — دایرکتوری‌های بزرگ و قابل جستجو
  • smithery.ai — دایرکتوری با نصب آسان
  • github.com/punkpeye/awesome-mcp-servers — لیست دسته‌بندی‌شده
هشدار امنیتی قبل از نصب
یک سرور MCP در واقع برنامه‌ای است که روی کامپیوتر تو اجرا می‌شود. پس فقط سراغ سرورهایی برو که به منبعشان اعتماد داری؛ ترجیحاً رسمی. هر سرور ناشناسی را الکی نصب نکن.

مثال عملی: سرور فایل‌سیستم رسمی

این سرور به Claude اجازه می‌دهد فایل‌های داخل یک پوشه‌ی مشخص را بخواند، بسازد و ویرایش کند. نه به کد نیاز دارد نه به کلید، و فقط از همان Node.js استفاده می‌کند. اول یک پوشه‌ی تست بساز (مثلاً C:\mcp-test)، بعد این را کنار سرورهای قبلی در کانفیگ اضافه کن:

سرور فایل‌سیستم با npx
"filesystem": {
  "command": "npx",
  "args": [
    "-y",
    "@modelcontextprotocol/server-filesystem",
    "C:\\mcp-test"
  ]
}
اگر روی ویندوز npx بالا نیامد
گاهی ویندوز npx را مستقیم پیدا نمی‌کند. در این حالت به‌جای npx از cmd استفاده کن: مقدار command را بگذار cmd و اول args اضافه کن "/c", "npx" و بعد بقیه را مثل قبل.

بعد از ری‌استارت، تست کن: «با ابزار filesystem، فایل‌های داخل مسیر C:\mcp-test را لیست کن.» بهتر است مسیر را کامل و صریح بدهی، چون در حالت Agent، خودِ Claude هم ابزار ساخت فایل داخلی دارد و ممکن است به‌جای سرور تو از آن استفاده کند؛ درخواستی که به یک مسیر مشخص روی درایو نیاز دارد، مطمئن می‌شود که از سرور تو استفاده شود.

نکته: MCP به هیچ زبانی وابسته نیست

سرورهای خودمان را با پایتون نوشتیم و با python اجرا شدند. ولی این سرور آماده را کسی با Node.js نوشته، برای همین با npx اجرا می‌شود. خودِ MCP فقط یک «قرارداد» است و به هیچ زبانی گره نخورده؛ هر کسی می‌تواند با هر زبانی سرور بسازد و همه با هم کار می‌کنند. برای همین بعضی سرورها با python اجرا می‌شوند و بعضی با npx. صفحه‌ی هر سرور خودش می‌گوید با کدام روش اجرایش کنی.

npx چیست؟
npx همراه Node.js می‌آید و یک بسته را از فروشگاه npm می‌گیرد و مستقیم اجرا می‌کند، بدون نصب دائمی. مثل «باز کن و استفاده کن». مزیتش: راحت، همیشه به‌روز، و کامپیوترت را شلوغ نمی‌کند. آن -y هم یعنی «به سؤال‌های نصب خودت جواب بله بده و منتظر من نمان».
خلاصه: سرورهای آماده را از دایرکتوری‌های معتبر بردار و مثل سرور فایل‌سیستم با npx وصل کن. فقط منابع مورد اعتماد را نصب کن.
فصل ۱۰

رفع خطاهای رایج (خیلی مهم)

موقع یادگیری MCP، احتمالاً به چند خطای پرتکرار می‌خوری. این‌ها را جمع کرده‌ایم تا هر جا گیر کردی، سریع حلش کنی.

جدول رفع خطا
  1. No server object found — کد داخل فایل نیست یا ذخیره نشده، یا خط mcp = FastMCP(...) تورفتگی دارد. فایل را ذخیره کن و مطمئن شو این خط چسبیده به سمت چپ است.
  2. No module named 'mcp.server.fastmcp' — نسخه‌ی ۲ نصب شده. با uv add 'mcp[cli]>=1.28,<2' برگرد روی نسخه‌ی ۱.
  3. The system cannot find the path specified — مسیر در کانفیگ اشتباه است یا بک‌اسلش‌ها دوتا نشده‌اند. هر \ را \\ کن و مسیر python.exe را با sys.executable دوباره بگیر.
  4. هر دو ابزار شبیه هم شدند — یک سرور در کانفیگ به فایل سرور دیگری اشاره می‌کند. args هر سرور باید فایل خودش باشد.
  5. خطای دسترسی فایل (tasks.json) — مسیر ذخیره را با Path(__file__).parent بنویس تا فایل کنار خودِ سرور ساخته شود.
  6. سرور اصلاً دیده نمی‌شود — بلوک سرور بیرون از mcpServers افتاده، یا ویرگول جا افتاده/اضافه است. با jsonlint.com ساختار JSON را چک کن.
  7. فایل در جای اشتباه ساخته شد — در حالت Agent، Claude ممکن است از ابزار داخلی خودش استفاده کند نه سرور تو. مسیر کامل بده و بگو با کدام ابزار (مثلاً filesystem).
سه قانون طلایی JSON که جلوی بیشتر خطاها را می‌گیرد
۱) هر چیز داخل آکولاد { } است. ۲) بین کلیدها ویرگول هست، ولی بعد از آخرین کلید نه. ۳) در ویندوز هر بک‌اسلش را دوتا کن (\\). همین سه را رعایت کنی، تقریباً هیچ خطای کانفیگی نمی‌گیری.
خلاصه: بیشتر خطاهای MCP از نسخه‌ی کتابخانه، مسیر فایل، یا ساختار JSON می‌آیند. با این چک‌لیست همه‌شان سریع حل می‌شوند.
فصل ۱۱

امنیت در MCP

وقتی یک سرور MCP می‌سازی یا نصب می‌کنی، داری به هوش مصنوعی قدرت انجام کارهای واقعی می‌دهی. پس امنیت مهم است. چند قانون طلایی:

  • اطلاعات حساس مثل رمز عبور و کلیدها را مستقیم در کد ننویس.
  • فقط سرورهای آماده‌ای را نصب کن که به منبعشان اعتماد داری.
  • ورودی‌هایی که به ابزارهایت می‌آیند را بررسی کن که چیز خطرناکی نباشند.
  • به هر سرور فقط همان دسترسی‌ای را بده که واقعاً لازم دارد. مثلاً سرور فایل‌سیستم فقط‌خواندنی نیست و می‌تواند فایل بسازد و پاک کند؛ پس فقط یک پوشه‌ی مشخص به آن بده، نه کل درایو.
خلاصه: کمترین دسترسی لازم، عدم قراردادن اطلاعات حساس در کد، و اعتماد فقط به منابع معتبر — سه ستون امنیت در MCP.
فصل ۱۲

جمع‌بندی و قدم بعدی

بیایید همه‌چیز را مرور کنیم. اول فهمیدیم MCP چیست: یک زبان مشترک و استاندارد که هوش مصنوعی را به دنیای بیرون وصل می‌کند؛ مثل USB-C برای هوش مصنوعی. سه جزء اصلی‌اش (میزبان، مشتری، سرور) را شناختیم. از صفر محیط را آماده کردیم، اولین سرور را ساختیم، با Inspector تستش کردیم و به Claude وصلش کردیم. بعد یک سرور واقعی برای مدیریت کارها ساختیم و در آخر یاد گرفتیم سرورهای آماده را هم اضافه کنیم.

اگر تا اینجا آمدی، حالا مهارتی داری که خیلی‌ها ندارند. برای قدم بعدی می‌توانی سراغ این‌ها بروی:

قدم‌های بعدی
  1. کاوش در دنیای سرورهای آماده و افزودن آن‌ها که به کارت می‌آیند (گیت‌هاب، دیتابیس، جستجو و...).
  2. ساخت سرورهای راه دور با Streamable HTTP، برای وقتی که می‌خواهی سرورت را با بقیه به اشتراک بگذاری.
  3. افزودن Resources و Prompts به سرورت، نه فقط Tools.
  4. عمیق‌تر شدن در امنیت سرورهای MCP.

هوش مصنوعی جایگزین فهمیدن نیست، شتاب‌دهنده‌ی آن است. حالا که این مفاهیم را داری، هر ابزاری که به هوش مصنوعی وصل می‌شود دیگر یک جعبه‌ی سیاه نیست — خودت می‌توانی بسازی‌اش.

ویدیوی کامل این آموزش را ببین

این مقاله همراهِ ویدیوی کامل است. برای دیدن توضیح گام‌به‌گام و تصویریِ ساخت سرور و اتصال به Claude، ویدیو را تماشا کن.

تماشای ویدیوی کامل

ساخته‌شده برای دانشجویانِ Hozhi Learn — مسیر یادگیری هوش مصنوعی به زبان ساده