Skip to main content
Glama

give_feedback_to_desktop_commander

Open a feedback form to share your experience with Desktop Commander, helping improve the tool's functionality and user experience.

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

  • The primary handler function implementing the tool. Opens browser to Tally.so feedback form pre-filled with usage stats, handles cross-platform browser opening, captures analytics.
    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
        };
      }
    }
  • Tool registration in the allTools array used by listTools handler. Defines name, description, input schema, and annotations.
        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),
        annotations: {
            title: "Give Feedback",
            readOnlyHint: false,
            openWorldHint: true,
        },
    },
  • Zod schema definition for tool input parameters (empty object as no user params 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:171-181 (registration)
    Conditional registration logic that excludes the tool when the connected client is 'desktop-commander'.
    function shouldIncludeTool(toolName: string): boolean {
        // Exclude give_feedback_to_desktop_commander for desktop-commander client
        if (toolName === 'give_feedback_to_desktop_commander' && currentClient?.name === 'desktop-commander') {
            return false;
        }
    
        // Add more conditional tool logic here as needed
        // Example: if (toolName === 'some_tool' && currentClient?.name === 'some_client') return false;
    
        return true;
    }
  • Dispatch handler in CallToolRequestSchema that invokes the main 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?

The description adds significant behavioral context beyond annotations. While annotations indicate it's not read-only and is open-world, the description reveals: it opens a browser form, automatically pre-fills usage statistics (tool_call_count, days_using, platform, client_id), requires manual user completion of survey questions, and has no parameters. This provides practical implementation details the annotations don't cover. No contradiction with annotations exists.

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 appropriately front-loaded with the core purpose, but contains some redundancy and could be more concise. Sections like 'All survey questions will be answered directly in the form:' list specific form fields that aren't essential for tool selection. The EXAMPLE INTERACTION and final referencing note add value but make the description longer than necessary for a zero-parameter tool.

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

Completeness5/5

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

For a zero-parameter tool with no output schema, the description is complete. It explains what the tool does, when to use it, what happens when invoked (opens browser with auto-filled stats), what the user must do manually, and includes workflow examples. Given the tool's simplicity and lack of structured output, no additional information is needed for effective agent use.

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?

With 0 parameters and 100% schema description coverage, the baseline would be 4. The description explicitly states 'No parameters are needed - just call the tool to open the form,' which reinforces the empty schema. It also explains why no parameters are needed (form opens with auto-filled statistics), adding meaningful context about the parameterless design.

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 clearly states the tool's purpose: 'Open feedback form in browser to provide feedback about Desktop Commander.' It specifies the exact action (open form), target (feedback form), and resource (Desktop Commander). It distinguishes itself from all sibling tools which are file/process/config operations, not feedback collection.

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 includes a complete workflow section and example interaction showing the exact trigger condition. It also clarifies what NOT to do (no pre-filling, no parameter collection).

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

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/ClaudeComputerCommander'

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