تخطَّ إلى المحتوى

لوحات معلومات

لوحة اتجاهات النزوح حسب بلد المنشأ (Refugee Trend Dashboard)

لوحة معلومات تفاعلية تعرض مسار أعداد اللاجئين لخمس دول منشأ (سوريا، أوكرانيا، أفغانستان، السودان، جنوب السودان) عبر 11 عاماً، ببيانات ومواصفات رسم مولّدة حرفياً من أداة `generate_chart` (بصيغة Chart.js).

إعداد: منظمة العون الإنساني المشترك

generate_chartrefugee_populationcompare_countries

لوحة معلومات تفاعلية تعرض مسار أعداد اللاجئين لخمس دول منشأ (سوريا، أوكرانيا، أفغانستان، السودان، جنوب السودان) عبر 11 عاماً، ببيانات ومواصفات رسم مولّدة حرفياً من أداة `generate_chart` (بصيغة Chart.js).

القيمة

تُظهر بصرياً القفزات المفاجئة (أوكرانيا 2022: من 27 ألفاً إلى 5.68M) مقابل الأزمات المتصاعدة (السودان: من 0.83M إلى 2.82M) — بلا معالجة يدوية للأرقام.

كيف تعمل؟

صفحة ويب خفيفة (بلا بناء) تستهلك مخرجات أداة `generate_chart(format:"chartjs", role:"origin")` كما هي وتمرّرها مباشرة إلى Chart.js v4. البيانات في هذا الديمو مضمّنة حرفياً من استدعاء حقيقي للخادم بتاريخ 2025، ويمكن جعلها لحظية عبر وسيط خادمي (proxy) يستدعي الأداة عند كل طلب.

مثال تقني

import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def fetch_chart_spec():
    params = StdioServerParameters(command="node", args=["dist/index.js"])
    async with stdio_client(params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            # مواصفة رسم جاهزة لـ Chart.js — أرقام UNHCR الحقيقية
            return await session.call_tool("generate_chart", {
                "countries": ["Syria", "Ukraine", "Afghanistan", "Sudan", "South Sudan"],
                "role": "origin",
                "metric": "refugees",
                "format": "chartjs",
                "year_from": 2015
            })

spec = asyncio.run(fetch_chart_spec())
# spec["spec"] يُمرَّر مباشرةً إلى new Chart(canvas, spec)