/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { DuckyCore } from "../core.js"; import { SDKOptions } from "../lib/config.js"; import type { ConsoleLogger } from "./console-logger.js"; import { createRegisterPrompt } from "./prompts.js"; import { createRegisterResource, createRegisterResourceTemplate, } from "./resources.js"; import { MCPScope } from "./scopes.js"; import { createRegisterTool } from "./tools.js"; import { tool$documentsBatchIndex } from "./tools/documentsBatchIndex.js"; import { tool$documentsDelete } from "./tools/documentsDelete.js"; import { tool$documentsGet } from "./tools/documentsGet.js"; import { tool$documentsIndex } from "./tools/documentsIndex.js"; import { tool$documentsIndexFile } from "./tools/documentsIndexFile.js"; import { tool$documentsIndexMultimodal } from "./tools/documentsIndexMultimodal.js"; import { tool$documentsList } from "./tools/documentsList.js"; import { tool$documentsRetrieve } from "./tools/documentsRetrieve.js"; import { tool$documentsRetrieveSimilar } from "./tools/documentsRetrieveSimilar.js"; import { tool$indexesAsk } from "./tools/indexesAsk.js"; import { tool$indexesCreate } from "./tools/indexesCreate.js"; import { tool$indexesDelete } from "./tools/indexesDelete.js"; import { tool$indexesGet } from "./tools/indexesGet.js"; import { tool$indexesList } from "./tools/indexesList.js"; export function createMCPServer(deps: { logger: ConsoleLogger; allowedTools?: string[] | undefined; scopes?: MCPScope[] | undefined; serverURL?: string | undefined; apiKey?: SDKOptions["apiKey"] | undefined; serverIdx?: SDKOptions["serverIdx"] | undefined; }) { const server = new McpServer({ name: "Ducky", version: "1.4.1", }); const client = new DuckyCore({ apiKey: deps.apiKey, serverURL: deps.serverURL, serverIdx: deps.serverIdx, }); const scopes = new Set(deps.scopes); const allowedTools = deps.allowedTools && new Set(deps.allowedTools); const tool = createRegisterTool( deps.logger, server, client, scopes, allowedTools, ); const resource = createRegisterResource(deps.logger, server, client, scopes); const resourceTemplate = createRegisterResourceTemplate( deps.logger, server, client, scopes, ); const prompt = createRegisterPrompt(deps.logger, server, client, scopes); const register = { tool, resource, resourceTemplate, prompt }; void register; // suppress unused warnings tool(tool$documentsList); tool(tool$documentsBatchIndex); tool(tool$documentsIndexFile); tool(tool$documentsIndexMultimodal); tool(tool$documentsIndex); tool(tool$documentsRetrieve); tool(tool$documentsRetrieveSimilar); tool(tool$documentsDelete); tool(tool$documentsGet); tool(tool$indexesList); tool(tool$indexesCreate); tool(tool$indexesDelete); tool(tool$indexesGet); tool(tool$indexesAsk); return server; }