Skip to main content
Glama

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