Skip to main content
Glama
wonderwhy-er

Claude Desktop Commander MCP

give_feedback_to_desktop_commander

Opens a feedback form in your browser to share opinions about Claude Desktop Commander MCP. Usage statistics are pre-filled; users manually complete questions on experience, recommendations, and AI tools used.

Instructions

                    Open feedback form in browser to provide feedback about Desktop Commander.
                    
                    IMPORTANT: This tool simply opens the feedback form - no pre-filling available.
                    The user will fill out the form manually in their browser.
                    
                    WORKFLOW:
                    1. When user agrees to give feedback, just call this tool immediately
                    2. No need to ask questions or collect information
                    3. Tool opens form with only usage statistics pre-filled automatically:
                       - tool_call_count: Number of commands they've made
                       - days_using: How many days they've used Desktop Commander
                       - platform: Their operating system (Mac/Windows/Linux)
                       - client_id: Analytics identifier
                    
                    All survey questions will be answered directly in the form:
                    - Job title and technical comfort level
                    - Company URL for industry context
                    - Other AI tools they use
                    - Desktop Commander's biggest advantage
                    - How they typically use it
                    - Recommendation likelihood (0-10)
                    - User study participation interest
                    - Email and any additional feedback
                    
                    EXAMPLE INTERACTION:
                    User: "sure, I'll give feedback"
                    Claude: "Perfect! Let me open the feedback form for you."
                    [calls tool immediately]
                    
                    No parameters are needed - just call the tool to open the form.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Main handler function: Captures usage stats, builds pre-filled Tally.so feedback URL, opens in browser cross-platform, handles success/error cases with appropriate responses.
    export async function giveFeedbackToDesktopCommander(params: FeedbackParams = {}): Promise<ServerResult> {
      try {
        // Get usage stats for context
        const stats = await usageTracker.getStats();
        
        // Capture feedback tool usage event
        await capture('feedback_tool_called', {
          total_calls: stats.totalToolCalls,
          successful_calls: stats.successfulCalls,
          failed_calls: stats.failedCalls,
          days_since_first_use: Math.floor((Date.now() - stats.firstUsed) / (1000 * 60 * 60 * 24)),
          total_sessions: stats.totalSessions,
          platform: os.platform(),
        });
        
        // Build Tally.so URL with pre-filled parameters
        const tallyUrl = await buildTallyUrl(params, stats);
        
        // Open URL in default browser
        const success = await openUrlInBrowser(tallyUrl);
        
        if (success) {
          // Capture successful browser opening
          await capture('feedback_form_opened_successfully', {
            total_calls: stats.totalToolCalls,
            platform: os.platform()
          });
          
          // Mark that user has given feedback (or at least opened the form)
          await usageTracker.markFeedbackGiven();
          
          return {
            content: [{
              type: "text",
              text: `🎉 **Feedback form opened in your browser!**\n\n` +
                    `Thank you for taking the time to share your experience with Desktop Commander. ` +
                    `Your feedback helps us build better features and improve the tool for everyone.\n\n` +
                    `The form has been pre-filled with the information you provided. ` +
                    `You can modify or add any additional details before submitting.\n\n` +
                    `**Form URL**: ${tallyUrl.length > 100 ? tallyUrl.substring(0, 100) + '...' : tallyUrl}`
            }]
          };
        } else {
          // Capture browser opening failure
          await capture('feedback_form_open_failed', {
            total_calls: stats.totalToolCalls,
            platform: os.platform(),
            error_type: 'browser_open_failed'
          });
          
          return {
            content: [{
              type: "text",
              text: `⚠️ **Couldn't open browser automatically**\n\n` +
                    `Please copy and paste this URL into your browser to access the feedback form:\n\n` +
                    `${tallyUrl}\n\n` +
                    `The form has been pre-filled with your information. Thank you for your feedback!`
            }]
          };
        }
        
      } catch (error) {
        // Capture error event
        await capture('feedback_tool_error', {
          error_message: error instanceof Error ? error.message : String(error),
          error_type: error instanceof Error ? error.constructor.name : 'unknown'
        });
        
        return {
          content: [{
            type: "text",
            text: `❌ **Error opening feedback form**: ${error instanceof Error ? error.message : String(error)}\n\n` +
                  `You can still access our feedback form directly at: https://tally.so/r/mKqoKg\n\n` +
                  `We appreciate your willingness to provide feedback!`
          }],
          isError: true
        };
      }
    }
  • src/server.ts:968-1004 (registration)
    Tool registration in listTools(): defines name, description, and inputSchema for the feedback tool.
    {
        name: "give_feedback_to_desktop_commander",
        description: `
                Open feedback form in browser to provide feedback about Desktop Commander.
                
                IMPORTANT: This tool simply opens the feedback form - no pre-filling available.
                The user will fill out the form manually in their browser.
                
                WORKFLOW:
                1. When user agrees to give feedback, just call this tool immediately
                2. No need to ask questions or collect information
                3. Tool opens form with only usage statistics pre-filled automatically:
                   - tool_call_count: Number of commands they've made
                   - days_using: How many days they've used Desktop Commander
                   - platform: Their operating system (Mac/Windows/Linux)
                   - client_id: Analytics identifier
                
                All survey questions will be answered directly in the form:
                - Job title and technical comfort level
                - Company URL for industry context
                - Other AI tools they use
                - Desktop Commander's biggest advantage
                - How they typically use it
                - Recommendation likelihood (0-10)
                - User study participation interest
                - Email and any additional feedback
                
                EXAMPLE INTERACTION:
                User: "sure, I'll give feedback"
                Claude: "Perfect! Let me open the feedback form for you."
                [calls tool immediately]
                
                No parameters are needed - just call the tool to open the form.
                
                ${CMD_PREFIX_DESCRIPTION}`,
        inputSchema: zodToJsonSchema(GiveFeedbackArgsSchema),
    },
  • Zod schema for tool inputs: empty object since no user parameters are required.
    export const GiveFeedbackArgsSchema = z.object({
      // No parameters needed - form will be filled manually by user
      // Only auto-filled hidden fields remain:
      // - tool_call_count (auto)
      // - days_using (auto) 
      // - platform (auto)
      // - client_id (auto)
    });
  • src/server.ts:167-170 (registration)
    Conditional registration logic: excludes the tool when client name is 'desktop-commander'.
    if (toolName === 'give_feedback_to_desktop_commander' && currentClient?.name === 'desktop-commander') {
        return false;
    }
  • Dispatch handler in CallToolRequestSchema: calls the feedback handler function.
    case "give_feedback_to_desktop_commander":
        try {
            result = await giveFeedbackToDesktopCommander(args);
        } catch (error) {
            capture('server_request_error', { message: `Error in give_feedback_to_desktop_commander handler: ${error}` });
            result = {
                content: [{ type: "text", text: `Error: Failed to open feedback form` }],
                isError: true,
            };
        }
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly explains that the tool opens a browser form, describes what data is automatically pre-filled (usage statistics, platform, client_id), and outlines the user's manual input requirements. However, it doesn't mention potential side effects like browser pop-up behavior or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose but includes extensive details about pre-filled data and survey questions that could be condensed. While informative, some sections like the example interaction and referencing instructions feel somewhat redundant given the clear workflow description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete. It explains the tool's behavior, workflow, and user interaction context. However, it lacks technical details like browser requirements or error scenarios that could be relevant for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so the baseline is 4. The description reinforces this by stating 'No parameters are needed - just call the tool to open the form,' which adds clarity beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Open feedback form in browser to provide feedback about Desktop Commander.' It uses specific verbs ('open', 'provide feedback') and clearly distinguishes this from sibling tools like get_usage_stats or set_config_value by focusing on user feedback collection rather than system operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'When user agrees to give feedback, just call this tool immediately' and 'No need to ask questions or collect information.' It also distinguishes this from tools that might pre-fill data by stating 'no pre-filling available' and clarifies the workflow steps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Related Tools

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/wonderwhy-er/DesktopCommanderMCP'

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