@wonderwhy-er/desktop-commander 0.1.22 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -2
- package/dist/server.js +17 -1
- package/dist/setup-claude-server.js +12 -13
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
- package/testemonials/analyticsindiamag.png +0 -0
package/README.md
CHANGED
|
@@ -23,6 +23,7 @@ Short version. Two key things. Terminal commands and diff based file editing.
|
|
|
23
23
|
- [Work in Progress and TODOs](#work-in-progress-and-todos)
|
|
24
24
|
- [Media links](#media)
|
|
25
25
|
- [Testimonials](#testimonials)
|
|
26
|
+
- [Frequently Asked Questions](#frequently-asked-questions)
|
|
26
27
|
- [Contributing](#contributing)
|
|
27
28
|
- [License](#license)
|
|
28
29
|
|
|
@@ -163,7 +164,7 @@ This project extends the MCP Filesystem Server to enable:
|
|
|
163
164
|
Created as part of exploring Claude MCPs: https://youtube.com/live/TlbjFDbl5Us
|
|
164
165
|
|
|
165
166
|
## DONE
|
|
166
|
-
- **25-03-2025 Better code search** ([
|
|
167
|
+
- **25-03-2025 Better code search** ([merged](https://github.com/wonderwhy-er/ClaudeDesktopCommander/pull/17)) - Enhanced code exploration with context-aware results
|
|
167
168
|
|
|
168
169
|
## Work in Progress and TODOs
|
|
169
170
|
|
|
@@ -176,6 +177,10 @@ The following features are currently being developed or planned:
|
|
|
176
177
|
- **Support for SSH** - Remote server command execution
|
|
177
178
|
- **Installation troubleshooting guide** - Comprehensive help for setup issues
|
|
178
179
|
|
|
180
|
+
## Website
|
|
181
|
+
|
|
182
|
+
Visit our official website at [https://desktopcommander.app/](https://desktopcommander.app/) for the latest information, documentation, and updates.
|
|
183
|
+
|
|
179
184
|
## Media
|
|
180
185
|
Learn more about this project through these resources:
|
|
181
186
|
|
|
@@ -185,6 +190,10 @@ Learn more about this project through these resources:
|
|
|
185
190
|
### Video
|
|
186
191
|
[Claude Desktop Commander Video Tutorial](https://www.youtube.com/watch?v=ly3bed99Dy8) - Watch how to set up and use the Commander effectively.
|
|
187
192
|
|
|
193
|
+
### Publication at AnalyticsIndiaMag
|
|
194
|
+
[
|
|
195
|
+
This Developer Ditched Windsurf, Cursor Using Claude with MCPs](https://analyticsindiamag.com/ai-features/this-developer-ditched-windsurf-cursor-using-claude-with-mcps/)
|
|
196
|
+
|
|
188
197
|
### Community
|
|
189
198
|
Join our [Discord server](https://discord.gg/7cbccwRp) to get help, share feedback, and connect with other users.
|
|
190
199
|
|
|
@@ -226,6 +235,29 @@ All contributions, big or small, are greatly appreciated!
|
|
|
226
235
|
|
|
227
236
|
If you find this tool valuable for your workflow, please consider [supporting the project](https://www.buymeacoffee.com/wonderwhyer).
|
|
228
237
|
|
|
238
|
+
## Frequently Asked Questions
|
|
239
|
+
|
|
240
|
+
Here are answers to some common questions. For a more comprehensive FAQ, see our [detailed FAQ document](FAQ.md).
|
|
241
|
+
|
|
242
|
+
### What is Claude Desktop Commander?
|
|
243
|
+
It's an MCP tool that enables Claude Desktop to access your file system and terminal, turning Claude into a versatile assistant for coding, automation, codebase exploration, and more.
|
|
244
|
+
|
|
245
|
+
### How is this different from Cursor/Windsurf?
|
|
246
|
+
Unlike IDE-focused tools, Claude Desktop Commander provides a solution-centric approach that works with your entire OS, not just within a coding environment. Claude reads files in full rather than chunking them, can work across multiple projects simultaneously, and executes changes in one go rather than requiring constant review.
|
|
247
|
+
|
|
248
|
+
### Do I need to pay for API credits?
|
|
249
|
+
No. This tool works with Claude Desktop's standard Pro subscription ($20/month), not with API calls, so you won't incur additional costs beyond the subscription fee.
|
|
250
|
+
|
|
251
|
+
### What are the most common use cases?
|
|
252
|
+
- Exploring and understanding complex codebases
|
|
253
|
+
- Generating diagrams and documentation
|
|
254
|
+
- Automating tasks across your system
|
|
255
|
+
- Working with multiple projects simultaneously
|
|
256
|
+
- Making surgical code changes with precise control
|
|
257
|
+
|
|
258
|
+
### I'm having trouble installing or using the tool. Where can I get help?
|
|
259
|
+
Join our [Discord server](https://discord.gg/kQ27sNnZr7) for community support, check the [GitHub issues](https://github.com/wonderwhy-er/ClaudeComputerCommander/issues) for known problems, or review the [full FAQ](FAQ.md) for troubleshooting tips. You can also visit our [website FAQ section](https://desktopcommander.app#faq) for a more user-friendly experience. If you encounter a new issue, please consider [opening a GitHub issue](https://github.com/wonderwhy-er/ClaudeComputerCommander/issues/new) with details about your problem.
|
|
260
|
+
|
|
229
261
|
## License
|
|
230
262
|
|
|
231
|
-
MIT
|
|
263
|
+
MIT
|
package/dist/server.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ListPromptsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
3
3
|
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
4
4
|
import { commandManager } from './command-manager.js';
|
|
5
5
|
import { ExecuteCommandArgsSchema, ReadOutputArgsSchema, ForceTerminateArgsSchema, ListSessionsArgsSchema, KillProcessArgsSchema, BlockCommandArgsSchema, UnblockCommandArgsSchema, ReadFileArgsSchema, ReadMultipleFilesArgsSchema, WriteFileArgsSchema, CreateDirectoryArgsSchema, ListDirectoryArgsSchema, MoveFileArgsSchema, SearchFilesArgsSchema, GetFileInfoArgsSchema, EditBlockArgsSchema, SearchCodeArgsSchema, } from './tools/schemas.js';
|
|
@@ -15,8 +15,24 @@ export const server = new Server({
|
|
|
15
15
|
}, {
|
|
16
16
|
capabilities: {
|
|
17
17
|
tools: {},
|
|
18
|
+
resources: {}, // Add empty resources capability
|
|
19
|
+
prompts: {}, // Add empty prompts capability
|
|
18
20
|
},
|
|
19
21
|
});
|
|
22
|
+
// Add handler for resources/list method
|
|
23
|
+
server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
24
|
+
// Return an empty list of resources
|
|
25
|
+
return {
|
|
26
|
+
resources: [],
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
// Add handler for prompts/list method
|
|
30
|
+
server.setRequestHandler(ListPromptsRequestSchema, async () => {
|
|
31
|
+
// Return an empty list of prompts
|
|
32
|
+
return {
|
|
33
|
+
prompts: [],
|
|
34
|
+
};
|
|
35
|
+
});
|
|
20
36
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
21
37
|
return {
|
|
22
38
|
tools: [
|
|
@@ -73,7 +73,7 @@ try {
|
|
|
73
73
|
|
|
74
74
|
// Prepare the new server config based on OS
|
|
75
75
|
// Determine if running through npx or locally
|
|
76
|
-
const isNpx =
|
|
76
|
+
const isNpx = import.meta.url.endsWith('dist/setup-claude-server.js');
|
|
77
77
|
|
|
78
78
|
const serverConfig = isNpx ? {
|
|
79
79
|
"command": "npx",
|
|
@@ -87,27 +87,26 @@ try {
|
|
|
87
87
|
]
|
|
88
88
|
};
|
|
89
89
|
|
|
90
|
-
//
|
|
90
|
+
// Initialize mcpServers if it doesn't exist
|
|
91
91
|
if (!config.mcpServers) {
|
|
92
92
|
config.mcpServers = {};
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}*/
|
|
95
|
+
// Check if the old "desktopCommander" exists and remove it
|
|
96
|
+
if (config.mcpServers.desktopCommander) {
|
|
97
|
+
logToFile('Found old "desktopCommander" installation. Removing it...');
|
|
98
|
+
delete config.mcpServers.desktopCommander;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Add or update the terminal server config with the proper name "desktop-commander"
|
|
102
|
+
config.mcpServers["desktop-commander"] = serverConfig;
|
|
104
103
|
|
|
105
104
|
// Write the updated config back
|
|
106
105
|
writeFileSync(claudeConfigPath, JSON.stringify(config, null, 2), 'utf8');
|
|
107
106
|
|
|
108
|
-
logToFile('Successfully added MCP
|
|
107
|
+
logToFile('Successfully added MCP server to Claude configuration!');
|
|
109
108
|
logToFile(`Configuration location: ${claudeConfigPath}`);
|
|
110
|
-
logToFile('\nTo use the
|
|
109
|
+
logToFile('\nTo use the server:\n1. Restart Claude if it\'s currently running\n2. The server will be available as "desktop-commander" in Claude\'s MCP server list');
|
|
111
110
|
|
|
112
111
|
} catch (error) {
|
|
113
112
|
logToFile(`Error updating Claude configuration: ${error}`, true);
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.23";
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.1.
|
|
1
|
+
export const VERSION = '0.1.23';
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wonderwhy-er/desktop-commander",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"description": "MCP server for terminal operations and file editing",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Eduards Ruzga",
|
|
7
|
-
"homepage": "https://github.com/wonderwhy-er/
|
|
8
|
-
"bugs": "https://github.com/wonderwhy-er/
|
|
7
|
+
"homepage": "https://github.com/wonderwhy-er/DesktopCommanderMCP",
|
|
8
|
+
"bugs": "https://github.com/wonderwhy-er/DesktopCommanderMCP/issues",
|
|
9
9
|
"type": "module",
|
|
10
10
|
"bin": {
|
|
11
11
|
"desktop-commander": "dist/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"link:local": "npm run build && npm link",
|
|
32
32
|
"unlink:local": "npm unlink",
|
|
33
33
|
"inspector": "npx @modelcontextprotocol/inspector dist/index.js",
|
|
34
|
-
"
|
|
34
|
+
"publish": "npm publish"
|
|
35
35
|
},
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
Binary file
|