Skip to main content
Glama
aledlie

Doppler MCP Server

by aledlie

doppler_secrets_list

Retrieve and display all secrets stored in a Doppler configuration to manage sensitive data access across your projects and environments.

Instructions

List all secrets in a Doppler config

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectNoThe Doppler project name (optional if set via doppler setup)
configNoThe Doppler config name (optional if set via doppler setup)

Implementation Reference

  • Specific handler logic for doppler_secrets_list tool: builds the CLI command 'doppler secrets list [--project X] [--config Y] --json'
    case "doppler_secrets_list":
      parts.push("secrets", "list");
      if (getString("project")) parts.push("--project", getString("project")!);
      if (getString("config")) parts.push("--config", getString("config")!);
      parts.push("--json");
      break;
  • Input schema and metadata definition for the doppler_secrets_list tool
    {
      name: "doppler_secrets_list",
      description: "List all secrets in a Doppler config",
      inputSchema: {
        type: "object",
        properties: {
          project: {
            type: "string",
            description: "The Doppler project name (optional if set via doppler setup)",
          },
          config: {
            type: "string",
            description: "The Doppler config name (optional if set via doppler setup)",
          },
        },
      },
    },
  • src/index.ts:27-31 (registration)
    Registers the listTools handler, exposing the doppler_secrets_list tool definition
    server.setRequestHandler(ListToolsRequestSchema, async () => {
      return {
        tools: toolDefinitions,
      };
    });
  • MCP callTool request handler that dispatches to executeCommand based on tool name, handling the execution for doppler_secrets_list
    server.setRequestHandler(CallToolRequestSchema, async (request) => {
      const { name, arguments: args } = request.params;
    
      try {
        const result = await executeCommand(name, args || {});
        return {
          content: [
            {
              type: "text",
              text: JSON.stringify(result, null, 2),
            },
          ],
        };
      } catch (error) {
        const errorMessage = error instanceof Error ? error.message : String(error);
        throw new McpError(ErrorCode.InternalError, `Doppler CLI error: ${errorMessage}`);
      }
    });
  • Core helper function that executes the Doppler CLI command for all tools, including doppler_secrets_list, by running execSync on the built command and parsing output
    export async function executeCommand(
      toolName: string,
      args: DopplerArgs
    ): Promise<any> {
      const command = buildDopplerCommand(toolName, args);
    
      try {
        const output = execSync(command, {
          encoding: "utf-8",
          stdio: ["pipe", "pipe", "pipe"],
          maxBuffer: 10 * 1024 * 1024, // 10MB buffer
        });
    
        // Try to parse as JSON, if it fails return raw output
        try {
          return JSON.parse(output);
        } catch {
          return { output: output.trim() };
        }
      } catch (error: any) {
        // Handle execution errors
        const stderr = error.stderr?.toString() || "";
        const stdout = error.stdout?.toString() || "";
        const message = stderr || stdout || error.message;
        throw new Error(`Doppler CLI command failed: ${message}`);
      }
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aledlie/doppler-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server