وقتی Cascade بورد را میبیند چه چیزی تغییر میکند
عامل Cascade در Windsurf از قبل کدبیس باز را میبیند. بدون MCP هیچ ایدهای ندارد الان روی چه تسکی کار میکنید، معیار پذیرش چیست، یا اصلاً باگی که دارد رفع میکند به شما تخصیص داده شده یا نه — آن زمینه در یک تب مرورگر است که باید با دست توضیحش بدهید. با اتصال سرور MCP ویکیافگو، Cascade میتواند پیش از نوشتن حتی یک خط کد get_context_pack را صدا بزند و بعد از تمامشدن کار update_status را، همانجا در همان مکالمهای که دارد فایلها را ویرایش میکند.
تنظیمات: ~/.codeium/windsurf/mcp_config.json
Windsurf برخلاف اسکیم cursor:// در Cursor، لینک نصب یککلیکی برای MCP ندارد — تنظیمات یک فایل JSON است که مستقیم ویرایشش میکنید. Windsurf Settings → Cascade → MCP Servers را باز کنید، یا مستقیم فایل را ویرایش کنید:
{
"mcpServers": {
"wkfgo": {
"serverUrl": "https://YOUR_INSTANCE/api/mcp",
"headers": {
"Authorization": "Bearer wk_YOUR_KEY"
}
}
}
}
به نام کلید دقت کنید: تنظیمات Windsurf از serverUrl استفاده میکند، نه url. چیز کوچکی است، اما رایجترین دلیلی است که یک تنظیمات کارکردنِ Cursor بعد از کپیپیست در Windsurf بیصدا شکست میخورد — فیلدی که ویکیافگو نیاز دارد اصلاً آنجا نیست. کلید شخصی wk_… خودتان را از Settings → Integrations → Connect your AI IDE بگیرید؛ یک کلید برای هر توسعهدهنده، هرگز یک توکن ادمین مشترک.
تأیید اتصال
بعد از ویرایش تنظیمات Windsurf را ریاستارت کنید — سرورهای MCP فقط هنگام استارت خوانده میشوند. بعد در Cascade بپرسید:
«از list_tasks استفاده کن و تسکهای تخصیصدادهشده به من را نشان بده.»
جواب خالی یا forbidden تقریباً همیشه یکی از این دو دلیل را دارد: JSON بدشکل است (کاما اضافهی انتهایی مقصر معمول است)، یا FeatureAccess کلید پروژهای را که میپرسید پوشش نمیدهد. بهندرت شبکه است — نقطهپایانی MCP همانی است که Cursor و Claude Code هم با موفقیت استفاده میکنند.
یک چرخهی کاری در Cascade
الگویی که در عمل جواب میدهد: پیش از شروع یک تغییر، get_context_pack({taskId}) معیار پذیرش، صفحات ویکی مرتبط و وابستگیها را به مکالمه میآورد — بعد Cascade کد را بر اساس محدودیتهای واقعی مینویسد، نه حدسزدن از یک عنوان تسک مبهم. وقتی تغییر آماده شد، submit_for_review تسک را جابهجا میکند و برنچ را لینک میکند، و log_time جلسه را بدون یک اپ تایمر جدا ثبت میکند.
get_context_pack → نوشتن تغییر → submit_for_review → log_time
هیچکدام اینها به یک دستور اسلش یا حالت خاص نیاز ندارد — همان چرخهی فراخوانی ابزاری است که Cascade از قبل برای ویرایش فایل استفاده میکند، فقط به سمت یک سرور دیگر.
اشتباهات رایج
فرضکردن اینکه url و serverUrl قابلتعویضند. نیستند، بین IDEها. هر کلاینت MCP اسم فیلد خودش را برای همان مفهوم انتخاب کرده — Cursor و Claude Code از url استفاده میکنند، Windsurf از serverUrl، Gemini CLI از httpUrl. کپیکردن یک قطعهکد بین IDEها بدون چککردن نام کلید، رایجترین شکست راهاندازی است.
یک توسعهدهنده تست میکند، بقیه هنوز در مرورگرند. MCP فقط وقتی جواب میدهد که کل تیم استفاده کند — یکپارچهسازی نیمهپذیرفتهشده یعنی بورد برای بعضی تسکها بهروز است و برای بقیه قدیمی، که بدتر از یک بورد یکنواخت قدیمی است چون کسی نمیداند به کدام نیمه اعتماد کند.
ردکردن چک دسترسی. کلید MCP هویت کاربر و مجوزهای پروژهای او را به ارث میبرد و دامنهی خود کلید نیز میتواند نوشتن را ببندد. پیمانکاری بدون دسترسی مالی از طریق MCP هم روی ابزارهای مالی forbidden میگیرد؛ کلید read نیز حتی با مجوز پروژه اجازهی ابزار نوشتنی نمیدهد. این خطا را با کلید ادمین دور نزنید.
سؤالات متداول
آیا با حالت self-hosted/محلی Windsurf کار میکند؟
بله — MCP یک اتصال سمتکلاینت به نقطهپایانی /api/mcp نمونهی ویکیافگوی شماست؛ اینکه خودِ Windsurf کجا اجرا میشود اهمیتی ندارد.
میتوانم همان کلید را هم در Windsurf و هم در Cursor استفاده کنم؟ بله، یک کلید شخصی به یک کلاینت محدود نیست. استفاده از کلیدهای جدا برای هر دستگاه، لغو یک دستگاه گمشده را سادهتر میکند.
آیا این جایگزین یکپارچهسازی گیت ویکیافگو میشود؟
نه — لینککردن کامیتها به تسکها هنوز از طریق قرارداد TASK-<id> در پیام کامیت اتفاق میافتد، مستقل از اینکه Cascade کامیت را نوشته یا یک انسان.
پایلوتی که ارزش اتصال را ثابت میکند
برای شروع، کلید read جداگانه بسازید و از Cascade بخواهید یک تسک واقعی را پیدا کند، بستهی زمینهاش را بخواند و معیار پذیرش را خلاصه کند؛ در این مرحله هیچ نوشتنی لازم نیست. بعد از کنترل خروجی و مجوزها، برای یک توسعهدهنده کلید نوشتن بسازید و فقط چرخهی start_work → submit_for_review را روی یک پروژهی کمریسک امتحان کنید. معیار موفقیت این است که وضعیت بورد بدون ورود دستی بهروز بماند و عامل چیزی خارج از پروژهی مجاز نبیند.
کلید API یک راز حامل است: آن را داخل مخزن، اسکرینشات یا تنظیمات مشترک تیم نگذارید. برای هر دستگاه کلید جدا بسازید تا لغو یک لپتاپ، بقیهی اتصالها را قطع نکند. اگر ابزار forbidden برگرداند، بهجای دادن کلید ادمین، FeatureAccess همان کاربر و پروژه را اصلاح کنید. راهنمای اتصال همهی محیطهای توسعه مسیرهای دیگر و عیبیابی مشترک را پوشش میدهد.
نکتهی نسخه: رابط تنظیمات Windsurf ممکن است در نسخههای بعدی جابهجا شود؛ منبع حقیقت، فایل mcp_config.json و مستندات نسخهی نصبشدهی خودتان است. نقطهپایانی WKFGo همچنان /api/mcp با Streamable HTTP و هدر Bearer است.