الصورة الرمزية يوفراج شارما

تم التحديث! (سبتمبر 2025) تم تحديث هذا المنشور بأحدث ميزات Gradio MCP بما في ذلك الموارد والمطالبات والمصادقة المحسنة وغير ذلك الكثير.

Gradio هي مكتبة Python يستخدمها أكثر من مليون مطور كل شهر لبناء واجهات لنماذج التعلم الآلي. بالإضافة إلى مجرد إنشاء واجهات المستخدم، يكشف Gradio أيضًا عن إمكانات واجهة برمجة التطبيقات و- الآن! – يمكن تشغيل تطبيقات Gradio على خوادم بروتوكول السياق النموذجي (MCP) لـ LLMs. هذا يعني أن تطبيق Gradio الخاص بك، سواء كان منشئ صور أو حاسبة ضرائب أو أي شيء آخر تمامًا، يمكن أن يطلق عليه LLM كأداة.

سيوضح لك هذا الدليل كيفية استخدام Gradio لإنشاء خادم MCP في بضعة أسطر فقط من لغة Python.

المتطلبات الأساسية

إذا لم يكن مثبتًا بالفعل، فيرجى تثبيت Gradio مع MCP الإضافي:

pip install "gradio[mcp]"

سيؤدي هذا إلى تثبيت التبعيات الضرورية، بما في ذلك ملف mcp طَرد. ستحتاج أيضًا إلى تطبيق LLM يدعم استدعاء الأدوات باستخدام بروتوكول MCP، مثل Claude Desktop أو Cursor أو Cline (والمعروفة باسم “عملاء MCP”).

لماذا بناء خادم MCP؟

يعد خادم MCP طريقة موحدة لكشف الأدوات بحيث يمكن استخدامها بواسطة LLMs. يمكن لخادم MCP أن يزود طلاب LLM بجميع أنواع الإمكانات الإضافية، مثل القدرة على إنشاء الصور أو تحريرها، أو تركيب الصوت، أو إجراء حسابات محددة مثل أرقام التحليل الأولية.

يسهّل Gradio إنشاء خوادم MCP هذه، مما يحول أي وظيفة Python إلى أداة يمكن أن يستخدمها طلاب LLM.

مثال: عد الحروف في الكلمة

من المعروف أن حاملي شهادة الماجستير في القانون ليسوا جيدين في حساب عدد الأحرف في الكلمة (على سبيل المثال، عدد حروف “r” في كلمة “الفراولة”). ولكن ماذا لو زودناهم بأداة للمساعدة؟ لنبدأ بكتابة تطبيق Gradio بسيط يقوم بإحصاء عدد الحروف في كلمة أو عبارة:

import gradio as gr

def letter_counter(word, letter):
    """Count the occurrences of a specific letter in a word.
    
    Args:
        word: The word or phrase to analyze
        letter: The letter to count occurrences of
        
    Returns:
        The number of times the letter appears in the word
    """
    return word.lower().count(letter.lower())

demo = gr.Interface(
    fn=letter_counter,
    inputs=["text", "text"],
    outputs="number",
    title="Letter Counter",
    description="Count how many times a letter appears in a word"
)

demo.launch(mcp_server=True)

لاحظ أننا وضعنا mcp_server=True في .launch(). هذا هو كل ما هو مطلوب لتطبيق Gradio الخاص بك ليكون بمثابة خادم MCP! الآن، عند تشغيل هذا التطبيق، سوف:

  1. ابدأ تشغيل واجهة ويب Gradio العادية
  2. بدء تشغيل خادم MCP
  3. اطبع عنوان URL لخادم MCP في وحدة التحكم

سيكون خادم MCP متاحًا على:

http://your-server:port/gradio_api/mcp/sse

يقوم Gradio تلقائيًا بتحويل ملف letter_counter تعمل في أداة MCP التي يمكن استخدامها بواسطة LLMs. يتم استخدام مستندات الوظيفة لإنشاء وصف الأداة ومعلماتها.

