@launchdarkly/mcp-server
Version:
The local [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for [LaunchDarkly](https://launchdarkly.com/) federal and European Union (EU) environments.
120 lines (112 loc) • 4.87 kB
text/typescript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { LaunchDarklyCore } 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$aiConfigsCreate } from "./tools/aiConfigsCreate.js";
import { tool$aiConfigsCreateVariation } from "./tools/aiConfigsCreateVariation.js";
import { tool$aiConfigsDelete } from "./tools/aiConfigsDelete.js";
import { tool$aiConfigsDeleteVariation } from "./tools/aiConfigsDeleteVariation.js";
import { tool$aiConfigsGet } from "./tools/aiConfigsGet.js";
import { tool$aiConfigsGetTargeting } from "./tools/aiConfigsGetTargeting.js";
import { tool$aiConfigsGetVariation } from "./tools/aiConfigsGetVariation.js";
import { tool$aiConfigsList } from "./tools/aiConfigsList.js";
import { tool$aiConfigsUpdate } from "./tools/aiConfigsUpdate.js";
import { tool$aiConfigsUpdateTargeting } from "./tools/aiConfigsUpdateTargeting.js";
import { tool$aiConfigsUpdateVariation } from "./tools/aiConfigsUpdateVariation.js";
import { tool$auditLogListEntries } from "./tools/auditLogListEntries.js";
import { tool$codeReferencesListRepositories } from "./tools/codeReferencesListRepositories.js";
import { tool$environmentsListByProject } from "./tools/environmentsListByProject.js";
import { tool$experimentsCreate } from "./tools/experimentsCreate.js";
import { tool$experimentsCreateIteration } from "./tools/experimentsCreateIteration.js";
import { tool$experimentsGet } from "./tools/experimentsGet.js";
import { tool$experimentsGetExperimentsAnyEnv } from "./tools/experimentsGetExperimentsAnyEnv.js";
import { tool$experimentsList } from "./tools/experimentsList.js";
import { tool$experimentsPatch } from "./tools/experimentsPatch.js";
import { tool$featureFlagsCreate } from "./tools/featureFlagsCreate.js";
import { tool$featureFlagsDelete } from "./tools/featureFlagsDelete.js";
import { tool$featureFlagsGet } from "./tools/featureFlagsGet.js";
import { tool$featureFlagsGetStatus } from "./tools/featureFlagsGetStatus.js";
import { tool$featureFlagsList } from "./tools/featureFlagsList.js";
import { tool$featureFlagsPatch } from "./tools/featureFlagsPatch.js";
import { tool$metricsCreate } from "./tools/metricsCreate.js";
import { tool$metricsGet } from "./tools/metricsGet.js";
import { tool$metricsList } from "./tools/metricsList.js";
import { tool$metricsPatch } from "./tools/metricsPatch.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: "LaunchDarkly",
version: "0.7.2",
});
const client = new LaunchDarklyCore({
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$auditLogListEntries);
tool(tool$codeReferencesListRepositories);
tool(tool$featureFlagsGetStatus);
tool(tool$featureFlagsList);
tool(tool$featureFlagsCreate);
tool(tool$featureFlagsGet);
tool(tool$featureFlagsPatch);
tool(tool$featureFlagsDelete);
tool(tool$metricsList);
tool(tool$metricsCreate);
tool(tool$metricsGet);
tool(tool$metricsPatch);
tool(tool$environmentsListByProject);
tool(tool$experimentsList);
tool(tool$experimentsCreate);
tool(tool$experimentsGet);
tool(tool$experimentsPatch);
tool(tool$experimentsCreateIteration);
tool(tool$experimentsGetExperimentsAnyEnv);
tool(tool$aiConfigsGetTargeting);
tool(tool$aiConfigsUpdateTargeting);
tool(tool$aiConfigsList);
tool(tool$aiConfigsCreate);
tool(tool$aiConfigsDelete);
tool(tool$aiConfigsGet);
tool(tool$aiConfigsUpdate);
tool(tool$aiConfigsCreateVariation);
tool(tool$aiConfigsDeleteVariation);
tool(tool$aiConfigsGetVariation);
tool(tool$aiConfigsUpdateVariation);
return server;
}