Ana içeriğe geç

API başvurusu

@powerduck/openapi-mcp-server paketinin tüm genel dışa aktarımları, işlev alanına göre gruplandırılmıştır.

Belirtim yükleme​

Dışa aktarımİmzaAçıklama
loadOpenApiSpec(filePath)(string) => Promise<Oas32Document>JSON veya YAML dosyasını okur, doğrular, başvuruları çözümler ve işlem kimliklerinin benzersizliğini denetler. YAML, .ya?ml uzantısıyla algılanır.
parseSpecContent(rawText, isYaml)(string, boolean) => Promise<Oas32Document>Bir dizeden belge ayrıştırır. Boş veya geçersiz girdide istisna fırlatır.

Araç üretimi​

Dışa aktarımİmzaAçıklama
generateTools(spec)(spec) => Tool[]Her işlem için MCP Tool tanımları üretir.
generateToolsDetailed(spec)(spec) => GenerateToolsResult{ tools, bindings, issues } döndürür.
buildBindingIndex(spec)(spec) => Map<string, ToolBinding>Üretilen araç adlarını ilgili ToolBinding ile eşler; getBindingIndex için takma addır.

Dışa aktarılan türler: ToolBinding, GeneratedToolWithBinding (paketteki GeneratedTool takma adı).

İstemler ve kaynaklar​

Dışa aktarımİmzaAçıklama
generatePrompts(spec)(spec) => GeneratedPrompt[]Üretilen tüm istemleri listeler.
resolvePrompt(spec, name, args?)(spec, string, Record?) => GetPromptResult | nullİstemi adına göre bulur; bilinmiyorsa null döndürür.
generateResources(spec)(spec) => GeneratedResource[]Katalog kaynaklarını listeler.
readResource(spec, uri)(spec, string) => ResourceContentItem | nullURI ile tek bir kaynak okur.

İstek oluşturma ve yürütme​

Dışa aktarımİmzaAçıklama
buildRequest(baseUrl, templatePath, pathItem, operation, args, binding?)=> BuiltRequestArgümanları { url, query, headers, body, dropped } biçimine serileştirir. Konumsal argümanlar kullanılır.
executeToolCall(spec, toolName, args, context?)(spec, string, Record?, ExecutionContext?) => Promise<ToolCallResult>Üretilen aracı hedef API üzerinde yürütür. 2xx dışındaki yanıtlar veri olarak döndürülür; aktarım hataları istisna fırlatır.

ToolCallResult alanları: status, statusText, headers, data, truncated, url, method, durationMs, correlationId.

Belirtim yardımcıları​

Dışa aktarımAçıklama
iterateOperations(spec, issues?)OpenAPI 3.2 additionalOperations dahil çözümlenen tüm işlemleri üreten oluşturucu.
collectOperationParameters(pathItem, operation, issues?, context?)Yol öğesi ve işlem parametrelerini (name, in) anahtarıyla birleştirir.
normalizeParameter(candidate)Ham parametreyi normalleştirir; kullanılamıyorsa null döndürür.
synthesizeOperationId(method, pathTemplate)İşlemde operationId yoksa deterministik bir yedek kimlik üretir.
ensureUniqueName(candidate, taken)Adı benzersiz tutmak için sayısal son ek ekler.
extractPathTemplateVariables(pathTemplate){name} değişkenlerini çıkarır; ilk görünümü koruyarak tekrarları kaldırır.
effectiveStyle(parameter)Belirtimin varsayılan style değerini uygular.
effectiveExplode(parameter)Belirtimin varsayılan explode değerini uygular.
findOperationById(spec, operationId)İlk oluşturmadan sonra O(1) arama; bilinmiyorsa null döndürür.
findDuplicateOperationIds(spec)Yazar tarafından tanımlanmış yinelenen kimlikleri bildirir.
assertUniqueOperationIds(spec)Yinelenen işlem kimliklerinde istisna fırlatır.
isPlainObject(value)Türü düz nesneye daraltır.
truncateGeneratedName(name, limit=64)Benzersizliğini koruyarak adı kısaltır.

Dışa aktarılan türler: OperationEntry, DuplicateOperationId.

MCP sunucusu ve aktarım yöntemleri​