كل ما عليك فعله هو إضافة نقطة نهاية عنوان URL هذه إلى عميل MCP (على سبيل المثال، Cursor أو Cline أو Tiny Agents)، وهو ما يعني عادةً لصق هذا التكوين في الإعدادات:

{
  "mcpServers": {
    "gradio": {
      "url": "http://your-server:port/gradio_api/mcp/sse"
    }
  }
}

بعض عملاء MCP، ولا سيما Claude Desktop، لا يدعمون حتى الآن خوادم MCP المستندة إلى SSE. في تلك الحالات، يمكنك استخدام أداة مثل mcp-remote. قم أولاً بتثبيت Node.js. ثم قم بإضافة ما يلي إلى تكوين MCP Client الخاص بك:

{
  "mcpServers": {
    "gradio": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://your-server:port/gradio_api/mcp/sse"
      ]
    }
  }
}

(بالمناسبة، يمكنك العثور على التكوين الدقيق للنسخ واللصق بالانتقال إلى رابط “عرض واجهة برمجة التطبيقات” في تذييل تطبيق Gradio الخاص بك، ثم النقر فوق “MCP”).

التحسينات الرئيسية الأخيرة

أضاف Gradio مؤخرًا العديد من الميزات القوية إلى خوادم MCP. للحصول على نظرة عامة تفصيلية على خمسة تحسينات رئيسية بما في ذلك دعم الملفات المحلية السلس، وإشعارات التقدم في الوقت الفعلي، وتحويل OpenAPI إلى MCP، والمصادقة المحسنة، وأوصاف الأدوات القابلة للتخصيص، راجع منشور المدونة المخصص لدينا: خمسة تحسينات كبيرة على خوادم Gradio MCP.

ميزات MCP المتقدمة

موارد ومطالبات MCP

بالإضافة إلى الأدوات، يدعم MCP الموارد (لكشف البيانات) والمطالبات (لتحديد القوالب القابلة لإعادة الاستخدام). توفر Gradio أدوات تزيين لإنشاء خوادم MCP بكل الإمكانات الثلاث بسهولة. يمكنك قراءة المزيد في دليلنا المخصص هنا:

import gradio as gr

@gr.mcp.tool()  
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

@gr.mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

@gr.mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
    """Generate a greeting prompt"""
    styles = {
        "friendly": "Please write a warm, friendly greeting",
        "formal": "Please write a formal, professional greeting", 
        "casual": "Please write a casual, relaxed greeting",
    }
    return f"{styles.get(style, styles['friendly'])} for someone named {name}."

demo = gr.TabbedInterface(
    [
        gr.Interface(add, [gr.Number(value=1), gr.Number(value=2)], gr.Number()),
        gr.Interface(get_greeting, gr.Textbox("Abubakar"), gr.Textbox()),
        gr.Interface(greet_user, [gr.Textbox("Abubakar"), gr.Dropdown(choices=["friendly", "formal", "casual"])], gr.Textbox()),
    ],
    ["Add", "Get Greeting", "Greet User"]
)

demo.launch(mcp_server=True)

وظائف MCP فقط

يتيح لك Gradio أيضًا إنشاء وظائف تظهر فقط في خادم MCP (وليس في واجهة المستخدم) باستخدام gr.api():

import gradio as gr

def slice_list(lst: list, start: int, end: int) -> list:
    """
    A tool that slices a list given a start and end index.
    Args:
        lst: The list to slice.
        start: The start index.
        end: The end index.
    Returns:
        The sliced list.
    """
    return lst[start:end]

with gr.Blocks() as demo:
    gr.Markdown("This app includes MCP-only tools not visible in the UI.")
    gr.api(slice_list)

demo.launch(mcp_server=True)

