nsindocs جستجو در مستندات⌘K
  1. مستندات
  2. API و MCP

MCP Server

کلود، Cursor و سایر ابزارهای AI را با MCP server میزبانی‌شده انسین به NSIN وصل کنید.

در این صفحه

NSIN یک Model Context Protocol (MCP) server از راه دور میزبانی می‌کند — به AI assistant خودتان بگویید "purge /assets on example.com" یا چیزی شبیه آن، با زبان عادی.

  • Endpoint: https://api.nsin.ir/mcp (Streamable HTTP)
  • Auth: API key شما به‌صورت Authorization: Bearer nsin_…
  • چیزی برای نصب نیست — NSIN آن را میزبانی می‌کند.

اتصال

Claude Code

bash
claude mcp add --transport http nsin https://api.nsin.ir/mcp \
  --header "Authorization: Bearer nsin_your_key_here"

Claude Desktop

این را به claude_desktop_config.json اضافه کنید (Settings → Developer → Edit Config). با mcp-remote کلید شما به‌صورت header فرستاده می‌شود:

json
{
  "mcpServers": {
    "nsin": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.nsin.ir/mcp",
               "--header", "Authorization: Bearer nsin_your_key_here"]
    }
  }
}

Cursor

به .cursor/mcp.json (یا ~/.cursor/mcp.json سراسری) اضافه کنید:

json
{
  "mcpServers": {
    "nsin": {
      "url": "https://api.nsin.ir/mcp",
      "headers": { "Authorization": "Bearer nsin_your_key_here" }
    }
  }
}

Toolها

علامت ✓ یعنی یک key read-only می‌تواند از آن tool استفاده کند. کلیدهای read-only فهرست کوچک‌تری می‌بینند — toolهای write هرگز به assistant نشان داده نمی‌شوند. هر tool به client هم می‌گوید که فقط می‌خواند یا چیزی را حذف یا جایگزین می‌کند، تا Claude و clientهای دیگر قبل از یک call پرخطر از شما بپرسند.

Domain و recordهای DNS

Tool کلیدهای read-only توضیح
list_domains ✓ domainهای شما: وضعیت، حالت DNS، SSL، نقش
get_domain ✓ جزئیات یک domain، nameserverها، تنظیمات
get_domain_checks ✓ آخرین نتیجهٔ هر بررسی DNS
add_domain — اضافه کردن یک domain (managed یا DNS خارجی)
check_nameservers — تست دوبارهٔ delegation و فعال‌سازی domain در انتظار
verify_domain — بررسی رکورد TXT یک domain با DNS خارجی و فعال‌سازی آن
enable_domain — برگرداندن یک domain غیرفعال
delete_domain — حذف domain (فقط مالک، با confirm)
update_domain_settings — بودجه/TTL/سقف body برای cache، security headerها، HSTS، حداقل TLS، bot cache، Markdown for AI، حالت DNS
set_developer_mode — bypass موقت cache و نمایش خطاهای origin
probe_origin_protocols ✓ هر origin با کدام نسخه‌های HTTP کار می‌کند
list_dns_records ✓ recordها: idها، وضعیت proxy، scheme/port/host مبدأ
create_dns_record — ساخت یک record: TTL، scheme، port، override برای Host
update_dns_record — تغییر فیلدهای یک record
delete_dns_record — حذف یک record
batch_update_dns_records — تغییر تا ۱٬۰۰۰ record در یک call
batch_delete_dns_records — حذف تا ۱٬۰۰۰ record (با confirm)
check_edge_dns — DNS خارجی: تست این‌که یک hostname به edge انسین می‌رسد

Import و export ناحیه (zone)

Tool کلیدهای read-only توضیح
export_dns_zone ✓ zone به‌صورت فایل BIND (با originها، نه IPهای edge)
scan_dns_records ✓ پیش‌نمایش آن‌چه nameserverهای فعلی منتشر می‌کنند
preview_zone_file — parse یک فایل zone و نمایش نتیجهٔ import
import_dns_records — import سطرها، یا همه‌چیز از یک scan تازه
get_dns_import_session ✓ خواندن یک import مرحله‌ای
manage_dns_import_session — شروع، scan دوباره، commit یا کنار گذاشتن import مرحله‌ای

