إنتقل إلى المحتوى الرئيسي

الإعدادات

كائن الإعدادات الأساسي هو ServerConfig الذي تقبله startAdminServer(). وتُستخدم أنواع السياق المرتبطة به أثناء تنفيذ الأدوات.

ServerConfig​

الحقل الوحيد الإلزامي هو port.

الحقلالنوعالقيمة الافتراضيةالوصف
portnumber— (إلزامي)منفذ TCP للاستماع، عدد صحيح من 0 إلى 65535.
hoststring"127.0.0.1"واجهة الشبكة للاستماع؛ تُستخدم واجهة الاسترجاع افتراضيًا لتجنب إتاحتها خارجيًا دون قصد.
apiKeystringundefinedسر مشترك تطلبه واجهة API للإدارة والنقل عبر HTTP عند ضبطه.
specPathstringundefinedمواصفة تُحمّل مرة واحدة عند بدء التشغيل.
baseUrlOverridestringundefinedيستبدل عنوان URL الأساسي للخدمة المستهدفة المشتق من servers[0].url.
upstreamHeadersRecord<string, string>undefinedترويسات تُدمج في كل طلب إلى الخدمة المستهدفة.
requestTimeoutMsnumberundefinedمهلة كل طلب إلى الخدمة المستهدفة بالمللي ثانية.
persistStatebooleantrueيحفظ المواصفة المحمّلة بين مرات إعادة التشغيل.
stateFilePathstringundefinedموقع ملف الحالة الدائم.
allowedOriginsstring[]undefinedمصادر CORS المسموح بها؛ تركها فارغة أو حذفها يعطّل الوصول عبر المصادر.
allowedHostsstring[]undefinedقيم ترويسة Host المسموح بها.
maxLogEntriesnumber200الحد الأقصى لعدد إدخالات السجل المحفوظة في الذاكرة.
redactSensitiveHeadersbooleantrueيخفي قيم الترويسات الحساسة قبل تسجيلها.
redactHeaderNamesstring[]undefinedأسماء ترويسات إضافية لإخفائها إلى جانب القائمة المدمجة.
securitySecurityContextundefinedبيانات الاعتماد المُمرَّرة إلى API المستهدفة مع كل استدعاء أداة.

SecurityContext​

الحقلالنوعصيغة الإرسال
bearerTokenstringAuthorization: Bearer <token>
basicAuth{ username, password }Authorization: Basic <base64>
apiKeysRecord<string, string>أزواج دقيقة من اسم الترويسة وقيمتها.

يُدرج المنفّذ بيانات الاعتماد، ولا يكشفها مطلقًا كوسائط أدوات متاحة للنموذج.

ExecutionContext​

سياق كل استدعاء، يُمرَّر إلى executeToolCall ويُعاد من ContextProvider:

الحقلالنوعالوصف
baseUrlOverridestringيستبدل عنوان URL لخادم المواصفة في هذا الاستدعاء.
upstreamHeadersRecord<string, string>ترويسات إضافية للخدمة المستهدفة.
requestTimeoutMsnumberمهلة كل استدعاء، بحد أدنى ثانية واحدة.
securitySecurityContextبيانات اعتماد خاصة بكل استدعاء.
correlationIdstringيربط إدخالات السجل الخاصة بالاستدعاء نفسه.
protocolProtocolHintوسيلة النقل التي بدأت الاستدعاء.
onLog(entry) => voidيتلقى إدخالات سجل الطلبات والاستجابات؛ يجب ألا يرمي استثناءات.
signalAbortSignalيلغي طلبًا جاريًا إلى الخدمة المستهدفة.

اتحادات القيم الحرفية ودوال التحقق من الأنواع​

الاتحادالقيمدالة التحقق
TransportMode"stdio" | "web"—
SpecSource"startup-file" | "upload" | "paste" | "runtime"isSpecSource()
ServiceStatus"running" | "stopped" | "error"isServiceStatus()
ProtocolHint"streamable-http" | "sse" | "stdio"isProtocolHint()
LogDirection"request" | "response" | "internal"—
LogLevel"debug" | "info" | "warn" | "error"—
ParameterLocation"path" | "query" | "header" | "cookie"isParameterLocation()
BodyEncoding"json" | "form-urlencoded" | "multipart" | "text" | "binary"isBodyEncoding()

BuildMcpServerOptions​

يُمرَّر بوصفه الوسيط الثالث إلى buildMcpServer():

الحقلالنوعالقيمة الافتراضيةالوصف
protocolProtocolHintundefinedتلميح البروتوكول المُعلَن.
namestring"openapi-mcp"اسم الخادم المُعلَن.
versionstring"1.1.0"إصدار الخادم المُعلَن.
pageSizenumber100الحد الأقصى للعناصر في كل استجابة قائمة، بما لا يتجاوز 500.
instructionsstringمدمجإرشادات استخدام تُتاح عبر MCP instructions.

خيارات طبقة النقل (AttachMcpRoutesOptions)​

استورد attachMcpRoutes من @powerduck/openapi-mcp-server ومرّر كائن الخيارات بوصفه الوسيط الثاني. لا تقبل دالة التغليف القديمة attachSseRoutes() إلا الوسائط الموضعية (app, specProvider, contextProvider, routeGuard?).

الحقلالنوعالقيمة الافتراضيةالوصف
specProviderSpecProvider— (إلزامي)يوفّر المستند للجلسات الجديدة.
contextProviderContextProvider— (إلزامي)يوفّر سياق الخدمة المستهدفة لكل استدعاء.
routeGuardRequestHandlerundefinedوسيط يُطبّق على كل مسارات MCP.
maxSessionsnumber64الحد الأقصى للجلسات المتزامنة.
sessionIdleMsnumber600000مهلة الخمول بالمللي ثانية؛ القيمة 0 تعطّلها.
allowedOriginsstring[]undefinedالمصادر المسموح بها؛ تفعّل القائمة غير الفارغة الحماية من إعادة ربط DNS.
allowedHostsstring[]undefinedقيم ترويسة Host المسموح بها.
enableLegacySsebooleantrueيربط وسيلة النقل HTTP+SSE المهملة.
onEvent(event: McpSessionEvent) => voidundefinedيتلقى أحداث دورة الحياة؛ يجب ألا يرمي استثناءات.

هذه خيارات attachMcpRoutes وليست حقولًا إضافية في ServerConfig. يمرّر خادم الإدارة إعدادات المصادر والمضيفين، لكنه يستخدم حد الجلسات ومهلة الخمول الافتراضيين لطبقة النقل. استخدم دالة النقل العامة مباشرةً إذا أردت تخصيص هذه الحدود.

انظر أيضًا​