سرورهای MCP
افزایش توانمندیهای Claude Code با Model Context Protocol برای اتصال به ابزارها و سرویسهای خارجی
به کلید API نیاز دارید؟ ثبتنام ←نقاط پایانی و Base URL ←
در این صفحه
MCP (Model Context Protocol) یک استاندارد باز از Anthropic است که به Claude Code امکان اتصال به ابزارها، پایگاههای داده، APIها و سرویسهای خارجی را میدهد. با MCP میتوانید توانمندیهای Claude Code را بهطور چشمگیری افزایش دهید.
MCP چیست؟¶
مفاهیم اصلی¶
MCP یک پروتکل باز است که استانداردهای ارتباط میان دستیارهای هوش مصنوعی و سامانههای خارجی را تعریف میکند. این پروتکل از سه جزء اصلی تشکیل شده است:
| جزء | توضیح | نمونهها |
|---|---|---|
| ابزارها | کنشهای اجرایی | کوئری گرفتن از پایگاه داده، ارسال درخواست، دستکاری فایلها |
| منابع | دادههای خواندنی | محتوای فایل، پاسخهای API، رکوردهای پایگاه داده |
| promptها | قالبهای از پیش تعریفشده وظایف | قالبهای بازبینی کد، قالبهای تولید گزارش |
چرا MCP؟¶
-
توانمندیهای گسترده: به Claude اجازه میدهد به سامانههایی دسترسی داشته باشد که در غیر این صورت نمیتوانست به آنها برسد
-
دادههای لحظهای: دریافت آخرین مستندات، محتوای پایگاه داده، دادههای API
-
خودکارسازی: اجرای استقرارها، ارسال اعلانها، مدیریت منابع
-
حریم خصوصی: پردازش دادهها بهصورت محلی، بدون نیاز به بارگذاری در ابر
شروع سریع¶
بررسی وضعیت MCP¶
> /mcp
وضعیت سرورهای MCP پیکربندیشده را نشان میدهد.
افزودن سرور MCP¶
از دستور claude mcp add استفاده کنید:
# Add filesystem server
claude mcp add filesystem npx -y @modelcontextprotocol/server-filesystem /path/to/directory
# Add SQLite database server
claude mcp add sqlite npx -y mcp-server-sqlite ./database.db
# Add custom server
claude mcp add my-server node /path/to/server.js
فایل پیکربندی¶
همچنین میتوانید فایلی با نام .mcp.json در ریشه پروژه خود بسازید:
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
},
"database": {
"command": "npx",
"args": ["-y", "mcp-server-sqlite", "./data.db"]
}
}
سرورهای پرکاربرد MCP¶
فایلسیستم¶
دسترسی به فایلسیستم محلی:
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"]
}
}
قابلیتها: خواندن، نوشتن و جستجوی فایلها در پوشه مشخصشده.
پایگاه داده SQLite¶
اتصال به پایگاه داده SQLite:
{
"sqlite": {
"command": "npx",
"args": ["-y", "mcp-server-sqlite", "./database.db"]
}
}
قابلیتها: اجرای کوئریهای SQL، مدیریت شمای پایگاه داده.
GitHub¶
اتصال به مخازن GitHub:
{
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
قابلیتها: مدیریت Issues، PRها و عملیات مخزن.
Context7 (بازیابی مستندات)¶
دریافت آخرین مستندات کتابخانه:
{
"context7": {
"command": "npx",
"args": ["-y", "@context7/mcp-server"]
}
}
قابلیتها: بازیابی مستندات بهروز و نمونهکدهای هر کتابخانه.
Supabase¶
اتصال به بکاند Supabase:
{
"supabase": {
"command": "npx",
"args": ["-y", "@supabase/mcp-server"],
"env": {
"SUPABASE_URL": "${SUPABASE_URL}",
"SUPABASE_KEY": "${SUPABASE_KEY}"
}
}
}
قابلیتها: عملیات پایگاه داده، احراز هویت، مدیریت فضای ذخیرهسازی.
Docker¶
مدیریت کانتینر:
{
"docker": {
"command": "npx",
"args": ["-y", "@docker/mcp-server"]
}
}
قابلیتها: مدیریت کانتینرها، ایمیجها، شبکهها.
انواع سرور¶
stdio (فرایند محلی)¶
رایجترین نوع است و بهصورت یک زیرفرایند محلی اجرا میشود:
{
"my-server": {
"command": "node",
"args": ["./server.js"],
"env": {
"API_KEY": "${API_KEY}"
}
}
}
ویژگیها:
-
بهصورت محلی اجرا میشود و دادهها روی دستگاه خودتان باقی میمانند
-
Claude Code چرخه عمر فرایند را مدیریت میکند
-
مناسب برای فایلسیستم و پایگاههای داده محلی
SSE (رویدادهای ارسالی سرور)¶
⚠️ بر اساس مشخصات MCP نسخه 2025-11-25، SSE منسوخ شده است. اتصالهای جدید باید از Streamable HTTP استفاده کنند (بخش HTTP را در ادامه ببینید). SSE تنها برای سازگاری با سرورهای موجود نگه داشته شده است.
به سرورهای MCP میزبانیشده از راه دور متصل شوید:
{
"remote-server": {
"type": "sse",
"url": "https://mcp.example.com/sse"
}
}
ویژگیها:
-
مناسب برای سرویسهای ابری
-
از احراز هویت OAuth پشتیبانی میکند
-
نیازی به نصب محلی نیست
HTTP¶
رویکرد RESTful API:
{
"api-server": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
}
متغیرهای محیطی¶
پیکربندی MCP از جایگزینی متغیرهای محیطی پشتیبانی میکند:
{
"my-server": {
"command": "node",
"args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],
"env": {
"DATABASE_URL": "${DATABASE_URL}",
"API_KEY": "${API_KEY}",
"DEFAULT_NAMESPACE": "${K8S_NAMESPACE:-default}"
}
}
}
نحو:
-
${VAR}- با مقدار متغیر محیطی جایگزین کنید -
${VAR:-default}- اگر متغیر تنظیم نشده باشد، از مقدار پیشفرض استفاده کنید
مثالهای عملی¶
مثال 1: دستیار پرسوجوی پایگاه داده¶
{
"postgres": {
"command": "npx",
"args": ["-y", "mcp-server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/mydb"
}
}
}
استفاده:
> Query total order amount for the last 7 days
> Find the top 10 users with the most purchases
مثال 2: عملیات Kubernetes¶
{
"kubernetes": {
"command": "node",
"args": ["./k8s-mcp-server.js"],
"env": {
"KUBECONFIG": "${KUBECONFIG}",
"K8S_NAMESPACE": "${K8S_NAMESPACE:-default}"
}
}
}
استفاده:
> List the status of all Pods
> Restart the api-server deployment
> Show recent error logs
مثال 3: پیکربندی چندسروری¶
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "./src"]
},
"database": {
"command": "npx",
"args": ["-y", "mcp-server-sqlite", "./data.db"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
عیبیابی¶
سرور راهاندازی نمیشود¶
-
بررسی کنید که دستور بهدرستی نصب شده است:
bash npx -y @modelcontextprotocol/server-filesystem --help -
بررسی کنید که متغیرهای محیطی تنظیم شدهاند:
bash echo $GITHUB_TOKEN -
گزارشهای Claude Code را برای پیامهای خطا بررسی کنید
ابزارها در دسترس نیستند¶
-
برای بررسی وضعیت سرور از
/mcpاستفاده کنید -
قالب فایل پیکربندی (نحو JSON) را بررسی کنید
-
برای بارگذاری مجدد پیکربندی، Claude Code را دوباره راهاندازی کنید
مشکلات مجوز¶
-
اطمینان حاصل کنید که مسیرهای فایل مجوز خواندن/نوشتن دارند
-
رشته اتصال پایگاه داده درست است
-
توکن API معتبر است و مجوزهای کافی دارد
توصیههای امنیتی¶
-
اصل حداقل دسترسی: فقط دسترسیهای لازم را اعطا کنید
-
محافظت از اطلاعات حساس: برای توکنها و گذرواژهها از متغیرهای محیطی استفاده کنید
-
محدود کردن دسترسی به مسیرها: برای سرورهای فایلسیستم فقط پوشههای لازم را در معرض دسترسی قرار دهید
-
چرخش منظم کلیدها: توکنهای API را بهطور دورهای بهروزرسانی کنید
نکات امنیتی¶
سرور MCP با هویت شما اجرا میشود — میتواند دادهها را بخواند، ابزارها را فراخوانی کند و به اعتبارنامهها دسترسی پیدا کند. افزودن یک سرور MCP شخص ثالث در عمل کد خارجی را به محیط توسعه شما متصل میکند؛ پس با احتیاط با آن رفتار کنید.
خطرهای اصلی
-
خارجسازی داده: یک سرور مخرب یا آلوده میتواند کد، فایلها یا محتوای مکالمه شما را به مقصدی خارجی بفرستد.
-
مسمومسازی ابزار: یک سرور دستورالعملهای پنهانی را در توضیحات ابزار خود جای میدهد و Claude را به سمت اقداماتی سوق میدهد که هرگز به آنها اجازه ندادهاید.
-
افشای اعتبارنامه: یک سرور با پیکربندی نادرست ممکن است متغیرهای محیطی، اسرار یا توکنها را بخواند.
-
اختیارات بیش از حد گسترده: اعطای قابلیتهای ابزار فراتر از آنچه واقعاً لازم است، سطح حمله را گستردهتر میکند.
راهکارهای کلیدی کاهش خطر
-
فقط سرورهای مورد اعتماد را نصب کنید: سرورهای MCP رسمی، بررسیشده یا متنباز و قابل ممیزی را ترجیح دهید؛ از پیادهسازیهای با منشأ ناشناس دوری کنید.
-
حداقل دسترسی: محدودههای ابزار اعلامشده هر سرور را یکبهیک بررسی کنید و فقط قابلیتها و پوشههایی را که واقعاً لازم دارید در معرض دسترسی قرار دهید.
-
دروازههای تأیید انسانی را حفظ کنید: Claude Code پیش از اجرای یک فراخوانی ابزار درخواست تأیید میکند — بهصورت کورکورانه تأیید نکنید و عملیات مخرب، نوشتنی یا مرتبط با اعتبارنامه را بهطور کامل بهصورت خودکار تأیید نکنید.
-
اعتبارنامهها را جداسازی کنید: هنگام اجرای دستورها در محیط ایزوله، از
sandbox.credentialsاستفاده کنید تا فرایندهای ایزولهشده از خواندن اسرار و متغیرهای محیطی بازداشته شوند. -
ممیزی فراخوانیها: فعالیت فراخوانی ابزار را ثبت و بهطور دورهای بررسی کنید تا رفتار غیرعادی را زودهنگام تشخیص دهید.
برای مدل کامل تهدید، ایزولهسازی و پیکربندی جداسازی اعتبارنامه، بهترین شیوههای امنیتی را ببینید.
گامهای بعدی¶
-
برای ساخت قابلیتهای سفارشی، درباره سیستم افزونه اطلاعات کسب کنید
-
برای افزایش بهرهوری، نکات CLI را ببینید
-
برای بهینهسازی جریان توسعه، نکات جریان کار را بررسی کنید
با QCode شروع کنید
یک کلید API برای Claude Code، Codex و بیشتر — بر اساس توکن، قیمت هر مدل در qcode.cc/models