اتصال MCP

MCP بینا ویرا چیست؟

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

MCP server URL
https://mcp.binavira.ir/mcp

مشخصات سرور

  • آدرسhttps://mcp.binavira.ir/mcp
  • پروتکلMCP روی HTTP (Streamable HTTP)، پیام‌ها JSON-RPC 2.0
  • نسخه‌های پروتکل2025-06-18، 2025-03-26، 2024-11-05
  • احراز هویتهدر Authorization: Bearer YOUR_TOKEN (توکن حساب بینا ویرا)
  • قابلیت‌هافقط ابزار (tools). منابع (resources) و پرامپت‌ها ندارد.
  • نشست (session)بدون وضعیت: لازم نیست نشست نگه دارید. هر درخواست مستقل است.
  • پاسخJSON ساده (بدون SSE). درخواست GET و DELETE پشتیبانی نمی‌شود.
  • ورود با OAuthفعلاً ندارد

اتصال در سه قدم

  1. توکن حساب خودتان را از کارت «توکن شما» بالای همین بخش کپی کنید.
  2. در برنامهٔ خودتان یک سرور MCP از نوع HTTP (Streamable HTTP) اضافه کنید: آدرس را بالا و هدر Authorization: Bearer YOUR_TOKEN را بگذارید.
  3. برنامه را دوباره باز کنید و از هوش مصنوعی بخواهید با بینا ویرا کاری انجام دهد.

توکن مثل رمز عبور است؛ در جای عمومی نگذارید. اگر لو رفت، از همان صفحه توکن جدید بسازید تا قبلی از کار بیفتد.

نمونهٔ تنظیمات

بیشتر برنامه‌ها یک فایل تنظیم یا فرم برای سرورهای MCP دارند. شکل رایج این است؛ فقط نام فیلدها در برنامه‌های مختلف کمی فرق می‌کند (مثلاً url، serverUrl یا httpUrl، و گاهی "type": "http"). مستندات برنامهٔ خودتان را برای «remote MCP server با هدر» ببینید؛ مقدارها همین‌هاست.