Dışa aktarımAçıklama
buildMcpServer(specProvider, contextProvider?, options?)Araç, istem ve kaynak işleyicilerini bağlayan SDK Server nesnesini oluşturur. Konumsal argümanlar kullanılır.
startStdioServer(spec, context?, options?)stdio üzerinden tek belge sunar; { closed, close() } döndürür.
attachMcpRoutes(app, options)Streamable HTTP (/mcp) ve isteğe bağlı eski SSE (/sse) rotalarını bağlar. AttachMcpRoutesOptions alır ve McpRouteHandle döndürür.
attachSseRoutes(app, specProvider, contextProvider, routeGuard?)Kullanımdan kaldırılmış konumsal sarmalayıcı. { activeSessionCount, closeAll } döndürür.
createStreamableSessionHost(options)Özel aktarım entegrasyonları için bağımsız bir Streamable HTTP oturum yöneticisi oluşturur.

Türler: SpecProvider = () => Document | null, ContextProvider = () => ExecutionContext, AttachMcpRoutesOptions, McpRouteHandle, StreamableSessionHost, StreamableSessionHostOptions, McpSessionEvent, McpSessionInfo, SessionCloseReason, SessionKind.

attachMcpRoutes, paketin kökünden dışa aktarılır. Seçeneklerinde maxSessions, allowedOrigins, sessionIdleMs ve DNS rebinding korumasını yapılandırın. Döndürülen nesne activeSessionCount, pendingSessionCount, listSessions, closeSession, closeAll ve dispose sağlar. Kapanışta hem düzenli temizliği durdurmak hem de oturumları kapatmak için dispose() kullanın.

Yönetim sunucusu ve kimlik doğrulama (./server alt yolu)​

startAdminServer işlevini @powerduck/openapi-mcp-server/server veya paket kökünden içe aktarın. createAuthMiddleware işlevini paket kökünden içe aktarın; ./server alt yolundan dışa aktarılmaz.

Dışa aktarımİmzaAçıklama
startAdminServer(config)Promise<AdminServerHandle>Web arayüzü ve MCP rotalarıyla Express yönetim uygulamasını başlatır. { app, server, port, close() } döndürür.
createAuthMiddleware(apiKey?)RequestHandlerBearer veya x-api-key erişim koruması. Anahtarı belirtmemek korumayı kapatır. Konumsal argüman kullanılır.

Çalışma zamanı ve yardımcılar​

Dışa aktarımAçıklama
ServiceRegistryManagedServiceRecord sınıfı: upsert, list, get, remove, clear, start, stop, fail.
isAbortError(error)AbortError veya axios CanceledError için doğrudur.
newId()UUID; yedek olarak zaman damgalı bir değer kullanılır.

CLI​

Çalıştırılabilir program openapi-mcp. Tek komut serve:

openapi-mcp serve [options]
SeçenekVarsayılanAçıklama
--port <n>3000Web aktarımının HTTP bağlantı noktası.
--host <host>127.0.0.1HTTP host değeri.
--transport <mode>webstdio veya web.
--spec <path>—OpenAPI dosya yolu; stdio modunda zorunludur.
--base-url <url>—Hedef hizmetin temel URL’sini geçersiz kılar.
--api-key <key>—Yönetim API anahtarı.
--upstream-header "Name: value"—Tekrarlanabilen hedef hizmet üst bilgisi.
--timeout <ms>30000Hedef hizmet zaman aşımı.
--no-persist—Kalıcı durum saklamayı devre dışı bırakır.

Türler (types üzerinden yeniden dışa aktarılır)​

ServerConfig, SecurityContext, AppState, PersistedState, ExecutionContext, TransportMode, SpecSource, ServiceStatus, ProtocolHint, LogDirection, LogLevel, ParameterLocation, BodyEncoding, ServiceEndpointInfo, ManagedServiceRecord, SpecIssue, AdminStatus, GeneratedPrompt, GeneratedResource, GeneratedTool, ResourceContentItem, PromptMessageShape, RequestLogEntry, LogQueryOptions, LogQueryResult; ResolvedPrompt kullanımdan kaldırılmıştır. Tür koruyucuları: isSpecSource, isServiceStatus, isProtocolHint, isParameterLocation, isBodyEncoding, isPlainRecord.

Hatalar ve davranış​

  • Bilinmeyen araç, istem veya kaynak kimlikleri normal sonucun içindeki hatalar yerine MCP InvalidParams hataları oluşturur.
  • Etkin oturum sırasında belirtimin bulunmaması InternalError üretir.
  • Hedef hizmetin 4xx/5xx yanıtları istisna fırlatmadan modele isError: true içeriği olarak döndürülür. Yalnızca aktarım hataları (DNS, TLS, zaman aşımı, iptal) istisna fırlatır.

Ayrıca bakınız​