یک export از انسین همان‌طور که بود import می‌شود: recordهای proxied همچنان proxied می‌مانند و alias روی apex به‌صورت ANAME برمی‌گردد.

SSL

Tool کلیدهای read-only توضیح
get_ssl_status ✓ اعتبار گواهی، تاریخ انقضا، صادرکننده، SANها، خلأها
list_ssl_certificates ✓ همهٔ گواهی‌ها: مدیریت‌شده توسط انسین و آپلودشده
issue_ssl_certificate — صدور فوری گواهی، بدون صبر برای چرخه
request_managed_ssl_certificate — افزودن گواهی انسین پشت یک گواهی آپلودشده
upload_ssl_certificate — نصب گواهی و کلید خودتان، یا فقط parse آن
select_ssl_certificate — انتخاب گواهی‌ای که edge ارائه می‌دهد
remove_ssl_certificate — حذف یک گواهی آپلودشده (با confirm)
check_ssl_delegation — DNS خارجی: تست delegation رکورد _acme-challenge
get_acme_dns_account ✓ حساب acme-dns پشت صدور گواهی، اگر باشد
manage_acme_dns_account — ذخیره، تست یا حذف آن حساب

اشتراک‌گذاری و gatewayها

Tool کلیدهای read-only توضیح
list_domain_members ✓ چه کسانی دسترسی دارند، با نقش
list_domain_invites — دعوت‌های در انتظار (لینک‌هایشان حکم credential دارد)
invite_domain_member — دعوت یک نفر با email و نقش
update_domain_member — تغییر نقش یا اعلان‌های یک عضو
remove_domain_member — لغو دسترسی (با confirm)
manage_domain_invite — ارسال دوباره یا لغو یک دعوت
list_gateways ✓ فهرست gatewayها و این‌که کدام روشن‌اند
accept_gateway_terms — ثبت پذیرش شرایط gateway توسط کاربر
enable_gateway / rename_gateway / disable_gateway — روشن کردن، تغییر نام، خاموش کردن یک gateway

Rules

Tool کلیدهای read-only توضیح
list_rules ✓ یک نوع rule، به ترتیب اجرا، با idها و تنظیمات
get_rule ✓ یک rule با همهٔ فیلدهایش
get_rule_schema ✓ body دقیق هر نوع rule، با مثال
create_rule — ساخت rule از هر نوع
update_rule — تغییر یک rule (body جزئی)
delete_rule — حذف یک rule (با confirm)
reorder_rules — تعیین ترتیب اجرای یک نوع
toggle_rule — روشن/خاموش کردن یک rule
get_waf_shield_status ✓ وضعیت NSIN Shield، rule پیش‌فرض WAF
restore_waf_shield — برگرداندن rule حذف‌شدهٔ Shield
list_edge_nodes ✓ idهای nodeهای edge، برای origin poolهای جغرافیایی

kind: cache، waf، drop، rate_limit، captcha، bot_route، fingerprint، redirect، rewrite، header، origin_pool، origin_route، basic_auth، error_page یا optimize. ruleها فقط روی hostnameهای proxied اثر دارند. نوعی که در plan شما نیست خاموش ذخیره می‌شود و روشن نمی‌شود.

Cache

Tool کلیدهای read-only توضیح
list_cache_entries ✓ چه چیزی cache شده: host، path، variant، storage node، اندازه، انقضا
get_cache_summary ✓ تعداد آبجکت و بایت cache‌شده روی هر storage node
get_cache_entry_content ✓ آن‌چه edge برای یک آبجکت ذخیره کرده
purge_cache — purge کل cache یک domain
purge_cache_by_path — purge/refresh یک الگوی URI
purge_cache_entries — purge/refresh دقیقاً همان آبجکت‌های فهرست‌شده

Traffic و logها

Tool کلیدهای read-only توضیح
get_analytics_summary ✓ request، bandwidth، بازدیدکننده، خطاها
get_traffic_breakdown ✓ یک تفکیک: کشورها، ASNها، status codeها، TLS، cache، originها، crawlerهای AI، کندترین pathها، …
get_top_uris ✓ پربازدیدترین URLها
get_account_analytics ✓ traffic همهٔ domainهای شما
search_request_logs ✓ log خام: status، URI، cache، fault، IP، ray id
list_waf_events ✓ رویدادهای firewall: rule، هدف، اقدام
list_tunnel_suspects ✓ clientهایی که شبیه tunnel VPN/proxy هستند
run_analytics_query ✓ SQL دلخواه read-only روی logهای request
test_markdown_for_agents ✓ گرفتن یک صفحه یک بار مثل مرورگر و یک بار مثل agent هوش مصنوعی
get_traffic_usage ✓ مصرف روزانه: cached / proxied / bypass / direct
get_plan_features ✓ quota، مصرف، featureهای plan