JSON
{
  "mcpServers": {
    "binavira": {
      "url": "https://mcp.binavira.ir/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}
اگر برنامه فقط ابزارهای محلی (stdio) را می‌پذیرد

با پل mcp-remote می‌شود سرور HTTP را مثل یک دستور محلی استفاده کرد (به Node.js نیاز دارد). این دستور را به‌عنوان command سرور MCP در برنامه بگذارید:

shell
npx -y mcp-remote https://mcp.binavira.ir/mcp --header "Authorization:${BINAVIRA_AUTH}"
# با متغیر محیطی: BINAVIRA_AUTH="Bearer YOUR_TOKEN"
بررسی اتصال

قبل از تنظیم برنامه، با این دستور مطمئن شوید توکن و سرور سالم هستند. باید فهرست ابزارها برگردد:

curl
curl -s https://mcp.binavira.ir/mcp \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

برنامه‌هایی که فقط ورود با OAuth دارند و جایی برای هدر ندارند، فعلاً نمی‌توانند وصل شوند.

چه کارهایی می‌شود کرد؟

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

  • یک تصویر از گربهٔ نارنجی روی پشت‌بام هنگام غروب با بینا ویرا بساز.
  • لوگوی ساده‌ای برای یک کافه به اسم «دارچین» بساز، نسبت 1:1.
  • این عکس را (لینک) ویرایش کن: پس‌زمینه را به باغ بهاری تغییر بده.
  • یک ویدیوی ۱۰ ثانیه‌ای از قایقی روی دریاچهٔ مه‌آلود بساز و وقتی آماده شد لینکش را بده.
  • قبل از ساختن، قیمت تولید تصویر و ویدیو را بگو و موجودی من را نشان بده.

اگر چند سرویس تصویر وصل کرده‌اید، اسم «بینا ویرا» را در درخواست بیاورید تا ابزار درست انتخاب شود.

ابزارهایی که در اختیار دارید

سرور MCP بینا ویرا چند ابزار به هوش مصنوعی برنامهٔ شما می‌دهد. لازم نیست اسم یا پارامترشان را بدانید؛ هوش مصنوعی از روی درخواست شما ابزار مناسب را انتخاب و صدا می‌زند.

  • ساخت و ویرایش تصویراز روی متن تصویر بسازید یا تصویر موجود را با یک دستور متنی تغییر دهید. هم نسخهٔ مستقیم (منتظر آماده شدن می‌ماند) و هم نسخهٔ صف (فوراً شناسه می‌دهد و بعد پیگیری می‌شود) در دسترس است.
  • ساخت ویدیواز متن یا از روی یک تصویر ویدیوی کوتاه بسازید. ساخت ویدیو چند دقیقه طول می‌کشد و هوش مصنوعی خودش وضعیت را پیگیری می‌کند.
  • تحلیل تصویردربارهٔ یک تصویر سؤال بپرسید: توضیح، خواندن متن داخل عکس و مقایسه.
  • متن به گفتارمتن را به فایل صوتی تبدیل کنید.
  • حساب و قیمتموجودی اعتبار و قیمت فعلی سرویس‌ها را ببینید.

تولید تصویر، ویدیو و تحلیل تصویر از اعتبار حساب شما کسر می‌شود. فهرست دقیق ابزارها و پارامترها را با درخواست tools/list از خود سرور می‌توانید بگیرید.

استفاده از کد

سرور MCP بینا ویرا پروتکل استاندارد MCP روی HTTP است (JSON-RPC). هر درخواست باید هدر Authorization: Bearer YOUR_TOKEN داشته باشد. پاسخ‌ها JSON ساده‌اند و نیازی به نگه داشتن نشست (session) نیست.

درخواست خام (curl)
curl
# فهرست ابزارها
curl -s https://mcp.binavira.ir/mcp \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# صدا زدن یک ابزار
curl -s https://mcp.binavira.ir/mcp \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"binavira_get_balance","arguments":{}}}'
Python (بدون SDK)
Python
import requests

URL = "https://mcp.binavira.ir/mcp"
HEADERS = {"Authorization": "Bearer YOUR_TOKEN"}

def call(name, arguments):
    body = {"jsonrpc": "2.0", "id": 1, "method": "tools/call",
            "params": {"name": name, "arguments": arguments}}
    r = requests.post(URL, json=body, headers=HEADERS, timeout=300)
    r.raise_for_status()
    result = r.json()["result"]
    text = result["content"][0]["text"]
    if result.get("isError"):
        raise RuntimeError(text)
    return text

print(call("binavira_generate_image", {"prompt": "An orange cat on a rooftop at sunset"}))
TypeScript (SDK رسمی MCP)

با دستور npm i @modelcontextprotocol/sdk نصب می‌شود.

TypeScript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const transport = new StreamableHTTPClientTransport(new URL("https://mcp.binavira.ir/mcp"), {
  requestInit: { headers: { Authorization: "Bearer YOUR_TOKEN" } },
});
const client = new Client({ name: "my-app", version: "1.0.0" });
await client.connect(transport);

const { tools } = await client.listTools();
console.log(tools.map((t) => t.name));

const result = await client.callTool({
  name: "binavira_generate_image",
  arguments: { prompt: "An orange cat on a rooftop at sunset" },
});
console.log(result.content);

نتیجهٔ هر ابزار در result.content[0].text است و اگر خطا باشد result.isError برابر true می‌شود و متن خطا همان‌جاست.

هزینه و محدودیت‌ها

  • قیمت‌ها همان تعرفهٔ بینا ویرا هستند. قیمت لحظه‌ای را با «قیمت سرویس‌ها» از چت بپرسید یا از صفحهٔ تعرفه ببینید.
  • هر کاربر هم‌زمان فقط یک تصویر در حال تولید می‌تواند داشته باشد.
  • ساخت تصویر ممکن است تا چند دقیقه طول بکشد؛ ساخت ویدیو هم چند دقیقه، و هوش مصنوعی خودش وضعیت را پیگیری می‌کند.
  • فرمت‌های مجاز تصویر ورودی PNG، JPG، JPEG، GIF، BMP و WEBP هستند، حداکثر ۵ مگابایت.
  • اغلب برنامه‌ها قبل از اجرای ابزارهای پولی از شما اجازه می‌پرسند؛ بهتر است این پرسش را خاموش نکنید.

پرسش‌های رایج

خطای ۴۰۱ می‌گیرم

توکن نادرست است یا بعد از «تغییر توکن» در حساب قدیمی شده. توکن جدید را از صفحهٔ توسعه‌دهندگان بردارید.

خطای ۴۰۳ یا «موجودی کافی نیست»

حساب را شارژ کنید. این خطا برای متن غیرمجاز هم می‌آید؛ توصیف را تغییر دهید.

خطای ۴۲۹

هر کاربر هم‌زمان فقط یک تصویر در حال تولید می‌تواند داشته باشد. چند ثانیه صبر کنید و دوباره بخواهید.

ویرایش تصویر با عکس خودم کار نمی‌کند

تصویر باید با یک آدرس عمومی https قابل دانلود باشد (حداکثر ۵ مگابایت). لینک مستقیم فایل را بدهید، نه صفحهٔ یک سایت.

ابزارها در برنامه دیده نمی‌شوند

بعد از افزودن سرور، برنامه را کامل ببندید و دوباره باز کنید. بخش وضعیت یا لاگ MCP همان برنامه را هم ببینید. برای اطمینان از سالم بودن سرور و توکن، دستور curl بخش «بررسی اتصال» را اجرا کنید.

برنامه‌ام فقط آدرس می‌پذیرد و جایی برای هدر ندارد

فعلاً ورود با OAuth نداریم و اتصال فقط با هدر Authorization است. اگر برنامه فقط OAuth دارد، فعلاً نمی‌تواند وصل شود.

مستندات APIبرای استفادهٔ برنامه‌نویسی مستقیم از سرویس‌ها، نمونه‌کد و پارامترها را ببین.