UNPKG

@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
/* * 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; }