Skip to content

سرور MCP ​

Rahdar از Model Context Protocol پشتیبانی می‌کند، پس یک دستیار می‌تواند «چرا ORDERS.DLQ انباشته شده» را روی کلاسترهای واقعی شما پاسخ دهد، به‌جای حدس‌زدن.

سطح در معرض، شانزده ابزار مبتنی بر قصد است — diagnose، message_action، broker_config_change — نه آینه‌ای از REST API. یک آینه، context مدل را صرف لوله‌کشی می‌کند و سرهم‌کردن تشخیص را به خودش وامی‌گذارد؛ این ابزارها به‌جایش به شکل خودِ پرسش‌ها ساخته شده‌اند (ADR-0045، انگلیسی).

گرفتن یک کلید ​

وارد شوید ← منوی آواتار ← Account ← API keys ← New key ← زمان انقضا، دامنه و مجوزهایی که باید حمل کند و در صورت نیاز ابزارهای MCP مجاز را انتخاب کنید ← مقدار را کپی کنید. فقط یک بار نمایش داده می‌شود.

  • انقضا. هر کلیدی منقضی می‌شود، حداکثر به اندازهٔ بیشینهٔ عمر تعیین‌شده برای نصب پس از ساخت (به‌طور پیش‌فرض ۹۰ روز، Settings ← API tokens ← Maximum lifetime). کم‌کردن این بیشینه کلیدهای موجود را بی‌درنگ کوتاه‌تر می‌کند.
  • ابزارها. کلیدی که به ابزارهای مشخصی محدود شده فقط همان‌ها و rahdar_help را می‌بیند؛ ابزارهای دیگر نه فهرست و نه توصیف می‌شوند، و فراخوانی آن‌ها دقیقاً همان پاسخ ابزاری ناموجود را می‌گیرد.
  • چرخش. Rotate یک رمز تازه می‌سازد و رمز قبلی را در بازهٔ هم‌پوشانی (به‌طور پیش‌فرض ۲۴ ساعت) فعال نگه می‌دارد، تا پیکربندی دستیار بدون قطعی به‌روز شود. کلید مجوزها و زمان انقضایش را نگه می‌دارد.
  • محدودیت‌ها. هر کلید در دقیقه ۶۰۰ درخواست و هم‌زمان ۸ درخواست، و هر کاربر روی همهٔ کلیدهایش در دقیقه ۱٬۲۰۰ درخواست مجاز است. هر پاسخ RateLimit-Limit، RateLimit-Remaining و RateLimit-Reset دارد و درخواست اضافی 429 همراه با Retry-After می‌گیرد.
  • مصرف تعداد درخواست‌های روزانهٔ هر کلید را همراه با موارد ردشده، محدودشده و ناموفق نشان می‌دهد. مدیرانی که مجوز See and revoke every user's API tokens دارند همهٔ کلیدها را در Admin ← API keys می‌بینند؛ کلیدهای بلااستفاده علامت می‌خورند و هر کلیدی را می‌توان باطل کرد (ADR-0136، انگلیسی).

اتصال ​

POST /mcp، روی همان origin رابط کاربری، با کلید به‌عنوان bearer token.

json
{
  "mcpServers": {
    "rahdar": {
      "type": "http",
      "url": "https://rahdar.example.com/mcp",
      "headers": { "Authorization": "Bearer as_..." }
    }
  }
}

بدون کلاینت هم می‌شود آزمودش:

bash
curl -s https://rahdar.example.com/mcp \
  -H "Authorization: Bearer as_..." \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

چه چیزهایی هست ​

