رفتن به محتوای اصلی
های چت

MCP و اتصال هوش مصنوعی

سرور MCP های چت را به Claude، ChatGPT، Codex، Gemini، Grok و هر ابزار سازگار دیگر وصل کنید؛ با محدودیت آی‌پی اجباری، دسترسی جدا برای هر کلید و تایید انسانی برای کارهای حساس.

MCP (Model Context Protocol) استاندارد بازی است که دستیارهای هوش مصنوعی با آن به ابزارهای بیرونی وصل می‌شوند. های چت یک سرور MCP دارد که هوش مصنوعی با آن می‌تواند گفتگوها، پیام‌ها، کاربران و آمار وبسایت شما را بخواند و با تایید شما کارهایی مثل فرستادن پیام یا بستن گفتگو را انجام دهد.

MCP برای بسته الماسی و بالاتر فعال است.

آدرس سرور

https://app.hichat.ir/api/mcp
ویژگیمقدار
انتقالStreamable HTTP (فقط POST با پاسخ JSON)
نسخه‌های پروتکل2025-11-25، 2025-06-18، 2025-03-26، 2024-11-05
احراز هویتهدر Authorization: Bearer cfm_...
درخواست دسته‌ایپشتیبانی نمی‌شود

درخواست‌هایی که هدر Origin دارند (یعنی از مرورگر فرستاده شده‌اند) رد می‌شوند. کلید را هیچ‌وقت داخل کد سمت مرورگر نگذارید.

ساختن کلید MCP

در پنل به توسعه‌دهندگان و زبانه MCP بروید و در بخش کلیدها روی کلید تازه بزنید.

  1. هوش مصنوعی مقصد را انتخاب کنید تا دستور راه‌اندازی همان ابزار به شما نشان داده شود.
  2. اعتبار کلید را از یک هفته تا یک سال انتخاب کنید. کلید MCP بدون انقضا ساخته نمی‌شود.
  3. دسترسی‌ها را تیک بزنید. دسترسی‌های تغییر به طور پیش‌فرض هر بار به تایید شما نیاز دارند و در بخش عملیات حساس همین پنجره می‌توانید برای بعضی از آن‌ها تایید را خاموش کنید.
  4. آی‌پی‌های مجاز را بنویسید. این بخش اجباری است و دکمه استفاده از آی‌پی من آی‌پی فعلی شما را اضافه می‌کند. محدوده هم قبول است، ولی دست‌کم /16 برای IPv4 و /32 برای IPv6.
  5. تیک پذیرفتن مسئولیت را بزنید و ساخت کلید را بزنید. مالک وبسایت و سازنده کلید بعدا هم می‌توانند با نمایش کلید و وارد کردن رمز عبورشان کلید را دوباره ببینند.

مسئولیت نگهداری کلید، انتخاب دسترسی‌ها و تایید عملیات حساس با خود شماست. فقط دسترسی‌هایی را بدهید که واقعا لازم است و کلیدی را که استفاده نمی‌کنید باطل کنید.

راه‌اندازی در هر ابزار

Claude Code

claude mcp add --transport http hichat https://app.hichat.ir/api/mcp --header "Authorization: Bearer cfm_xxx"

Claude Desktop

در Settings و بخش Developer روی Edit Config بزنید و این را به فایل اضافه کنید. برای این روش Node.js لازم است.

{
  "mcpServers": {
    "hichat": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://app.hichat.ir/api/mcp", "--header", "Authorization:${HICHAT_AUTH}"],
      "env": { "HICHAT_AUTH": "Bearer cfm_xxx" }
    }
  }
}

Codex CLI

export HICHAT_MCP_KEY="cfm_xxx"

و در فایل ~/.codex/config.toml:

[mcp_servers.hichat]
url = "https://app.hichat.ir/api/mcp"
bearer_token_env_var = "HICHAT_MCP_KEY"

Gemini CLI

در فایل ~/.gemini/settings.json:

{
  "mcpServers": {
    "hichat": {
      "httpUrl": "https://app.hichat.ir/api/mcp",
      "headers": { "Authorization": "Bearer cfm_xxx" }
    }
  }
}

ChatGPT و Grok

این دو از راه API شرکت سازنده‌شان وصل می‌شوند. ابزار mcp را با آدرس سرور و هدر Authorization به درخواست Responses API بدهید. در این حالت درخواست‌ها از سرورهای OpenAI یا xAI به های چت می‌رسند، پس محدوده آی‌پی‌های خروجی آن‌ها را از مستندات رسمی‌شان در فهرست مجاز بگذارید.

curl https://api.openai.com/v1/responses \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5","tools":[{"type":"mcp","server_label":"hichat","server_url":"https://app.hichat.ir/api/mcp","headers":{"Authorization":"Bearer cfm_xxx"},"require_approval":"never"}],"input":"گفتگوهای باز امروز را خلاصه کن"}'

ابزارهای دیگر

هر کلاینتی که Streamable HTTP و هدر سفارشی را پشتیبانی کند وصل می‌شود. برای آزمایش:

curl -X POST https://app.hichat.ir/api/mcp \
  -H "Authorization: Bearer cfm_xxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

ابزارها

هر کلید فقط ابزارهای مربوط به دسترسی‌های خودش را در tools/list می‌بیند.

