/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { CloudinaryAnalysisCore } from "../core.js";
import { createRegisterPrompt } from "./prompts.js";
import { createRegisterResource, createRegisterResourceTemplate, } from "./resources.js";
import { createRegisterTool } from "./tools.js";
import { tool$analyzeAiVisionGeneral } from "./tools/analyzeAiVisionGeneral.js";
import { tool$analyzeAiVisionModeration } from "./tools/analyzeAiVisionModeration.js";
import { tool$analyzeAiVisionTagging } from "./tools/analyzeAiVisionTagging.js";
import { tool$analyzeCaptioning } from "./tools/analyzeCaptioning.js";
import { tool$analyzeCldFashion } from "./tools/analyzeCldFashion.js";
import { tool$analyzeCldText } from "./tools/analyzeCldText.js";
import { tool$analyzeCoco } from "./tools/analyzeCoco.js";
import { tool$analyzeGoogleLogoDetection } from "./tools/analyzeGoogleLogoDetection.js";
import { tool$analyzeGoogleTagging } from "./tools/analyzeGoogleTagging.js";
import { tool$analyzeHumanAnatomy } from "./tools/analyzeHumanAnatomy.js";
import { tool$analyzeImageQuality } from "./tools/analyzeImageQuality.js";
import { tool$analyzeLvis } from "./tools/analyzeLvis.js";
import { tool$analyzeShopClassifier } from "./tools/analyzeShopClassifier.js";
import { tool$analyzeUnidet } from "./tools/analyzeUnidet.js";
import { tool$analyzeWatermarkDetection } from "./tools/analyzeWatermarkDetection.js";
import { tool$tasksGetStatus } from "./tools/tasksGetStatus.js";
export function createMCPServer(deps) {
    const server = new McpServer({
        name: "CloudinaryAnalysis",
        version: "0.4.0",
    });
    const client = new CloudinaryAnalysisCore({
        security: deps.security,
        serverURL: deps.serverURL,
        serverIdx: deps.serverIdx,
        cloudName: deps.cloudName,
    });
    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$analyzeAiVisionGeneral);
    tool(tool$analyzeAiVisionModeration);
    tool(tool$analyzeAiVisionTagging);
    tool(tool$analyzeCaptioning);
    tool(tool$analyzeCldFashion);
    tool(tool$analyzeCldText);
    tool(tool$analyzeCoco);
    tool(tool$analyzeGoogleLogoDetection);
    tool(tool$analyzeGoogleTagging);
    tool(tool$analyzeHumanAnatomy);
    tool(tool$analyzeImageQuality);
    tool(tool$analyzeLvis);
    tool(tool$analyzeShopClassifier);
    tool(tool$analyzeUnidet);
    tool(tool$analyzeWatermarkDetection);
    tool(tool$tasksGetStatus);
    return server;
}
//# sourceMappingURL=server.js.map