"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMCPServer = createMCPServer;
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
const core_js_1 = require("../core.js");
const prompts_js_1 = require("./prompts.js");
const resources_js_1 = require("./resources.js");
const tools_js_1 = require("./tools.js");
const analyzeAiVisionGeneral_js_1 = require("./tools/analyzeAiVisionGeneral.js");
const analyzeAiVisionModeration_js_1 = require("./tools/analyzeAiVisionModeration.js");
const analyzeAiVisionTagging_js_1 = require("./tools/analyzeAiVisionTagging.js");
const analyzeCaptioning_js_1 = require("./tools/analyzeCaptioning.js");
const analyzeCldFashion_js_1 = require("./tools/analyzeCldFashion.js");
const analyzeCldText_js_1 = require("./tools/analyzeCldText.js");
const analyzeCoco_js_1 = require("./tools/analyzeCoco.js");
const analyzeGoogleLogoDetection_js_1 = require("./tools/analyzeGoogleLogoDetection.js");
const analyzeGoogleTagging_js_1 = require("./tools/analyzeGoogleTagging.js");
const analyzeHumanAnatomy_js_1 = require("./tools/analyzeHumanAnatomy.js");
const analyzeImageQuality_js_1 = require("./tools/analyzeImageQuality.js");
const analyzeLvis_js_1 = require("./tools/analyzeLvis.js");
const analyzeShopClassifier_js_1 = require("./tools/analyzeShopClassifier.js");
const analyzeUnidet_js_1 = require("./tools/analyzeUnidet.js");
const analyzeWatermarkDetection_js_1 = require("./tools/analyzeWatermarkDetection.js");
const tasksGetStatus_js_1 = require("./tools/tasksGetStatus.js");
function createMCPServer(deps) {
    const server = new mcp_js_1.McpServer({
        name: "CloudinaryAnalysis",
        version: "0.4.1",
    });
    const client = new core_js_1.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 = (0, tools_js_1.createRegisterTool)(deps.logger, server, client, scopes, allowedTools);
    const resource = (0, resources_js_1.createRegisterResource)(deps.logger, server, client, scopes);
    const resourceTemplate = (0, resources_js_1.createRegisterResourceTemplate)(deps.logger, server, client, scopes);
    const prompt = (0, prompts_js_1.createRegisterPrompt)(deps.logger, server, client, scopes);
    const register = { tool, resource, resourceTemplate, prompt };
    void register; // suppress unused warnings
    tool(analyzeAiVisionGeneral_js_1.tool$analyzeAiVisionGeneral);
    tool(analyzeAiVisionModeration_js_1.tool$analyzeAiVisionModeration);
    tool(analyzeAiVisionTagging_js_1.tool$analyzeAiVisionTagging);
    tool(analyzeCaptioning_js_1.tool$analyzeCaptioning);
    tool(analyzeCldFashion_js_1.tool$analyzeCldFashion);
    tool(analyzeCldText_js_1.tool$analyzeCldText);
    tool(analyzeCoco_js_1.tool$analyzeCoco);
    tool(analyzeGoogleLogoDetection_js_1.tool$analyzeGoogleLogoDetection);
    tool(analyzeGoogleTagging_js_1.tool$analyzeGoogleTagging);
    tool(analyzeHumanAnatomy_js_1.tool$analyzeHumanAnatomy);
    tool(analyzeImageQuality_js_1.tool$analyzeImageQuality);
    tool(analyzeLvis_js_1.tool$analyzeLvis);
    tool(analyzeShopClassifier_js_1.tool$analyzeShopClassifier);
    tool(analyzeUnidet_js_1.tool$analyzeUnidet);
    tool(analyzeWatermarkDetection_js_1.tool$analyzeWatermarkDetection);
    tool(tasksGetStatus_js_1.tool$tasksGetStatus);
    return server;
}
//# sourceMappingURL=server.js.map