MCP Context Forge هو بوابة بروتوكول سياق النموذج (MCP) غنية بالميزات ومدفوعة بـ FastAPI مفتوحة المصدر من IBM، وهي توحد وتدمج الأدوات والموارد والمطالبات والخوادم والبوابات النظيرة، وتغلف أي واجهة برمجة تطبيقات REST كأداة متوافقة مع معايير MCP أو خادم افتراضي. يدعم المشروع عرض جميع الوظائف من خلال بروتوكولات نقل HTTP/JSON-RPC و WebSocket وأحداث إرسال الخادم (SSE) و stdio، ويوفر واجهة مستخدم إدارية تفاعلية غنية، معبأة في شكل حاوية، ويدعم أي قاعدة بيانات مدعومة من SQLAlchemy.
يعتمد المشروع تصميمًا معماريًا معياريًا:
┌─────────────────┐ ┌──────────────────┐
│ 🖥️ Admin UI │ │ 🔐 المصادقة والتخويل │
│ واجهة الإدارة │ │ JWT + Basic │
└─────────────────┘ └──────────────────┘
│ │
└────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 🚪 جوهر بوابة MCP │
│ اكتمل تهيئة البروتوكول Ping │
│ مدير الاتحاد │
│ بروتوكولات النقل HTTP WS SSE Stdio │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ طبقة الخدمة │
│ 🧰 خدمة الأدوات 📁 خدمة الموارد │
│ 📝 خدمة المطالبات 🧩 خدمة الخوادم │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ طبقة الثبات │
│ 💾 قاعدة البيانات SQLAlchemy │
│ ⚡ التخزين المؤقت Redis/Memory │
└───────────────────────────────┘
/health
وزخرفة مقاييس التأخير.# التكوين الأساسي للتطبيق
APP_NAME=MCP Gateway
HOST=0.0.0.0
PORT=4444
DATABASE_URL=sqlite:///./mcp.db
APP_ROOT_PATH=/gateway # بادئة مسار فرعي اختيارية
# مصادقة Basic (واجهة الإدارة و API)
BASIC_AUTH_USER=admin
BASIC_AUTH_PASSWORD=changeme
# تكوين JWT
JWT_SECRET_KEY=my-test-key
JWT_ALGORITHM=HS256
TOKEN_EXPIRY=10080 # دقائق
# التحكم في المصادقة
AUTH_REQUIRED=true
AUTH_ENCRYPTION_SECRET=my-test-salt
# وظيفة الاتحاد
FEDERATION_ENABLED=true
FEDERATION_DISCOVERY=false
FEDERATION_PEERS=["http://peer1:4444","http://peer2:4444"]
FEDERATION_TIMEOUT=30
FEDERATION_SYNC_INTERVAL=300
docker run -d --name mcpgateway \
-p 4444:4444 \
-e HOST=0.0.0.0 \
-e JWT_SECRET_KEY=my-secret-key \
-e BASIC_AUTH_USER=admin \
-e BASIC_AUTH_PASSWORD=changeme \
-e AUTH_REQUIRED=true \
-e DATABASE_URL=sqlite:///./mcp.db \
ghcr.io/ibm/mcp-context-forge:latest
# إنشاء بيئة افتراضية وتثبيت التبعيات
make venv install serve
# أو التثبيت يدويًا
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
uvicorn mcpgateway.main:app --host 0.0.0.0 --port 4444
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username admin --exp 10080 --secret my-test-key)
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"protocol_version":"2025-03-26",
"capabilities":{},
"client_info":{"name":"MyClient","version":"1.0.0"}
}' \
http://localhost:4444/protocol/initialize
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"clock_tool",
"url":"http://localhost:9000/rpc",
"description":"Returns current time",
"input_schema":{
"type":"object",
"properties":{"timezone":{"type":"string"}},
"required":[]
}
}' \
http://localhost:4444/tools
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"greet",
"template":"Hello, {{ user }}!",
"argument_schema":{
"type":"object",
"properties":{"user":{"type":"string"}},
"required":["user"]
}
}' \
http://localhost:4444/prompts
يوفر المشروع دعمًا كاملاً لنشر IBM Cloud Code Engine:
IBMCLOUD_REGION=us-south
IBMCLOUD_RESOURCE_GROUP=default
IBMCLOUD_PROJECT=my-codeengine-project
IBMCLOUD_CODE_ENGINE_APP=mcpgateway
IBMCLOUD_IMAGE_NAME=us.icr.io/myspace/mcpgateway:latest
IBMCLOUD_API_KEY=your_api_key_here
make ibmcloud-check-env # التحقق من متغيرات البيئة
make ibmcloud-cli-install # تثبيت IBM Cloud CLI
make ibmcloud-login # تسجيل الدخول إلى IBM Cloud
make ibmcloud-ce-login # تحديد مشروع Code Engine
make ibmcloud-tag # وضع علامة على صورة الحاوية
make ibmcloud-push # الدفع إلى IBM Container Registry
make ibmcloud-deploy # النشر إلى Code Engine
mcpgateway/
├── admin.py # مسارات FastAPI ووحدة التحكم في واجهة الإدارة
├── cache/
│ └── resource_cache.py # ذاكرة التخزين المؤقت LRU+TTL للموارد
├── config.py # محمل إعدادات Pydantic
├── db.py # نماذج SQLAlchemy ORM وإعدادات قاعدة البيانات
├── federation/
│ ├── discovery.py # اكتشاف البوابة النظيرة
│ ├── forward.py # منطق إعادة توجيه RPC
│ └── manager.py # تنسيق الاتحاد وفحوصات السلامة
├── handlers/
│ └── sampling.py # معالج طلبات أخذ العينات المتدفقة MCP
├── services/
│ ├── completion_service.py # منطق إكمال معلمات المطالبات والموارد
│ ├── gateway_service.py # تسجيل وإدارة البوابة النظيرة
│ ├── prompt_service.py # CRUD قالب المطالبة والعرض
│ ├── resource_service.py # تسجيل الموارد واسترجاعها والاشتراك فيها
│ ├── server_service.py # تسجيل الخادم ومراقبة السلامة
│ └── tool_service.py # تسجيل الأدوات واستدعائها ومقاييسها
├── transports/
│ ├── sse_transport.py # نقل أحداث إرسال الخادم
│ ├── stdio_transport.py # نقل stdio
│ └── websocket_transport.py # نقل WebSocket
└── utils/
├── create_jwt_token.py # أداة إنشاء وفحص JWT
└── verify_credentials.py # تبعية مصادقة FastAPI
# تثبيت تبعيات التطوير
make install-dev
# تشغيل فحص التعليمات البرمجية
make lint
# تشغيل الاختبارات
make test
# تشغيل اختبار التغطية
make coverage
يدمج المشروع العديد من أدوات جودة التعليمات البرمجية:
MCP Context Forge هو حل بوابة بروتوكول سياق نموذج كامل الميزات وجاهز للإنتاج، وهو مناسب بشكل خاص لدمج الأدوات وإدارة تطبيقات LLM على مستوى المؤسسات. لا يحقق فقط الوظائف الكاملة لبروتوكول MCP، ولكنه يوفر أيضًا وظائف توسيع غنية، مثل اكتشاف الاتحاد، وتحويل البروتوكول، والخدمات الافتراضية، وما إلى ذلك، وهو مكون البنية التحتية المثالي لبناء نظام بيئي معقد لتطبيقات الذكاء الاصطناعي.