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,
            };
        }

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