Skip to content

feat(mcp): add profile creation tool with elicitation support #646

@joshrotenberg

Description

@joshrotenberg

Summary

Add a profile_create tool to MCP that allows users to create profiles directly through the agent, without needing to use the CLI first.

Motivation

Current state requires users to:

  1. Install redisctl CLI
  2. Run redisctl profile create ...
  3. Then use MCP

For a true "zero friction" experience (especially with Docker), users should be able to:

  1. Start MCP
  2. Ask: "Help me set up a connection to my Enterprise cluster"
  3. Agent guides them through credential collection
  4. Profile is created

Proposed Implementation

New Tool: profile_create

pub struct CreateProfileInput {
    pub name: String,
    pub profile_type: String,  // "cloud", "enterprise", "database"
    
    // Cloud credentials
    pub api_key: Option<String>,
    pub api_secret: Option<String>,
    
    // Enterprise credentials
    pub enterprise_url: Option<String>,
    pub enterprise_user: Option<String>,
    pub enterprise_password: Option<String>,
    pub enterprise_insecure: Option<bool>,
    
    // Database credentials
    pub host: Option<String>,
    pub port: Option<u16>,
    pub password: Option<String>,
    pub tls: Option<bool>,
}

MCP Elicitation

MCP supports elicitation for collecting sensitive information from users. This could be used to:

  1. Prompt for credentials securely
  2. Not expose secrets in conversation history
  3. Provide a guided setup flow

Need to check tower-mcp support for elicitation.

Security Considerations

  • Credentials will be stored in the config file (same as CLI)
  • Consider keyring integration for sensitive values
  • Mask credentials in any output/logging
  • Require --read-only=false for this tool

Alternative: Environment Variables

For Docker/container scenarios, could also support:

  • "Create a profile from environment variables"
  • Reads REDIS_CLOUD_API_KEY, REDIS_ENTERPRISE_URL, etc.
  • Creates profile automatically

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    mcpRelated to the MCP serverprofilesRelated to profile and credential management

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions