سرور MCP
NSIN یک سرور Model Context Protocol (MCP) از راه دور میزبانی میکند تا دستیارهای هوش مصنوعی بتوانند دامنهها، رکوردهای دیاناس، کش و قوانین لبهی شما را با زبان طبیعی مدیریت کنند — «یک رکورد A برای staging به 203.0.113.7 اضافه کن»، «هرچه زیر /assets است را از کش example.com پاک کن»، «الان سایت پایین است؟»، «این هفته چقدر ترافیک داشتم؟».
- آدرس:
https://api.nsin.ir/mcp(Streamable HTTP) - احراز هویت: کلید API شما بهصورت
Authorization: Bearer nsin_… - چیزی برای نصب نیست — NSIN آن را میزبانی میکند.
Claude Code
Section titled “Claude Code”claude mcp add --transport http nsin https://api.nsin.ir/mcp \ --header "Authorization: Bearer nsin_your_key_here"Claude.ai / Claude Desktop
Section titled “Claude.ai / Claude Desktop”در Settings → Connectors یک custom connector با آدرس
https://api.nsin.ir/mcp اضافه کنید و هدر Authorization: Bearer nsin_… را
هنگام درخواست وارد کنید.
Cursor
Section titled “Cursor”به .cursor/mcp.json (یا ~/.cursor/mcp.json سراسری) اضافه کنید:
{ "mcpServers": { "nsin": { "url": "https://api.nsin.ir/mcp", "headers": { "Authorization": "Bearer nsin_your_key_here" } } }}ابزارها
Section titled “ابزارها”علامت ✓ در ستون دوم یعنی کلید فقطخواندنی هم میتواند آن ابزار را صدا بزند. به کلید فقطخواندنی فهرست کوچکتری از ابزارها داده میشود: ابزارهای نوشتن نهتنها رد میشوند، بلکه اصلاً به دستیار نشان داده نمیشوند.
دامنه، دیاناس و SSL
Section titled “دامنه، دیاناس و SSL”| ابزار | کلید فقطخواندنی | توضیح |
|---|---|---|
list_domains | ✓ | همهی دامنههای در دسترس، با وضعیت و نقش شما |
get_domain | ✓ | جزئیات کامل یک دامنه، وضعیت نیمسرورها و تنظیمات |
list_dns_records | ✓ | رکوردها با شناسه، وضعیت پراکسی و پروتکل/پورت/Host مبدأ |
get_ssl_status | ✓ | اعتبار، انقضا، صادرکننده، SANها و نامهای پوششدادهنشده |
add_domain | — | افزودن دامنه به حساب (دیاناس مدیریتشده یا خارجی) |
create_dns_record | — | ساخت رکورد، همراه با پروتکل، پورت و Host مبدأ |
update_dns_record | — | تغییر فیلدهای یک رکورد |
delete_dns_record | — | حذف رکورد |
check_nameservers | — | بررسی دوبارهی واگذاری نیمسرورها و فعالسازی دامنه |
issue_ssl_certificate | — | صدور فوری گواهی، بدون انتظار برای چرخهی خودکار |
set_developer_mode | — | دور زدن کش برای چند ساعت هنگام انتشار تغییرات |
update_domain_settings | — | سقف و TTL کش، هدرهای امنیتی، Markdown برای ایجنتها |
| ابزار | کلید فقطخواندنی | توضیح |
|---|---|---|
list_cache_entries | ✓ | مرور محتوای کششده: هاست، مسیر، نوع، نود، حجم و انقضا |
get_cache_summary | ✓ | تعداد و حجم کل اشیای کششده، به تفکیک نود لبه |
purge_cache | — | پاکسازی کل کش یک دامنه |
purge_cache_by_path | — | پاکسازی (یا تازهسازی) هرچه با یک الگوی مسیر بخواند |
purge_cache_entries | — | پاکسازی (یا تازهسازی) دقیقاً همان اشیایی که فهرست کردهاید |
قوانین
Section titled “قوانین”| ابزار | کلید فقطخواندنی | توضیح |
|---|---|---|
list_rules | ✓ | فهرست یک نوع قانون به ترتیب اجرا، با شناسه و تنظیمات |
toggle_rule | — | فعال یا غیرفعال کردن یک قانون |
list_rules و toggle_rule یک kind میگیرند: cache، waf، drop،
rate_limit، captcha، bot_route، fingerprint، redirect، rewrite،
header، origin_pool، origin_route، basic_auth، error_page یا optimize. ساخت و
ویرایش قوانین در پنل انجام میشود — سرور MCP میتواند آنها را بخواند و یک قانون
دردسرساز را موقتاً خاموش کند.
ترافیک، لاگ و سلامت
Section titled “ترافیک، لاگ و سلامت”| ابزار | کلید فقطخواندنی | توضیح |
|---|---|---|
get_analytics_summary | ✓ | درخواست، پهنای باند، بازدیدکننده، نسبت کش و نرخ خطا |
get_top_uris | ✓ | پربازدیدترین آدرسهای صفحه در یک بازه |
search_request_logs | ✓ | لاگ خام درخواستها با فیلتر وضعیت، مسیر، کش، مقصر خطا، IP و ray id |
list_waf_events | ✓ | رویدادهای فایروال: کدام قانون، روی چه چیزی و با چه اقدامی |
run_analytics_query | ✓ | اجرای کوئری فقطخواندنی روی لاگ درخواستهای شما |
get_uptime_status | ✓ | سلامت لحظهای مبدأ برای هر زیردامنه — «الان پایین است؟» |
list_uptime_incidents | ✓ | تاریخچهی قطعیها |
list_recommendations | ✓ | یافتههای NSIN برای دامنه و کاری که باید انجام دهید |
get_traffic_usage | ✓ | مصرف روزانه به تفکیک cached / proxied / bypass / direct |
get_plan_features | ✓ | سهمیه، میزان مصرف و امکاناتی که پلن فعال کرده است |
پاکسازی کش
Section titled “پاکسازی کش”سه ابزار پاکسازی داریم، از کلی به دقیق. هر سه به دسترسی cache.edit و پلنی با
قابلیت پاکسازی کش نیاز دارند.
purge_cache_by_path گزینهی روزمره است — همان پاکسازی بعد از انتشار:
path: "/assets/*"— هرچه زیر یک مسیر استpath: "/"— صفحهی اصلیpath: "/blog/post-1"— یک صفحه
قواعد تطبیق: * نشانهی wildcard است و الگوی بدون * بهصورت زیررشته تطبیق
داده میشود؛ یعنی /logo.png با /img/logo.png?v=2 هم میخواند. اگر این مهم
است، الگو را مقید کنید (/assets/*). عبارت باقاعده (regex) پشتیبانی نمیشود.
میتوانید کار را به یک hostname یا یک node محدود کنید؛ اگر هیچکدام را ندهید،
پاکسازی همهی هاستهای دامنه روی همهی نودها را میگیرد. همهی گونههای کلید کش یک
آدرس (کوئریاسترینگ، موبایل، WebP/AVIF، گونههای CORS) همراه آن پاک میشوند.
هر فراخوانی تا ۱۰٬۰۰۰ شیء را پاک میکند و اگر الگو بیش از این تعداد را گرفته باشد
truncated: true برمیگرداند — تا وقتی این مقدار false شود دوباره صدا بزنید. برای
دیدن اینکه یک الگو چه چیزهایی را میگیرد، همان path را به list_cache_entries
بدهید.
purge_cache_entries همان سطرهایی را که list_cache_entries برگردانده پاک
میکند — وقتی که الگوی زیررشتهای بیش از حد لازم را میگیرد.
purge_cache هرچه دامنه در کش دارد، روی همهی نودها، پاک میکند. گزینهی
سنگین است: تا پرشدن دوبارهی کش، همهی ترافیک به مبدأ میرود.
هر دو ابزار دقیق mode: "refresh" را هم میپذیرند: فقط نسخهی کششده حذف میشود تا
بازدیدکنندهی بعدی آن را از مبدأ بگیرد و ردیف در فهرست بماند. اگر کسی در حال
انتشار پیاپی است، set_developer_mode بهتر از پاکسازی مکرر است.
کوئریهای دلخواه آمار
Section titled “کوئریهای دلخواه آمار”run_analytics_query به دستیار اجازه میدهد به پرسشهایی پاسخ دهد که ابزار
اختصاصی ندارند — «۲۰ آدرس برتر بر اساس تعداد 5xx در ۷ روز گذشته»، «پهنای باند
ساعتی یک زیردامنه»، «کدام ASNها بیشترین ترافیک bypass را فرستادهاند». شما (یا
هوش مصنوعی) یک SELECT روی جدول requests میفرستید و ستونها و سطرها را بهصورت
JSON میگیرید (تا سقف ۱۰٬۰۰۰ سطر).
این قابلیت بهشدت محدود شده است:
- فقط خواندن. تنها یک
SELECT(یاWITH … SELECT) پذیرفته میشود. نوشتن، DDL، تغییر تنظیمات،INTO OUTFILE/FORMATو توابع جدولی (url،file،remote،s3، …) رد میشوند. - فقط دادهی خودتان. هر کوئری توسط موتور به دامنههایی که کلید شما به آنها دسترسی دارد محدود میشود؛ حتی داخل زیرکوئری هم راهی برای خواندن دادهی دیگران نیست.
- محدود. زمان اجرا و تعداد سطرهای خواندهشده و بازگشتی سقف دارند تا کوئری سنگین از کنترل خارج نشود.
ستونهای مفید requests: event_time، domain_id، hostname، method،
uri، status، bytesIn، bytesOut، duration (میلیثانیه)، remoteAddr،
country، asn، asnOrg، userAgent، cacheStatus (hit/miss/bypass)،
bypassReason، cacheAge، reqStatus (cache/proxied/direct)، isWS،
protocol، referer، rayId، node، originStatus، originAddr، error،
errFault (مقصر خطا: origin/edge/client)، errReason،
upstreamDuration (زمان رفتوبرگشت مبدأ)، originConnReused، originDialMs،
originTlsMs، originTtfbMs، originTlsVersion، ja4، botKind، wafScore،
mdConverted، optKind. برای دستهبندی زمانی از toStartOfHour(event_time) یا
toStartOfDay(event_time) استفاده کنید.
توجه کنید که errFault = 'origin' خطاهایی را هم میگیرد که اصلاً به وضعیت 5xx
نرسیدهاند — تایماوت، رد اتصال، یا مبدأیی که ارتباط را قطع کرده — یعنی قطعیهایی
که فیلتر status >= 500 آنها را نمیبیند.
مجوزها و ایمنی
Section titled “مجوزها و ایمنی”- سرور MCP دقیقاً با مجوزهای حساب شما عمل میکند. نقشهای اشتراکگذاری اعمال میشوند: با دسترسی Viewer روی یک دامنهی اشتراکی، ابزارهای نوشتن روی آن دامنه حتی با کلید کامل شکست میخورند.
- محدودیتهای پلن هم اعمال میشود. مانیتورینگ، لاگ درخواستها، WAF و پاکسازی کش به پلن دامنه وابستهاند و ابزاری که به آنها نیاز دارد با ذکر دلیل شکست میخورد.
- هر عمل MCP از همان مسیر اعتبارسنجی، ثبت وقایع و شمارش مصرف REST API عبور میکند و در محدودیت نرخ کلید (۳۰۰ درخواست در دقیقه) حساب میشود.
- ابطال کلید در پنل، دستیار را بلافاصله قطع میکند.