API संदर्भ
@powerduck/openapi-mcp-server के सभी सार्वजनिक एक्सपोर्ट, कार्य के अनुसार व्यवस्थित।
स्पेसिफ़िकेशन लोड करना
| एक्सपोर्ट | सिग्नेचर | विवरण |
|---|---|---|
loadOpenApiSpec(filePath) | (string) => Promise<Oas32Document> | JSON या YAML फ़ाइल पढ़ता है, वैलिडेशन और रेफ़रेंस रिज़ॉल्यूशन करता है तथा ऑपरेशन ID की अद्वितीयता जाँचता है। YAML की पहचान .ya?ml एक्सटेंशन से होती है। |
parseSpecContent(rawText, isYaml) | (string, boolean) => Promise<Oas32Document> | स्ट्रिंग से दस्तावे ज़ पार्स करता है। खाली या अमान्य इनपुट पर अपवाद फेंकता है। |
टूल जनरेशन
| एक्सपोर्ट | सिग्नेचर | विवरण |
|---|---|---|
generateTools(spec) | (spec) => Tool[] | हर ऑपरेशन के लिए MCP Tool परिभाषाएँ बनाता है। |
generateToolsDetailed(spec) | (spec) => GenerateToolsResult | { tools, bindings, issues } लौटाता है। |
buildBindingIndex(spec) | (spec) => Map<string, ToolBinding> | जनरेट हुए टूल नामों को उनके ToolBinding से मैप करता है; यह getBindingIndex का उपनाम है। |
टाइप एक्सपोर्ट: ToolBinding, GeneratedToolWithBinding (पैकेज में GeneratedTool का उपनाम)।
प्रॉम्प्ट और रिसोर्स
| एक्सपोर्ट | सिग्नेचर | विवरण |
|---|---|---|
generatePrompts(spec) | (spec) => GeneratedPrompt[] | जनरेट हुए सभी प्रॉम्प्ट सूचीबद्ध करता है। |
resolvePrompt(spec, name, args?) | (spec, string, Record?) => GetPromptResult | null | नाम से प्रॉम्प्ट खोजता है; अज्ञात होने पर null लौटाता है। |
generateResources(spec) | (spec) => GeneratedResource[] | कैटलॉग के रिसोर्स सूचीबद्ध करता है। |
readResource(spec, uri) | (spec, string) => ResourceContentItem | null | URI से एक रिसोर्स पढ़ता है। |
रिक्वेस्ट बनाना और चलाना
| एक्सपोर्ट | सिग्नेचर | विवरण |
|---|---|---|
buildRequest(baseUrl, templatePath, pathItem, operation, args, binding?) | => BuiltRequest | आर्ग्युमेंट को { url, query, headers, body, dropped } में सीरियला इज़ करता है। स्थान-आधारित आर्ग्युमेंट इस्तेमाल होते हैं। |
executeToolCall(spec, toolName, args, context?) | (spec, string, Record?, ExecutionContext?) => Promise<ToolCallResult> | जनरेट किए गए टूल को अपस्ट्रीम API पर चलाता है। गैर-2xx रिस्पॉन्स डेटा के रूप में लौटते हैं; ट्रांसपोर्ट विफलता पर अपवाद आता है। |
ToolCallResult के फ़ील्ड: status, statusText, headers, data, truncated, url, method, durationMs, correlationId।
स्पेसिफ़िकेशन यूटिलिटी
| एक्सपोर्ट | विवरण |
|---|---|
iterateOperations(spec, issues?) | सभी रिज़ॉल्व किए गए ऑपरेशन देने वाला जनरेटर, जिसमें OpenAPI 3.2 के additionalOperations भी शामिल हैं। |
collectOperationParameters(pathItem, operation, issues?, context?) | (name, in) कुंजी के आधार पर पाथ आइ टम और ऑपरेशन के पैरामीटर जोड़ता है। |
normalizeParameter(candidate) | कच्चे पैरामीटर को सामान्य रूप देता है; उपयोग योग्य न होने पर null लौटाता है। |
synthesizeOperationId(method, pathTemplate) | ऑपरेशन में operationId न होने पर नियतात्मक वैकल्पिक ID बनाता है। |
ensureUniqueName(candidate, taken) | नाम अद्वितीय रखने के लिए संख्यात्मक प्रत्यय जोड़ता है। |
extractPathTemplateVariables(pathTemplate) | {name} वैरिएबल निकालता है और पहली उपस्थिति को रखते हुए दोहराव हटाता है। |
effectiveStyle(parameter) | स्पेसिफ़िकेशन का डिफ़ॉल्ट style लागू करता है। |
effectiveExplode(parameter) | स्पेसिफ़िकेशन का डिफ़ॉल्ट explode लागू करता है। |
findOperationById(spec, operationId) | पहली बार बनाने के बाद O(1) लुकअप; अज्ञात ID पर null लौटाता है। |
findDuplicateOperationIds(spec) | लेखक द्वारा घोषित डुप्लिकेट ID की जानकारी देता है। |
assertUniqueOperationIds(spec) | डुप्लिकेट ऑपरेशन ID पर अपवाद फेंकता है। |
isPlainObject(value) | टाइप को सामान्य ऑब्जेक्ट तक सीमित करता है। |
truncateGeneratedName(name, limit=64) | अद्वितीयता बनाए रखते हुए नाम छोटा करता है। |
टाइप एक्सपोर्ट: OperationEntry, DuplicateOperationId।
MCP सर्वर और ट्रांसपोर्ट
| एक्सपोर्ट | विवरण |
|---|---|
buildMcpServer(specProvider, contextProvider?, options?) | टूल, प्रॉम्प्ट और रिसोर्स हैंडलर जोड़कर SDK का Server बनाता है। स्थान-आधारित आर्ग्युमेंट इस्तेमाल होते हैं। |
startStdioServer(spec, context?, options?) | stdio पर एक दस्तावेज़ उपलब्ध कराता है; { closed, close() } लौटाता है। |
attachMcpRoutes(app, options) | Streamable HTTP (/mcp) और वैकल्पिक पुराने SSE (/sse) रूट माउंट करता है। AttachMcpRoutesOptions स्वीकार करके McpRouteHandle लौटाता है। |
attachSseRoutes(app, specProvider, contextProvider, routeGuard?) | अप्रचलित स्थान-आधारित रैपर। { activeSessionCount, closeAll } लौटाता है। |
createStreamableSessionHost(options) | कस्टम ट्रांसपोर्ट इंटीग्रेशन के लिए स्वतंत्र Streamable HTTP सेशन होस्ट बनाता है। |
टाइप: SpecProvider = () => Document | null, ContextProvider = () => ExecutionContext, AttachMcpRoutesOptions, McpRouteHandle, StreamableSessionHost, StreamableSessionHostOptions, McpSessionEvent, McpSessionInfo, SessionCloseReason, SessionKind।
attachMcpRoutes पैकेज के रूट से एक्सपोर्ट होता है। इसके विकल्पों में maxSessions, allowedOrigins, sessionIdleMs और DNS रीबाइंडिंग सुरक्षा सेट करें। हैंडल में activeSessionCount, pendingSessionCount, listSessions, closeSession, closeAll और dispose उपलब्ध हैं। बंद करते समय dispose() से आवधिक सफ़ाई रोकें और सत्र बंद करें।