ابزاردسترسیکار
list_conversationsconversations:readفهرست گفتگوها، حداکثر ۲۵ مورد در هر صفحه و ۹۰ روز اخیر
get_conversationconversations:readجزئیات یک گفتگو
get_messagesmessages:readپیام‌های یک گفتگو، حداکثر ۵۰ پیام در هر صفحه
get_visitorvisitors:readمشخصات کاربر و صفحه‌های اخیر
list_operators / list_departmentsteam:readاپراتورها و دپارتمان‌ها
list_canned_repliescanned:readپاسخ‌های آماده عمومی
get_statsstats:readآمار یک بازه، حداکثر ۹۲ روز
send_messagemessages:writeفرستادن پیام یا یادداشت داخلی (حساس)
close_conversation / assign_conversation / set_conversation_tagsconversations:writeبستن، سپردن و برچسب زدن (حساس)
delete_conversationconversations:deleteحذف همیشگی گفتگو (حساس)
block_visitor / unblock_visitor / update_visitorvisitors:writeمسدود کردن و ویرایش کاربر (حساس)
create_canned_reply / delete_canned_replycanned:writeساختن و حذف پاسخ آماده (حساس)
check_approvalهر دسترسی تغییروضعیت یک درخواست حساس

عملیات حساس

ابزارهای حساس به طور پیش‌فرض مستقیم اجرا نمی‌شوند. هر فراخوانی یک درخواست منتظر تایید می‌سازد و هوش مصنوعی این پاسخ را می‌گیرد:

{
  "status": "pending_approval",
  "requestId": "1049863...",
  "summary": "بستن گفتگوی ۱۲۴ با علی",
  "expiresInHours": 24
}

درخواست در پنل، بخش MCP و عملیات حساس، نمایش داده می‌شود. کسی که دسترسی تایید عملیات حساس MCP دارد آن را می‌خواند و تایید یا رد می‌کند. هنگام تایید، سرور دوباره این‌ها را بررسی می‌کند و فقط اگر همه درست باشد عملیات را اجرا می‌کند:

  • کلید هنوز معتبر است، باطل نشده و منقضی نشده.
  • کلید هنوز دسترسی همان عملیات را دارد.
  • آی‌پی‌ای که درخواست از آن آمده هنوز در فهرست مجاز کلید است.
  • بسته وبسایت هنوز MCP دارد و سرویس MCP متوقف نشده.
  • تاییدکننده دسترسی همان کار را در پنل دارد، مثلا برای بستن گفتگو دسترسی بستن گفتگو.
  • گفتگو، کاربر یا پاسخ آماده هنوز وجود دارد و مال همین وبسایت است.

درخواست‌ها بعد از ۲۴ ساعت منقضی می‌شوند و در هر لحظه حداکثر ۵۰ درخواست منتظر تایید برای هر وبسایت پذیرفته می‌شود. هوش مصنوعی می‌تواند با check_approval نتیجه را ببیند.

اجرای بدون تایید

مدیر برای هر کلید جدا مشخص می‌کند کدام عملیات حساس بدون تایید اجرا شود. این کار در پنجره ساختن یا ویرایش کلید، بخش عملیات حساس، انجام می‌شود و فقط کسی می‌تواند تایید را خاموش کند که دسترسی تایید عملیات حساس MCP و دسترسی همان کار را در پنل دارد. در این حالت هوش مصنوعی این پاسخ را می‌گیرد:

{
  "status": "executed",
  "requestId": "1049863...",
  "summary": "برچسب گفتگوی ۱۲۴",
  "result": { "ok": true }
}

هر اجرا به نام همان مدیر ثبت می‌شود و در سابقه با نشان «بدون تایید» دیده می‌شود. اگر دسترسی آن مدیر برداشته شود یا از تیم برود، عملیات دوباره منتظر تایید می‌ماند. هر کلید حداکثر ۱۲۰ اجرای بدون تایید در ساعت دارد.

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

  • delete_conversation: حذف گفتگو
  • block_visitor و unblock_visitor: مسدود کردن و رفع مسدودی کاربر
  • update_visitor: ویرایش مشخصات کاربر

محدودیت‌ها

برای اینکه سرور برای همه پایدار بماند، این سقف‌ها اعمال می‌شود:

محدودیتمقدار
درخواست برای هر کلید۶۰ در دقیقه و ۵٬۰۰۰ فراخوانی ابزار در روز
درخواست برای هر وبسایت۳۰۰ در دقیقه و ۲۰٬۰۰۰ فراخوانی ابزار در روز
درخواست همزمان۳ برای هر کلید و ۸ برای هر وبسایت
درخواست حساس تازه۳۰ در ساعت برای هر کلید
حجم درخواست۶۴ کیلوبایت
حجم پاسخ هر ابزارحدود ۶۰ هزار حرف؛ بیشتر از آن کوتاه می‌شود
زمان اجرای هر ابزار۸ ثانیه
کلید فعال۱۰ کلید برای هر وبسایت

تلاش‌های پشت سر هم با کلید نادرست از یک آی‌پی، آن آی‌پی را برای چند دقیقه مسدود می‌کند.

خطاها

خطاهای احراز هویت و محدودیت با کد HTTP و یک پیام JSON-RPC برمی‌گردند:

کدمعنی
401کلید نامعتبر، باطل‌شده یا منقضی
402بسته وبسایت MCP ندارد
403آی‌پی مجاز نیست یا درخواست از مرورگر آمده
413حجم درخواست زیاد است
429درخواست زیاد یا همزمان؛ هدر Retry-After را ببینید
503MCP موقتا از طرف های چت متوقف شده است

خطای خود ابزارها، مثل ورودی نادرست یا نداشتن دسترسی، در پاسخ tools/call با isError: true می‌آید تا هوش مصنوعی بتواند خودش را اصلاح کند.

گزارش فراخوانی‌ها

همه فراخوانی‌ها با زمان، کلید، ابزار، نتیجه، مدت اجرا و آی‌پی در بخش گزارش زبانه MCP ثبت می‌شود و تا ۳۰ روز نگه داشته می‌شود. ساختن، ویرایش و باطل کردن کلیدها و تایید یا رد عملیات حساس هم در گزارش فعالیت‌های وبسایت ثبت می‌شود.