Skip to main content
Glama

Claude Desktop Commander MCP

test.js2.68 kB
import path from 'path'; import fs from 'fs/promises'; import { fileURLToPath } from 'url'; import { handleEditBlock } from '../dist/handlers/edit-search-handlers.js'; import { configManager } from '../dist/config-manager.js'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const TEST_FILEPATH = path.join(__dirname, 'test.txt') async function setup() { // Save original config to restore later const originalConfig = await configManager.getConfig(); return originalConfig; } /** * Teardown function to clean up after tests */ async function teardown(originalConfig) { // Reset configuration to original await configManager.updateConfig(originalConfig); await fs.rm(TEST_FILEPATH, { force: true, recursive: true }); // Clean up test directories console.log('✓ Teardown: test directories cleaned up and config restored'); } // Export the main test function async function testEditBlock() { try { await configManager.setValue('allowedDirectories', [__dirname]); // Create a test file const fs = await import('fs/promises'); await fs.writeFile(TEST_FILEPATH, 'This is old content to replace'); // Test handleEditBlock const result = await handleEditBlock({ file_path: TEST_FILEPATH, old_string: 'old content', new_string: 'new content', expected_replacements: 1 }); console.log('Edit block result:', result); const fileContent = await fs.readFile(TEST_FILEPATH, 'utf8'); console.log('File content after replacement:', fileContent); if (fileContent.includes('new content')) { console.log('Replace test passed!'); } else { throw new Error('Replace test failed!'); } // Cleanup await fs.unlink(TEST_FILEPATH); console.log('All tests passed! 🎉'); return true; } catch (error) { console.error('Test failed:', error); return false; } } // Export the main test function export default async function runTests() { let originalConfig; try { originalConfig = await setup(); await testEditBlock(); } catch (error) { console.error('❌ Test failed:', error.message); return false; } finally { if (originalConfig) { await teardown(originalConfig); } } return true; } // If this file is run directly (not imported), execute the test if (import.meta.url === `file://${process.argv[1]}`) { runTests().catch(error => { console.error('❌ Unhandled error:', error); process.exit(1); }); }

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