الميزات الرئيسية لتكامل Gradio <> MCP

  1. تحويل الأداة: يتم تحويل كل نقطة نهاية لواجهة برمجة التطبيقات في تطبيق Gradio تلقائيًا إلى أداة MCP ذات الاسم والوصف ومخطط الإدخال المطابق. لعرض الأدوات والمخططات، قم بزيارة http://your-server:port/gradio_api/mcp/schema أو انتقل إلى الرابط “عرض واجهة برمجة التطبيقات” الموجود في تذييل تطبيق Gradio، ثم انقر فوق “MCP”.

    يسمح Gradio للمطورين بإنشاء واجهات متطورة باستخدام كود Python البسيط الذي يوفر معالجة ديناميكية لواجهة المستخدم للحصول على تعليقات مرئية فورية.

  2. دعم متغير البيئة. هناك طريقتان لتمكين وظيفة خادم MCP:

    • باستخدام mcp_server المعلمة كما هو موضح أعلاه:

      demo.launch(mcp_server=True)
      
    • استخدام متغيرات البيئة:

      export GRADIO_MCP_SERVER=True
      
  3. التعامل مع الملفات: يقوم الخادم تلقائيًا بمعالجة تحويلات بيانات الملف، بما في ذلك:

    • تحويل السلاسل المشفرة بـ base64 إلى بيانات ملف
    • معالجة ملفات الصور وإعادتها بالتنسيق الصحيح
    • إدارة تخزين الملفات المؤقتة
    • خادم MCP لتحميل الملفات تلقائيًا لدعم الملفات المحلية بسلاسة

    أدت تحديثات Gradio الأخيرة إلى تحسين قدرات معالجة الصور باستخدام ميزات مثل التكبير/التصغير والتحريك بنمط Photoshop والتحكم الكامل في الشفافية.

  4. تحليلات الأداء: يقوم Gradio تلقائيًا بتتبع وعرض مقاييس الأداء لجميع أدوات MCP ونقاط نهاية API الخاصة بك. اعرض معدلات النجاح والنسب المئوية لوقت الاستجابة وأعداد الطلبات مباشرةً في صفحة “عرض واجهة برمجة التطبيقات” لمساعدتك أنت والمستخدمين في اختيار الأدوات الأكثر موثوقية والأسرع. يتم ترميز المقاييس بالألوان: الأخضر للنجاح بنسبة 100%، والأحمر للنجاح بنسبة 0%، والبرتقالي للمعدلات المتوسطة.

  5. خوادم MCP المستضافة على √Spaces: يمكنك نشر تطبيق Gradio الخاص بك مجانًا على Hugging Face Spaces، مما سيسمح لك بالحصول على خادم MCP مستضاف مجانًا. يعد Gradio جزءًا من نظام بيئي أوسع يتضمن مكتبات Python وJavaScript لإنشاء تطبيقات التعلم الآلي أو الاستعلام عنها برمجيًا.

إليك مثال على هذه المساحة: https://huggingface.co/spaces/abidlabs/mcp-tools. لاحظ أنه يمكنك إضافة هذا التكوين إلى MCP Client الخاص بك لبدء استخدام الأدوات من هذه المساحة على الفور:

{
  "mcpServers": {
    "gradio": {
      "url": "https://abidlabs-mcp-tools.hf.space/gradio_api/mcp/sse"
    }
  }
}

مصادقة المساحات الخاصة

يمكنك أيضًا استخدام Huggingface Spaces الخاصة كخوادم MCP من خلال توفير المصادقة:

{
  "mcpServers": {
    "gradio": {
      "url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
      "headers": {
        "Authorization": "Bearer <YOUR-HUGGING-FACE-TOKEN>"
      }
    }
  }
}

خاتمة

باستخدام Gradio لإنشاء خادم MCP الخاص بك، يمكنك بسهولة إضافة العديد من الأنواع المختلفة من الوظائف المخصصة إلى LLM الخاص بك. بفضل التحسينات الأخيرة بما في ذلك الموارد والمطالبات والمصادقة الأفضل ومعالجة الملفات ومقاييس الأداء، توفر Gradio نظامًا أساسيًا شاملاً لبناء خوادم MCP المتطورة.

مزيد من القراءة

إذا كنت تريد التعمق أكثر، فإليك بعض المقالات التي نوصي بها:

شاركها.
اترك تعليقاً