Uptime

Tool کلیدهای read-only توضیح
get_uptime_status ✓ سلامت origin برای هر hostname، همین الان
list_uptime_incidents ✓ تاریخچهٔ قطعی‌ها
get_uptime_settings ✓ آستانه‌ها، hostهای زیر نظر، کانال‌های هشدار
update_uptime_settings — تغییر تشخیص و هشدار
list_uptime_monitors ✓ monitorهای path (تا ۱۰ عدد برای هر domain)
create_uptime_monitor / update_uptime_monitor / delete_uptime_monitor — مدیریت monitorهای path
get_uptime_webhook — webhook و secret امضای آن
list_uptime_webhook_deliveries — ۵۰ ارسال آخر
test_uptime_webhook — ارسال همین حالا یک رویداد آزمایشی
rotate_uptime_webhook_secret — جایگزینی secret امضا (با confirm)

Email Routing

Tool کلیدهای read-only توضیح
get_email_routing ✓ وضعیت routing یک domain، DNS و catch-all
enable_email_routing / disable_email_routing — روشن/خاموش کردن routing (رکوردهای MX عوض می‌شوند)
check_email_routing_dns — بررسی همین حالای رکوردهای MX، SPF و DKIM
set_email_routing_lock — قفل یا باز کردن رکوردهایی که routing مدیریت می‌کند
update_email_routing_settings — گزینه‌های routing (subaddressing)
list_email_routing_rules ✓ آدرس‌های سفارشی
create_email_routing_rule / update_email_routing_rule / delete_email_routing_rule — مدیریت آدرس‌های سفارشی
set_email_catch_all — سرنوشت ایمیلی که با هیچ rule‌ای match نمی‌شود
list_email_destinations ✓ صندوق‌هایی که ایمیل می‌تواند به آن‌ها برود، و تأییدشده بودنشان
create_email_destination — افزودن یک صندوق؛ ایمیل تأیید می‌فرستد
resend_email_destination_verification / verify_email_destination — ارسال دوبارهٔ لینک، یا تکمیل با token آن
delete_email_destination — حذف یک صندوق (با confirm)
get_email_routing_activity ✓ چه اتفاقی برای ایمیل‌های domain افتاد
setup_email_routing — یک مرحله: روشن کردن routing، افزودن صندوق و ساخت اولین آدرس
send_email — ارسال یک ایمیل متنی ساده از یکی از آدرس‌های domain (با confirm)
list_sent_email ✓ ایمیل‌های ارسالی و جواب سرورهای گیرنده

یک مقصد تا وقتی صاحبش روی لینک تأیید کلیک نکند چیزی forward نمی‌کند.

Account

Tool کلیدهای read-only توضیح
list_recommendations ✓ یافته‌های NSIN برای یک domain، و چه چیزی را تغییر دهید
get_recommendations_overview ✓ یافته‌های باز در همهٔ domainها
set_recommendation_dismissed — پنهان کردن یا برگرداندن یک یافته
list_notifications ✓ فهرست اعلان‌های شما
mark_notifications_read — علامت خوانده‌شده برای بعضی یا همه
list_support_tickets / get_support_ticket ✓ تیکت‌های شما و گفت‌وگوهایشان
create_support_ticket / reply_to_support_ticket — باز کردن تیکت یا پاسخ به آن

نوشتن ruleها

اول get_rule_schema را با نوع rule صدا بزنید: همهٔ فیلدهای body آن نوع را با type، مقدارهای مجاز، پیش‌فرض‌ها و محدودیت‌ها، به‌علاوهٔ bodyهای نمونه فهرست می‌کند. بعد create_rule را با kind و body در rule صدا بزنید. فیلدی که آن نوع ندارد قبل از ذخیره رد می‌شود.

