/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { InkeepAnalyticsCore } from "../core.js";
import { createRegisterPrompt } from "./prompts.js";
import { createRegisterResource, createRegisterResourceTemplate, } from "./resources.js";
import { mcpScopes } from "./scopes.js";
import { createRegisterTool } from "./tools.js";
import { tool$conversationGetConversationByExternalId } from "./tools/conversationGetConversationByExternalId.js";
import { tool$conversationsList } from "./tools/conversationsList.js";
import { tool$feedbackList } from "./tools/feedbackList.js";
import { tool$feedbackSubmit } from "./tools/feedbackSubmit.js";
import { tool$queryExportSemanticThreadsQueryResults } from "./tools/queryExportSemanticThreadsQueryResults.js";
import { tool$queryQueryPropertyKeys } from "./tools/queryQueryPropertyKeys.js";
import { tool$queryQueryPropertyValues } from "./tools/queryQueryPropertyValues.js";
export function createMCPServer(deps) {
    const server = new McpServer({
        name: "InkeepAnalytics",
        version: "0.2.4-alpha.12",
    });
    const client = new InkeepAnalyticsCore({
        apiIntegrationKey: deps.apiIntegrationKey,
        serverURL: deps.serverURL,
        serverIdx: deps.serverIdx,
    });
    const scopes = new Set(deps.scopes ?? mcpScopes);
    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$conversationsList);
    tool(tool$conversationGetConversationByExternalId);
    tool(tool$feedbackSubmit);
    tool(tool$feedbackList);
    tool(tool$queryExportSemanticThreadsQueryResults);
    tool(tool$queryQueryPropertyKeys);
    tool(tool$queryQueryPropertyValues);
    return server;
}
//# sourceMappingURL=server.js.map