
کدام ایجنت کدنویسی با API ایرانی کار میکند؟ Kilo Code و Cline و Cursor
مقایسهٔ عملی Kilo Code و Cline و Cursor برای اتصال به API هوش مصنوعی از ایران؛ کدام کار میکند، چرا Cline توکن زیادی مصرف میکند و کدام مدل را انتخاب کنیم.
۲ دقیقه مطالعه
پروتکل MCP به زبان ساده؛ میزبان، کلاینت و سرور چه میکنند، کدام ابزارها از آن پشتیبانی میکنند و چطور با مدلهای هیبانا یک سرور MCP را به کار بگیرید.

مدل زبانی بهتنهایی فقط متن میخواند و متن مینویسد؛ نه فایلهای پروژهٔ شما را میبیند، نه به دیتابیس فروشگاهتان دسترسی دارد. MCP (مخفف Model Context Protocol) یک استاندارد باز است که همین فاصله را پر میکند: یک بار یک «سرور MCP» برای ابزار یا دادهتان میسازید (یا یک سرور آماده نصب میکنید) و هر برنامهٔ هوش مصنوعی که MCP را میفهمد، میتواند از آن استفاده کند. در این مطلب میبینیم MCP دقیقاً چیست، چه بخشهایی دارد، کدام ابزارها از آن پشتیبانی میکنند و چطور با مدلهایی که از طریق هیبانا فراخوانی میکنید کار میکند.
شرکت Anthropic در آذر ۱۴۰۳ (نوامبر ۲۰۲۴) MCP را بهصورت متنباز منتشر کرد و آن را «استانداردی برای اتصال دستیارهای هوش مصنوعی به سیستمهایی که داده در آنها است» معرفی کرد؛ یعنی مخزنهای محتوا، ابزارهای کسبوکار و محیطهای توسعه.
پیش از MCP، هر برنامهای که میخواست مدل را به گیتهاب، دیتابیس یا سیستم فایل وصل کند، اتصال خودش را جداگانه مینوشت. با MCP این کار یک بار انجام میشود: سازندهٔ ابزار یک سرور MCP مینویسد و هر برنامهٔ سازگار، بدون کد اضافه، از آن استفاده میکند.
نکتهٔ مهمی که در مستندات رسمی MCP هم آمده، این است که این پروتکل فقط به تبادل «زمینه» (context) میپردازد و تعیین نمیکند برنامه از کدام مدل زبانی استفاده کند. به همین دلیل MCP به مدل یا شرکت خاصی گره نخورده است.
معماری MCP سه نقش دارد:
| نقش | چه کسی است | چه میکند |
|---|---|---|
| میزبان (Host) | برنامهٔ هوش مصنوعی، مثل یک ایجنت کدنویسی در VS Code | گفتوگو با مدل را مدیریت میکند و کلاینتها را میسازد |
| کلاینت (Client) | بخشی داخل میزبان | برای هر سرور یک اتصال اختصاصی نگه میدارد |
| سرور (Server) | برنامهای که ابزار یا داده را عرضه میکند | مثلاً به فایلها، دیتابیس یا یک سرویس آنلاین دسترسی میدهد |
پیامها در قالب JSON-RPC 2.0 رد و بدل میشوند و دو روش انتقال تعریف شده است:
هر سرور میتواند سه نوع امکان داشته باشد:
کلاینت اول با درخواست tools/list میپرسد سرور چه ابزارهایی دارد؛ هر ابزار یک نام، یک توضیح و یک JSON Schema برای ورودیهایش دارد. هر وقت مدل تصمیم بگیرد از ابزاری استفاده کند، کلاینت آن را با tools/call اجرا میکند و نتیجه را به گفتوگو برمیگرداند.
اگر با فراخوانی تابع (Function Calling) آشنا باشید، این روند برایتان آشناست. فرقشان در لایه است:
tools میفرستید و مدل بهجای متن، درخواست اجرای یکی از آنها را برمیگرداند. اجرای تابع با کد خود شماست.پس MCP جای Function Calling را نمیگیرد؛ معمولاً روی آن سوار میشود. میزبان ابزارهای سرور MCP را به شکلی که مدل میفهمد به آن معرفی میکند و وقتی مدل ابزاری خواست، آن را از طریق MCP اجرا میکند. نتیجهٔ عملی برای شما این است که مدلی که برای کار با MCP انتخاب میکنید باید در فراخوانی ابزار خوب باشد.
کدام مدلهای هیبانا فراخوانی ابزار دارند؟
در لیست مدلها کنار مدلهایی که از Function Calling پشتیبانی میکنند برچسب «فراخوانی ابزار» آمده است. در زمان نگارش این مطلب، مدلهایی از جمله gpt-5-nano، claude-haiku-4-5، deepseek-v4-flash و مدل داخلی gpt-oss این قابلیت را دارند. مدلهای امبدینگ مثل bge-m3 آن را ندارند.
برای اینکه ببینید MCP با هر API سازگار با OpenAI کار میکند، یک سرور MCP کوچک و یک برنامهٔ میزبان ساده با پایتون مینویسیم. سرور یک ابزار دارد که وضعیت سفارش را برمیگرداند و میزبان، مدل را از طریق هیبانا فراخوانی میکند. هر دو با کتابخانهٔ رسمی MCP برای پایتون (نسخهٔ ۲) و کتابخانهٔ openai نوشته شدهاند:
pip install mcp openaiفایل server.py؛ دادهها نمونهاند و در عمل اینجا به دیتابیس یا API فروشگاهتان وصل میشوید:
from mcp.server import MCPServer mcp = MCPServer("shop") # دادهی نمونه؛ در عمل اینجا به دیتابیس یا API فروشگاه وصل میشویدORDERS = { "1001": "ارسال شده؛ کد رهگیری 12345", "1002": "در حال آمادهسازی",} @mcp.tool()def order_status(order_id: str) -> str: """وضعیت یک سفارش را با شمارهی سفارش برمیگرداند.""" return ORDERS.get(order_id, "سفارشی با این شماره پیدا نشد") if __name__ == "__main__": mcp.run() # پیشفرض: stdioفایل agent.py؛ سرور را با stdio اجرا میکند، ابزارهایش را میگیرد و به شکل tools به مدل میدهد. بهجای YOUR_API_KEY کلید API خودتان را بگذارید:
import asyncioimport json from mcp import Client, StdioServerParametersfrom openai import OpenAI llm = OpenAI( base_url="https://api-ai.hibanacloud.ir/v1", api_key="YOUR_API_KEY",)MODEL = "gpt-5-nano" async def main(): server = StdioServerParameters(command="python", args=["server.py"]) async with Client(server) as mcp_client: # ۱. ابزارهای سرور MCP را بگیر و به قالب tools در API تبدیل کن listed = await mcp_client.list_tools() tools = [ { "type": "function", "function": { "name": t.name, "description": t.description, "parameters": t.input_schema, }, } for t in listed.tools ] messages = [{"role": "user", "content": "سفارش 1001 من کجاست؟"}] reply = llm.chat.completions.create( model=MODEL, messages=messages, tools=tools ).choices[0].message # ۲. اگر مدل ابزاری خواست، آن را از طریق MCP اجرا کن if reply.tool_calls: messages.append(reply) for call in reply.tool_calls: args = json.loads(call.function.arguments) print("tool call:", call.function.name, args) result = await mcp_client.call_tool(call.function.name, args) text = "".join(c.text for c in result.content if c.type == "text") messages.append( {"role": "tool", "tool_call_id": call.id, "content": text} ) # ۳. نتیجه را به مدل برگردان تا پاسخ نهایی را بنویسد reply = llm.chat.completions.create( model=MODEL, messages=messages, tools=tools ).choices[0].message print("answer:", reply.content) asyncio.run(main())با python agent.py خروجیای شبیه این میگیرید. این چند خط اول خروجی یکی از اجراهای ما است؛ متن پاسخ مدل در هر اجرا کمی فرق میکند و معمولاً یکی دو جملهٔ دیگر هم دارد:
tool call: order_status {'order_id': '1001'}answer: وضعیت سفارش 1001:- وضعیت: ارسال شده- کد رهگیری: 12345دقت کنید که مدل خودش شمارهٔ سفارش را از جملهٔ کاربر بیرون کشید و ابزار درست را فراخوانی کرد. همین کد را با MODEL = "claude-haiku-4-5" هم اجرا کردیم و بدون هیچ تغییر دیگری همان ابزار با همان آرگومان فراخوانی شد. این همان چیزی است که MCP وعده میدهد: سرور یک بار نوشته میشود و مدل و برنامه قابل تعویضاند.
بیشتر کاربران MCP را از طریق ایجنتهای کدنویسی تجربه میکنند؛ یعنی لازم نیست میزبان را خودتان بنویسید. ایجنت میزبان است، مدل را از API هیبانا میگیرد و سرورهای MCP را خودش اجرا میکند.
Cline: طبق مستندات Cline، در پنل Cline روی آیکون MCP Servers در نوار بالا بزنید، به زبانهٔ Configure بروید و Configure MCP Servers را انتخاب کنید. یک فایل JSON باز میشود که سرورها را زیر کلید mcpServers تعریف میکند. برای نمونه، سرور رسمی فایلسیستم که فقط به پوشهای که مشخص میکنید دسترسی دارد:
{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/path/to/your/project" ], "disabled": false, "autoApprove": [] } }}برای سرور راه دور بهجای command و args از url استفاده میشود. اتصال خود Cline به هیبانا در راهنمای Cline آمده است.
Kilo Code: طبق مستندات Kilo Code، در نسخههای جدید سرورها از تنظیمات افزونه، زبانهٔ Agent Behaviour و بخش MCP Servers مدیریت میشوند. شکل فایل تنظیمات در نسخههای مختلف Kilo Code فرق کرده است، پس مستندات نسخهای را که نصب کردهاید ببینید. اتصال آن به هیبانا در راهنمای Kilo Code است.
هر سرور MCP که اضافه میکنید، معمولاً توضیح ابزارهایش را به درخواستهای مدل اضافه میکند؛ یعنی توکن ورودی بیشتر در هر درخواست. سرورهایی را که لازم ندارید غیرفعال کنید. دربارهٔ اثر این موضوع روی هزینه، توکن و هزینهٔ API را بخوانید.
autoApprove در Cline ابزارهایی را مشخص میکند که بدون پرسیدن از شما اجرا میشوند. ابزارهایی را که فایل مینویسند یا پاک میکنند، در آن نگذارید.MCP یک زبان مشترک بین برنامههای هوش مصنوعی و ابزارهاست: سرور یک بار نوشته میشود و هر میزبان سازگاری، با هر مدلی که فراخوانی ابزار را بلد است، از آن استفاده میکند. برای شروع، کلید API بگیرید، یک ایجنت مثل Cline یا Kilo Code را به هیبانا وصل کنید و یک سرور ساده مثل فایلسیستم را به آن اضافه کنید. اگر هنوز بین ایجنتها مردد هستید، مقایسهٔ Kilo Code، Cline و Cursor را بخوانید و برای ساخت سرور خودتان از مستندات Function Calling و نمونهٔ بالا شروع کنید.

مقایسهٔ عملی Kilo Code و Cline و Cursor برای اتصال به API هوش مصنوعی از ایران؛ کدام کار میکند، چرا Cline توکن زیادی مصرف میکند و کدام مدل را انتخاب کنیم.
۲ دقیقه مطالعه

راهنمای ساخت چتبات پشتیبانی برای سایت و بازوی پیامرسان بله با API هیبانا و پایتون؛ از پیام سیستمی و حافظهٔ گفتوگو تا کنترل هزینه و امنیت کلید.
۴ دقیقه مطالعه

راهنمای عملی کتابخانهٔ رسمی OpenAI برای .NET با API هیبانا؛ نصب، چت، گفتوگوی چندمرحلهای، استریم، مدیریت خطا و ASP.NET Core با کد آزمودهشده.
۵ دقیقه مطالعه
GPT، Claude، Gemini و دهها مدل دیگر، با پرداخت ریالی و یک API سازگار با OpenAI.