update_rule یک body جزئی می‌گیرد: فیلدهایی که نفرستید مقدارشان می‌ماند، و فهرستی که بفرستید جای فهرست قبلی را می‌گیرد. برای متوقف کردن یک rule بدون حذف، {"enabled": false} بفرستید. priority کمتر زودتر اجرا می‌شود؛ reorder_rules ترتیب یک نوع را در یک call تعیین می‌کند.

Purge کردن cache

سه tool برای purge، از دقیق‌ترین به کلی‌ترین. همه به permission cache.edit و یک plan با cache purge نیاز دارند.

purge_cache_by_path — tool روزمره، بعد از یک deploy. path: "/assets/*" (یک دایرکتوری)، path: "/" (صفحه اصلی)، path: "/blog/post-1" (یک صفحه). * یک wildcard است، نه regex.

  • بدون * یعنی substring match — /logo.png با /img/logo.png?v=2 هم match می‌شود — وقتی مهم است با /assets/* آن را anchor کنید.
  • hostname/node اختیاری دامنه را محدود می‌کند؛ اگر هیچ‌کدام ندهید یعنی هر hostname، هر node.
  • همه variantهای cache key (query string، mobile، WebP/AVIF، CORS) هم purge می‌شوند.
  • در هر call تا 10,000 آبجکت؛ truncated: true یعنی دوباره تکرار کنید. با list_cache_entries پیش‌نمایش بگیرید.

purge_cache_entries دقیقاً همان سطرهایی را purge می‌کند که list_cache_entries برگردانده — برای الگوهایی که بیش از حد match می‌کنند.

purge_cache هر چیز cache‌شده را روی هر node می‌اندازد — گزینه‌ی خشن، origin تا پر شدن دوباره تمام traffic را می‌گیرد.

toolهای هدفمند mode: "refresh" را هم می‌پذیرند: کپی cache‌شده را حذف می‌کند اما entry در فهرست می‌ماند؛ بازدیدکننده بعدی دوباره از origin می‌گیرد. در حال deploy هستید؟ از set_developer_mode استفاده کنید، نه یک حلقه purge.

Queryهای دلخواه analytics

run_analytics_query کارهایی را پوشش می‌دهد که هیچ tool اختصاصی انجام نمی‌دهد — "20 URI برتر بر اساس تعداد 5xx، 7 روز اخیر". یک SELECT از ClickHouse روی جدول requests بدهید، ستون‌ها و ردیف‌ها را به‌صورت JSON پس بگیرید، با سقف 10,000 ردیف.

Sandboxed است:

  • فقط خواندن. فقط یک SELECT/WITH … SELECT. write، DDL، تغییر تنظیمات، INTO OUTFILE/FORMAT، توابع table (url، file، remote، s3، …) رد می‌شوند.
  • فقط داده‌های خودتان — محدود به domainهایی که key شما به آن‌ها دسترسی دارد، حتی در یک subquery.
  • زمان اجرا و تعداد ردیف محدود است.

ستون‌های مفید 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) bucket بسازید.

errFault = 'origin' outageهایی را می‌گیرد که status 5xx ندارند — timeout، refused connection، قطع ناگهانی — چیزهایی که status >= 500 از قلم می‌اندازد.

دسترسی‌ها و ایمنی

  • MCP از دسترسی‌های خود account شما استفاده می‌کند — نقش Viewer روی یک domain share‌شده، حتی با یک key با دسترسی کامل، toolهای write را روی آن domain مسدود می‌کند.
  • featureهای plan هم gate می‌کنند: monitoring، logها، WAF، cache purge؛ یک tool که به یکی از این‌ها نیاز دارد با دلیل شکست می‌خورد.
  • هر اقدام همان validation، audit logging و metering مصرف REST API را می‌گیرد، و در rate limit 300 request در دقیقه حساب می‌شود.
  • toolهایی که چیزی را برای همیشه حذف می‌کنند confirm: true می‌گیرند؛ assistant باید اول از شما بپرسد.
  • هیچ keyای نمی‌تواند پول جابه‌جا کند: شارژ کیف پول، خرید plan و انتخاب عضو پرداخت‌کنندهٔ یک domain فقط در پنل انجام می‌شود.
  • Revoke کردن key در پنل، assistant را قطع می‌کند.
esc