رفتن به محتوا

استفاده از سرور MCP

این راهنما نشان می‌دهد چگونه یک کلاینت MCP بیرونی — Claude Code، یک ویرایشگر، MCP Inspector — را به سرور ابزار خودِ Control Center وصل کنید.

Control Center ۱۱۰ ابزار ثبت می‌کند و آن‌ها را از طریق پروتکل Model Context در نسخهٔ پروتکل 2024-11-05 ارائه می‌دهد. خانواده‌های کامل ابزاری که انتظارشان را دارید غایب‌اند: هیچ ابزار جلسه یا تقویمی و هیچ ابزار پروژه‌ای وجود ندارد.

سطح MCP از همان شنوندهٔ اصلی cc_server استفاده می‌کند. پورت جدایی برای MCP وجود ندارد.

نقطهٔ پایانی روش هدف
/mcp POST انتقال Streamable HTTP — این همان چیزی است که یک کلاینت با آن گفتگو می‌کند
/mcp DELETE پایان دادن به یک نشست
/sse GET جریان اعلان ارسالی از سرور

پس یک نصب محلی پیش‌فرض روی http://127.0.0.1:9030/mcp قرار دارد.

  1. به تنظیمات → سرور → سرورهای MCP بروید
  2. کارت سرور MCP را بخوانید — نشان می‌دهد در حال اجراست یا متوقف، و روی کدام پورت گوش می‌دهد

این سطح در یک نصب تازه به‌طور پیش‌فرض روشن است، پس یک کلاینت لوپ‌بک بدون دست‌زدن به تنظیمات کار می‌کند. شروع هنگام راه‌اندازی برنامه تعیین می‌کند که پس از راه‌اندازی دوباره بازگردد یا نه؛ شروع / توقف کنترل‌های نشست‌اند و آن ترجیح را تغییر نمی‌دهند.

سرور به‌طور پیش‌فرض به لوپ‌بک می‌بندد، پس نقطهٔ پایانی تنها از ماشینی که cc_server روی آن اجرا می‌شود قابل‌دسترسی است، مگر آنکه آن را با --bind any راه‌اندازی کرده باشید.

کلاینت خود را به نقطهٔ پایانی Streamable HTTP اشاره دهید. شکل دقیق پیکربندی به خودِ کلاینت مربوط است؛ URL در هر دو حالت یکی است.

{
"mcpServers": {
"control-center": {
"type": "http",
"url": "http://127.0.0.1:9030/mcp"
}
}
}

Claude Code این را از .mcp.json یک پروژه برنمی‌دارد — سرورهای MCP محدود به پروژه را پشت یک پرامپت تأیید قرار می‌دهد که claude -p غیرتعاملی هرگز به آن پاسخ نمی‌دهد. پیکربندی را صریح بدهید:

پنجرهٔ ترمینال
claude --mcp-config /path/to/mcp.json --strict-mcp-config

--strict-mcp-config باعث می‌شود Claude تنها از همان فایل استفاده کند، تا همان سرور از پروژه هم کشف نشود و دو بار ثبت نگردد.

چک‌پوینت: از کلاینت بخواهید ابزارهایش را فهرست کند. باید ورودی‌های mcp__* را ببینید که تیکت‌ها، فضاها، حافظه، گراف کد و بازبینی را پوشش می‌دهند.

  1. در تنظیمات → سرور → سرورهای MCP، روی ردیف توکن احراز هویت، تنظیم را بزنید و یک توکن جای‌گذاری کنید
  2. آن را به‌صورت Authorization: Bearer <token> روی هر درخواست POST /mcp بفرستید

سطحی که توکن ندارد هر فراخوانِ غیرلوپ‌بک را با 403 رد می‌کند. این عمداً با شکست بسته طراحی شده است: توکن همان چیزی است که سرویس‌دهی بیرون از میزبان را اساساً ممکن می‌کند.

تغییرات توکن بی‌درنگ روی سطح زنده اعمال می‌شوند — بدون راه‌اندازی دوباره.

محدودکردن هر فراخوانی به یک فضای کاری

بخش با عنوان “محدودکردن هر فراخوانی به یک فضای کاری”

هر ابزاری که به دادهٔ محدود به فضای کاری دست می‌زند workspace_id لازم دارد و فراخوانی بدون آن رد می‌شود، نه اینکه در برابر فلان «فضای کاری جاری» حل شود:

{
"workspace_id": "acme",
"title": "Fix login bug",
"priority": "high"
}

این شناسه همانی است که در URL مرورگر یا اپ شما هست: /workspaces/<workspace_id>/…. تنها استثناها ابزارهایی‌اند که واقعاً فراتر از فضای کاری‌اند، مانند list_workspaces و ابزارهای خوراک خبری — خوراک خبری هر-کاربر است و یک عامل کاربر خودش را ندارد، پس آن ابزارها روی خوراک‌های مالک سرور کار می‌کنند.

ابزارهای محدود به مخزن نیز علاوه بر آن بررسی می‌کنند که مخزن به همان فضای کاری پیوند خورده باشد.

  • دروازه‌گذاری حالت. یک فراخوانی سمت سرور در برابر حالت فضای عامل فراخوان حل می‌شود. عاملی در یک حالت فقط‌خواندنی نمی‌تواند با حذف space_id به یک ابزار نوشتن برسد — در عوض، حالت از اجرای فعالش خوانده می‌شود.
  • گاردریل‌های کنش. ابزارهای تغییردهنده کلاس‌های اثرشان را اعلام می‌کنند و از همان سیاستی می‌گذرند که بقیهٔ محصول استفاده می‌کند. پیکربندی گاردریل‌ها را ببینید.
  • تأیید. بعضی ابزارهای مخرب یک محمولهٔ تأیید می‌سازند که باید پیش از ادامهٔ فراخوانی تأیید شود.

کاتالوگ کامل در tools/list اعلام می‌شود، بدون هیچ دروازه‌گذاری کشف — یک کلاینت MCP بیرونی از فراخوانی ابزاری که در فهرست کش‌شده‌اش نیست سر باز می‌زند، پس پنهان‌کردن ابزارها آن‌ها را مرتب نمی‌کند، بلکه از کار می‌اندازد.

  • بررسی کنید کارت سرور MCP در حال اجرا باشد
  • بررسی کنید پورت با پورت cc_server شما بخواند
  • روی Claude Code، بررسی کنید --mcp-config و --strict-mcp-config را فرستاده باشید

توکن bearer تنظیم نشده است. یکی تنظیم کنید و بفرستید.

فراخوانی یک ابزار با «Missing or invalid argument: workspace_id» شکست می‌خورد

بخش با عنوان “فراخوانی یک ابزار با «Missing or invalid argument: workspace_id» شکست می‌خورد”

workspace_id را اضافه کنید. هیچ فضای کاری ضمنی‌ای در کار نیست.

فراخوانی یک ابزار به‌عنوان ناشناخته رد می‌شود

بخش با عنوان “فراخوانی یک ابزار به‌عنوان ناشناخته رد می‌شود”

ابزارهای MCP کاتالوگ را فهرست می‌کند. نام را دقیقاً همان‌طور که آنجا آمده فراخوانی کنید.