MCP بینا ویرا چیست؟
MCP (Model Context Protocol) یک پروتکل استاندارد است که به برنامههای هوش مصنوعی اجازه میدهد از ابزارهای بیرونی استفاده کنند. ما یک سرور MCP ساختهایم که سرویسهای بینا ویرا (ساخت و ویرایش تصویر، ساخت ویدیو، تحلیل تصویر و تبدیل متن به صدا) را بهشکل ابزار در اختیار هر برنامهٔ سازگار میگذارد. هوش مصنوعی در برنامهٔ شما خودش تصمیم میگیرد کدام ابزار را صدا بزند. هزینهٔ هر تولید مثل استفادهٔ عادی از اعتبار حساب شما کسر میشود.
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فعلاً ندارد
اتصال در سه قدم
- وارد حساب بینا ویرا شوید و توکن را از صفحهٔ توسعهدهندگان کپی کنید.
- در برنامهٔ خودتان یک سرور MCP از نوع HTTP (Streamable HTTP) اضافه کنید: آدرس را بالا و هدر
Authorization: Bearer YOUR_TOKENرا بگذارید. - برنامه را دوباره باز کنید و از هوش مصنوعی بخواهید با بینا ویرا کاری انجام دهد.
توکن مثل رمز عبور است؛ در جای عمومی نگذارید. اگر لو رفت، از همان صفحه توکن جدید بسازید تا قبلی از کار بیفتد.
نمونهٔ تنظیمات
بیشتر برنامهها یک فایل تنظیم یا فرم برای سرورهای MCP دارند. شکل رایج این است؛ فقط نام فیلدها در برنامههای مختلف کمی فرق میکند (مثلاً url، serverUrl یا httpUrl، و گاهی "type": "http"). مستندات برنامهٔ خودتان را برای «remote MCP server با هدر» ببینید؛ مقدارها همینهاست.
{
"mcpServers": {
"binavira": {
"url": "https://mcp.binavira.ir/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}اگر برنامه فقط ابزارهای محلی (stdio) را میپذیرد
با پل mcp-remote میشود سرور HTTP را مثل یک دستور محلی استفاده کرد (به Node.js نیاز دارد). این دستور را بهعنوان command سرور MCP در برنامه بگذارید:
npx -y mcp-remote https://mcp.binavira.ir/mcp --header "Authorization:${BINAVIRA_AUTH}"
# با متغیر محیطی: BINAVIRA_AUTH="Bearer YOUR_TOKEN"بررسی اتصال
قبل از تنظیم برنامه، با این دستور مطمئن شوید توکن و سرور سالم هستند. باید فهرست ابزارها برگردد:
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.
- این عکس را (لینک) ویرایش کن: پسزمینه را به باغ بهاری تغییر بده.
- یک ویدیوی ۱۰ ثانیهای از قایقی روی دریاچهٔ مهآلود بساز و وقتی آماده شد لینکش را بده.
- قبل از ساختن، قیمت تولید تصویر و ویدیو را بگو و موجودی من را نشان بده.
اگر چند سرویس تصویر وصل کردهاید، اسم «بینا ویرا» را در درخواست بیاورید تا ابزار درست انتخاب شود.
مرجع ابزارها
هر ابزار یک ورودی ساختاریافته دارد. در برنامههای چت لازم نیست اینها را بدانید؛ هوش مصنوعی خودش پر میکند. اگر از کد استفاده میکنید، نام و نوع پارامترها را از همین جدول بردارید.
binavira_generate_imageهزینه داردساخت تصویر از متن
- توصیف تصویر، حداکثر ۵۰۰۰ کاراکتر.
promptstringالزامی - نسبت تصویر خروجی. پیشفرض 1:1. مقدارهای مجاز: 1:1، 3:4، 4:3، 16:9، 9:16.
aspect_ratiostringاختیاری
binavira_edit_imageهزینه داردویرایش یک یا دو تصویر با دستور متنی
- آدرس https یک یا دو تصویر مرجع (حداکثر ۵ مگابایت هر کدام).
image_urlsstring[]الزامی - دستور ویرایش، حداکثر ۵۰۰۰ کاراکتر.
promptstringالزامی - نسبت تصویر خروجی. پیشفرض 1:1. مقدارهای مجاز: 1:1، 3:4، 4:3، 16:9، 9:16.
aspect_ratiostringاختیاری
binavira_generate_videoهزینه داردساخت ویدیو از متن؛ شناسهٔ ویدیو میدهد
- توصیف ویدیو، حداکثر ۵۰۰۰ کاراکتر.
promptstringالزامی - مدت ویدیو به ثانیه. پیشفرض ۱۰.
secondsintegerاختیاری - 16:9 افقی یا 9:16 عمودی. پیشفرض 16:9. مقدارهای مجاز: 16:9، 9:16.
aspect_ratiostringاختیاری
binavira_image_to_videoهزینه داردساخت ویدیو از روی یک تصویر
- آدرس https تصویر مرجع (حداکثر ۵ مگابایت).
image_urlstringالزامی - توصیف حرکت یا تغییرات، حداکثر ۵۰۰۰ کاراکتر.
promptstringالزامی - مدت ویدیو به ثانیه. پیشفرض ۱۰.
secondsintegerاختیاری - 16:9 یا 9:16. پیشفرض 16:9. مقدارهای مجاز: 16:9، 9:16.
aspect_ratiostringاختیاری
binavira_check_videoرایگانپیگیری وضعیت ویدیو و گرفتن لینک نهایی
- شناسهٔ ویدیو از مرحلهٔ ساخت.
video_idstringالزامی
binavira_analyze_imageهزینه داردتوضیح تصویر، خواندن متن داخل عکس، پاسخ به سؤال
- آدرس https تصویر (حداکثر ۵ مگابایت).
image_urlstringالزامی - سؤال یا دستور دربارهٔ تصویر، حداکثر ۵۰۰۰ کاراکتر.
questionstringالزامی
binavira_text_to_speechطبق تعرفهتبدیل متن به فایل صوتی
- متن، حداکثر ۱۰۰۰ کاراکتر.
textstringالزامی - صدای گوینده. پیشفرض female. مقدارهای مجاز: female، male.
voicestringاختیاری
binavira_get_balanceرایگانموجودی حساب
پارامتری ندارد.
binavira_get_pricesرایگانقیمت فعلی سرویسها
پارامتری ندارد.
استفاده از کد
سرور MCP بینا ویرا پروتکل استاندارد MCP روی HTTP است (JSON-RPC). هر درخواست باید هدر Authorization: Bearer YOUR_TOKEN داشته باشد. پاسخها JSON سادهاند و نیازی به نگه داشتن نشست (session) نیست.
درخواست خام (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)
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 نصب میشود.
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 دارد، فعلاً نمیتواند وصل شود.