نوعنامبرای
Toolrahdar_helpخودِ فهرست: هر ابزار، وضعیت و پارامترهایش
Tooldiagnoseیک کلاستر (نقش HA هر نود، split-brain، تأخیر replication، هشدارهای فعال) یا یک صف از ابتدا تا انتها
Toollist_resourcesصف‌ها، آدرس‌ها، مصرف‌کننده‌ها، نشست‌ها، اتصال‌ها، تولیدکننده‌ها، divertها، bridgeها
Toolmetric_seriesیک سری زمانی سطل‌بندی‌شده برای یک سنجه
Toolconfig_diffپیکربندی هر نود در برابر اکثریت: کلیدهای دچار انحراف و نودهای متفاوت
Toolbroker_configاعلامیهٔ کلاستر، انحراف هر نود، قطعهٔ broker.xml، یا اعمال‌های گذشته
Toolbrowse_messagesهدرها، یا یک بدنه بر اساس id
Tooltrace_request_replyجریان‌ها، آمار تأخیر و timeout، انتظارات پیکربندی‌شده
Toolactivity_logرویدادهای بروکر، یا مسیر ممیزی خود Rahdar
Toolmessage_actionانتقال / retry / حذف / انقضا / purge
Toolqueue_lifecycleساخت، به‌روزرسانی، توقف، ازسرگیری یا نابودی یک صف، آدرس یا divert
Toolbroker_config_changeاعلام یک پیکربندی، یا اعمال آن اول روی قناری با تصدیق خطرها بر اساس شناسه
Toolconnection_actionبستن یک اتصال، نشست، مصرف‌کننده یا مصرف‌کننده‌های یک آدرس
Toolsend_messageصف‌کردن یک پیام
Toolalert_rule / rahdar_settingقواعد هشدار؛ تنظیمات عملیاتی
Resourcerahdar://clusters، rahdar://permissions، rahdar://toolsاین کلید چه می‌بیند و چه می‌تواند بکند
Resourcecluster://{id}/topology، cluster://{id}/capabilities، cluster://{id}/nodes/{nodeId}/settingsنودها؛ اتصال از چه پشتیبانی می‌کند، به‌همراه broker.xml لازم برای باقی؛ تنظیمات مؤثر یک نود
Prompttriage_cluster، investigate_queue، before_you_purge، tune_scrape_loadrunbookها

قرارداد ایمنی ​

دستیاری که یک API مدیریتی در دست دارد، دقیقاً همان‌جایی است که مدل ایمنی باید کسل‌کننده و صریح باشد. این یکی هست:

  • یک کلید هرگز از مالکش فراتر نمی‌رود. دسترسی‌ها در هر فراخوانی با دسترسی‌های زندهٔ مالک اشتراک گرفته می‌شوند، پس محدودکردن یک فرد بی‌درنگ کلیدهایش را هم محدود می‌کند (ADR-0046، انگلیسی).
  • تغییرها به‌طور پیش‌فرض dry-run اند. یک اجرای مخرب واقعی افزون بر آن نیاز دارد confirm برابر نام خودِ صف باشد — که پرسشی جدا از override مربوط به سقف انبوه است و confirm هرگز آن را برآورده نمی‌کند.
  • هر فراخوانی ممیزی می‌شود، خواندن‌ها هم، به‌صورت MCP_TOOL_CALL به نام مالک و با نام کلید ضمیمه‌شده (ada [token: laptop-agent])، همراه با نام ابزار، کلاستر و نتیجه. ردیف‌هایی که یک تغییر می‌نویسد، شامل dry runها، زیر آن قرار می‌گیرند (ADR-0137، انگلیسی).
  • کل نصب را می‌توان فقط‌خواندنی کرد. Settings ← MCP server ← Read-only همهٔ ابزارهای تغییردهنده را برای همهٔ کلیدها پنهان و رد می‌کند، هر confirm ای که داده شود. یک کلید فقط‌خواندنی همان کلیدی است که فقط مجوزهای خواندن دارد.
  • کلاستری که کلید بر آن دسترسی ندارد با این پاسخ برمی‌گردد: «چنین کلاستری وجود ندارد، یا این کلید بر آن دسترسی ندارد» — بدون نام‌بردن از مجوزی و بدون تأیید هیچ id ای.

کشف ​

rahdar_help یک ابزار است، نه یک منبع اختیاری؛ و یک کاتالوگ واحد schemaها، متن راهنما، منبع و دستورالعمل‌های سرور را می‌سازد — پس نمی‌توانند با هم اختلاف پیدا کنند (ADR-0054، انگلیسی).

Apache-2.0. Apache ActiveMQ and Apache ActiveMQ Artemis are trademarks of the Apache Software Foundation. Rahdar is an independent project, not produced by, endorsed by, or affiliated with the ASF.