server.ts•4.81 kB
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { SDKCore } 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$assetRelationsCreateAssetRelationsByAssetId } from "./tools/assetRelationsCreateAssetRelationsByAssetId.js";
import { tool$assetRelationsDeleteAssetRelationsByAssetId } from "./tools/assetRelationsDeleteAssetRelationsByAssetId.js";
import { tool$assetsDerivedDestroy } from "./tools/assetsDerivedDestroy.js";
import { tool$assetsDestroyByAssetId } from "./tools/assetsDestroyByAssetId.js";
import { tool$assetsDownloadAsset } from "./tools/assetsDownloadAsset.js";
import { tool$assetsDownloadBackupAsset } from "./tools/assetsDownloadBackupAsset.js";
import { tool$assetsGenerateArchive } from "./tools/assetsGenerateArchive.js";
import { tool$assetsGetResourceByAssetId } from "./tools/assetsGetResourceByAssetId.js";
import { tool$assetsListImages } from "./tools/assetsListImages.js";
import { tool$assetsListRawFiles } from "./tools/assetsListRawFiles.js";
import { tool$assetsListResourceTags } from "./tools/assetsListResourceTags.js";
import { tool$assetsListVideos } from "./tools/assetsListVideos.js";
import { tool$assetsRenameAsset } from "./tools/assetsRenameAsset.js";
import { tool$assetsUpdateResourceByAssetId } from "./tools/assetsUpdateResourceByAssetId.js";
import { tool$foldersCreateFolder } from "./tools/foldersCreateFolder.js";
import { tool$foldersDestroyFolder } from "./tools/foldersDestroyFolder.js";
import { tool$foldersSearchFolders } from "./tools/foldersSearchFolders.js";
import { tool$foldersUpdateFolder } from "./tools/foldersUpdateFolder.js";
import { tool$searchSearchAssets } from "./tools/searchSearchAssets.js";
import { tool$searchVisualSearchAssets } from "./tools/searchVisualSearchAssets.js";
import { tool$uploadUpload } from "./tools/uploadUpload.js";
import { tool$usageGetUsage } from "./tools/usageGetUsage.js";
export function createMCPServer(deps: {
logger: ConsoleLogger;
allowedTools?: string[] | undefined;
scopes?: MCPScope[] | undefined;
getSDK?: () => SDKCore;
serverURL?: string | undefined;
security?: SDKOptions["security"] | undefined;
cloud_name?: SDKOptions["cloud_name"] | undefined;
serverIdx?: SDKOptions["serverIdx"] | undefined;
region?: SDKOptions["region"] | undefined;
host?: SDKOptions["host"] | undefined;
}) {
const server = new McpServer({
name: "SDK",
version: "0.0.1",
});
const getClient = deps.getSDK || (() =>
new SDKCore({
security: deps.security,
cloud_name: deps.cloud_name,
serverURL: deps.serverURL,
serverIdx: deps.serverIdx,
region: deps.region,
host: deps.host,
debugLogger: deps.logger.level === "debug"
? {
log: (...args) => console.log(...args),
group: (...args) => console.group(...args),
groupEnd: (...args) => console.groupEnd(...args),
}
: undefined,
}));
const scopes = new Set(deps.scopes);
const allowedTools = deps.allowedTools && new Set(deps.allowedTools);
const tool = createRegisterTool(
deps.logger,
server,
getClient,
scopes,
allowedTools,
);
const resource = createRegisterResource(
deps.logger,
server,
getClient,
scopes,
);
const resourceTemplate = createRegisterResourceTemplate(
deps.logger,
server,
getClient,
scopes,
);
const prompt = createRegisterPrompt(deps.logger, server, getClient, scopes);
const register = { tool, resource, resourceTemplate, prompt };
void register; // suppress unused warnings
tool(tool$uploadUpload);
tool(tool$assetsRenameAsset);
tool(tool$assetsDownloadAsset);
tool(tool$assetsGenerateArchive);
tool(tool$assetsDownloadBackupAsset);
tool(tool$assetsDestroyByAssetId);
tool(tool$assetsListImages);
tool(tool$assetsListVideos);
tool(tool$assetsListRawFiles);
tool(tool$assetsGetResourceByAssetId);
tool(tool$assetsUpdateResourceByAssetId);
tool(tool$assetsListResourceTags);
tool(tool$assetsDerivedDestroy);
tool(tool$usageGetUsage);
tool(tool$assetRelationsCreateAssetRelationsByAssetId);
tool(tool$assetRelationsDeleteAssetRelationsByAssetId);
tool(tool$foldersUpdateFolder);
tool(tool$foldersCreateFolder);
tool(tool$foldersDestroyFolder);
tool(tool$foldersSearchFolders);
tool(tool$searchSearchAssets);
tool(tool$searchVisualSearchAssets);
return server;
}