@wonderwhy-er/desktop-commander 0.2.29-alpha.0 → 0.2.29-alpha.10

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.
Files changed (59) hide show
  1. package/dist/index.js +10 -0
  2. package/dist/npm-scripts/remote.d.ts +1 -0
  3. package/dist/npm-scripts/remote.js +20 -0
  4. package/dist/remote-device/desktop-commander-integration.d.ts +143 -0
  5. package/dist/remote-device/desktop-commander-integration.js +147 -0
  6. package/dist/remote-device/device-authenticator.d.ts +16 -0
  7. package/dist/remote-device/device-authenticator.js +120 -0
  8. package/dist/remote-device/device.d.ts +25 -0
  9. package/dist/remote-device/device.js +308 -0
  10. package/dist/remote-device/remote-channel.d.ts +51 -0
  11. package/dist/remote-device/remote-channel.js +255 -0
  12. package/dist/remote-device/scripts/blocking-offline-update.js +64 -0
  13. package/dist/remote-device/templates/auth-success.d.ts +1 -0
  14. package/dist/remote-device/templates/auth-success.js +30 -0
  15. package/dist/server.js +39 -11
  16. package/dist/version.d.ts +1 -1
  17. package/dist/version.js +1 -1
  18. package/package.json +8 -3
  19. package/dist/data/spec-kit-prompts.json +0 -123
  20. package/dist/handlers/node-handlers.d.ts +0 -6
  21. package/dist/handlers/node-handlers.js +0 -73
  22. package/dist/handlers/test-crash-handler.d.ts +0 -11
  23. package/dist/handlers/test-crash-handler.js +0 -26
  24. package/dist/http-index.d.ts +0 -45
  25. package/dist/http-index.js +0 -51
  26. package/dist/http-server-auto-tunnel.d.ts +0 -1
  27. package/dist/http-server-auto-tunnel.js +0 -667
  28. package/dist/http-server-named-tunnel.d.ts +0 -2
  29. package/dist/http-server-named-tunnel.js +0 -167
  30. package/dist/http-server-tunnel.d.ts +0 -2
  31. package/dist/http-server-tunnel.js +0 -111
  32. package/dist/http-server.d.ts +0 -2
  33. package/dist/http-server.js +0 -270
  34. package/dist/index-oauth.d.ts +0 -2
  35. package/dist/index-oauth.js +0 -201
  36. package/dist/oauth/auth-middleware.d.ts +0 -20
  37. package/dist/oauth/auth-middleware.js +0 -62
  38. package/dist/oauth/index.d.ts +0 -3
  39. package/dist/oauth/index.js +0 -3
  40. package/dist/oauth/oauth-manager.d.ts +0 -80
  41. package/dist/oauth/oauth-manager.js +0 -179
  42. package/dist/oauth/oauth-routes.d.ts +0 -3
  43. package/dist/oauth/oauth-routes.js +0 -377
  44. package/dist/oauth/provider.d.ts +0 -22
  45. package/dist/oauth/provider.js +0 -124
  46. package/dist/oauth/server.d.ts +0 -18
  47. package/dist/oauth/server.js +0 -160
  48. package/dist/oauth/types.d.ts +0 -54
  49. package/dist/oauth/types.js +0 -2
  50. package/dist/setup.log +0 -275
  51. package/dist/test-setup.js +0 -14
  52. package/dist/tools/pdf-processor.d.ts +0 -1
  53. package/dist/tools/pdf-processor.js +0 -3
  54. package/dist/tools/search.d.ts +0 -32
  55. package/dist/tools/search.js +0 -202
  56. package/dist/utils/crash-logger.d.ts +0 -18
  57. package/dist/utils/crash-logger.js +0 -44
  58. package/dist/utils/dedent.d.ts +0 -8
  59. package/dist/utils/dedent.js +0 -38
@@ -1,160 +0,0 @@
1
- import http from 'http';
2
- import { URL } from 'url';
3
- import { OAuthProvider } from './provider.js';
4
- export class OAuthHttpServer {
5
- constructor(config, mcpHandler) {
6
- this.oauthProvider = new OAuthProvider(config);
7
- this.mcpHandler = mcpHandler;
8
- this.server = http.createServer(this.handleRequest.bind(this));
9
- }
10
- async handleRequest(req, res) {
11
- const url = new URL(req.url, `http://${req.headers.host}`);
12
- // Enable CORS
13
- this.setCorsHeaders(res);
14
- if (req.method === 'OPTIONS') {
15
- res.writeHead(200);
16
- res.end();
17
- return;
18
- }
19
- try {
20
- // OAuth endpoints
21
- if (url.pathname === '/.well-known/oauth-authorization-server') {
22
- return this.handleAuthServerMetadata(res);
23
- }
24
- if (url.pathname === '/authorize') {
25
- return this.handleAuthorize(url, res);
26
- }
27
- if (url.pathname === '/token' && req.method === 'POST') {
28
- return this.handleToken(req, res);
29
- }
30
- if (url.pathname === '/callback') {
31
- return this.handleCallback(url, res);
32
- }
33
- // Protected MCP endpoints - require authentication
34
- if (url.pathname.startsWith('/mcp') || url.pathname === '/sse') {
35
- const authHeader = req.headers.authorization;
36
- if (!authHeader || !authHeader.startsWith('Bearer ')) {
37
- return this.sendUnauthorized(res);
38
- }
39
- const token = authHeader.substring(7);
40
- const tokenData = this.oauthProvider.validateAccessToken(token);
41
- if (!tokenData) {
42
- return this.sendUnauthorized(res);
43
- }
44
- // Add user info to request for MCP handler
45
- req.user = tokenData;
46
- }
47
- // Forward to MCP handler
48
- this.mcpHandler(req, res);
49
- }
50
- catch (error) {
51
- console.error('OAuth server error:', error);
52
- res.writeHead(500, { 'Content-Type': 'application/json' });
53
- res.end(JSON.stringify({ error: 'Internal server error' }));
54
- }
55
- }
56
- setCorsHeaders(res) {
57
- res.setHeader('Access-Control-Allow-Origin', '*');
58
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
59
- res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
60
- res.setHeader('Access-Control-Expose-Headers', 'WWW-Authenticate');
61
- }
62
- handleAuthServerMetadata(res) {
63
- const metadata = this.oauthProvider.getAuthorizationServerMetadata();
64
- res.writeHead(200, { 'Content-Type': 'application/json' });
65
- res.end(JSON.stringify(metadata, null, 2));
66
- }
67
- handleAuthorize(url, res) {
68
- const params = {
69
- response_type: url.searchParams.get('response_type'),
70
- client_id: url.searchParams.get('client_id'),
71
- redirect_uri: url.searchParams.get('redirect_uri'),
72
- scope: url.searchParams.get('scope') || undefined,
73
- state: url.searchParams.get('state') || undefined,
74
- code_challenge: url.searchParams.get('code_challenge'),
75
- code_challenge_method: url.searchParams.get('code_challenge_method')
76
- };
77
- const result = this.oauthProvider.handleAuthorizationRequest(params);
78
- if (result.error) {
79
- res.writeHead(400, { 'Content-Type': 'application/json' });
80
- res.end(JSON.stringify({ error: result.error }));
81
- return;
82
- }
83
- // Redirect to the callback URL with auth code
84
- res.writeHead(302, { 'Location': result.authUrl });
85
- res.end();
86
- }
87
- async handleToken(req, res) {
88
- const body = await this.getRequestBody(req);
89
- const params = new URLSearchParams(body);
90
- const tokenRequest = {
91
- grant_type: params.get('grant_type'),
92
- code: params.get('code'),
93
- redirect_uri: params.get('redirect_uri'),
94
- client_id: params.get('client_id'),
95
- code_verifier: params.get('code_verifier')
96
- };
97
- const result = await this.oauthProvider.handleTokenRequest(tokenRequest);
98
- if ('error' in result) {
99
- res.writeHead(400, { 'Content-Type': 'application/json' });
100
- res.end(JSON.stringify(result));
101
- return;
102
- }
103
- res.writeHead(200, { 'Content-Type': 'application/json' });
104
- res.end(JSON.stringify(result));
105
- }
106
- handleCallback(url, res) {
107
- const code = url.searchParams.get('code');
108
- const state = url.searchParams.get('state');
109
- // Simple success page
110
- const html = `
111
- <!DOCTYPE html>
112
- <html>
113
- <head><title>Authorization Successful</title></head>
114
- <body>
115
- <h1>Authorization Successful!</h1>
116
- <p>You can now close this window.</p>
117
- <script>
118
- // Try to close the window (works if opened by script)
119
- try { window.close(); } catch(e) {}
120
-
121
- // Post message to parent if in iframe
122
- if (window.opener) {
123
- window.opener.postMessage({
124
- type: 'oauth_success',
125
- code: '${code}',
126
- state: '${state}'
127
- }, '*');
128
- }
129
- </script>
130
- </body>
131
- </html>
132
- `;
133
- res.writeHead(200, { 'Content-Type': 'text/html' });
134
- res.end(html);
135
- }
136
- sendUnauthorized(res) {
137
- res.writeHead(401, {
138
- 'Content-Type': 'application/json',
139
- 'WWW-Authenticate': 'Bearer realm="mcp", error="invalid_token"'
140
- });
141
- res.end(JSON.stringify({
142
- error: 'unauthorized',
143
- message: 'Valid access token required'
144
- }));
145
- }
146
- async getRequestBody(req) {
147
- return new Promise((resolve, reject) => {
148
- let body = '';
149
- req.on('data', chunk => body += chunk.toString());
150
- req.on('end', () => resolve(body));
151
- req.on('error', reject);
152
- });
153
- }
154
- listen(port, callback) {
155
- this.server.listen(port, callback);
156
- }
157
- close(callback) {
158
- this.server.close(callback);
159
- }
160
- }
@@ -1,54 +0,0 @@
1
- export interface OAuthConfig {
2
- enabled: boolean;
3
- clientId: string;
4
- clientSecret: string;
5
- redirectUri: string;
6
- authorizationUrl: string;
7
- tokenUrl: string;
8
- scope: string;
9
- issuer: string;
10
- }
11
- export interface AuthorizationServerMetadata {
12
- issuer: string;
13
- authorization_endpoint: string;
14
- token_endpoint: string;
15
- registration_endpoint?: string;
16
- revocation_endpoint?: string;
17
- jwks_uri?: string;
18
- response_types_supported: string[];
19
- grant_types_supported: string[];
20
- token_endpoint_auth_methods_supported: string[];
21
- code_challenge_methods_supported: string[];
22
- scopes_supported?: string[];
23
- }
24
- export interface TokenResponse {
25
- access_token: string;
26
- token_type: string;
27
- expires_in?: number;
28
- refresh_token?: string;
29
- scope?: string;
30
- }
31
- export interface AccessToken {
32
- sub: string;
33
- aud: string | string[];
34
- iss: string;
35
- exp: number;
36
- iat: number;
37
- scope?: string;
38
- }
39
- export interface AuthorizationRequest {
40
- response_type: 'code';
41
- client_id: string;
42
- redirect_uri: string;
43
- scope?: string;
44
- state?: string;
45
- code_challenge: string;
46
- code_challenge_method: 'S256';
47
- }
48
- export interface TokenRequest {
49
- grant_type: 'authorization_code';
50
- code: string;
51
- redirect_uri: string;
52
- client_id: string;
53
- code_verifier: string;
54
- }
@@ -1,2 +0,0 @@
1
- // OAuth 2.1 types for MCP authorization
2
- export {};
package/dist/setup.log DELETED
@@ -1,275 +0,0 @@
1
- 2025-08-21T08:55:05.547Z - ✅ Desktop Commander MCP v0.2.9 successfully added to Claude’s configuration.
2
- 2025-08-21T08:55:05.547Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
3
- 2025-08-21T08:55:08.757Z -
4
- ✅ Claude has been restarted automatically!
5
- 2025-08-21T08:55:08.778Z -
6
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
7
-
8
- 2025-08-21T08:55:08.779Z -
9
- The server is available as "desktop-commander" in Claude's MCP server list
10
- 2025-08-21T08:55:08.779Z - Future updates will install automatically — no need to run this setup again.
11
-
12
-
13
- 2025-08-21T08:55:08.779Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
14
-
15
-
16
- 2025-08-21T08:55:08.779Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
17
-
18
-
19
- 2025-08-21T08:55:08.779Z - or join our community: https://discord.com/invite/kQ27sNnZr7
20
-
21
-
22
- 2025-08-21T14:58:41.568Z - ✅ Desktop Commander MCP v0.2.9 successfully added to Claude’s configuration.
23
- 2025-08-21T14:58:41.568Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
24
- 2025-08-21T14:58:44.701Z -
25
- ✅ Claude has been restarted automatically!
26
- 2025-08-21T14:58:44.728Z -
27
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
28
-
29
- 2025-08-21T14:58:44.728Z -
30
- The server is available as "desktop-commander" in Claude's MCP server list
31
- 2025-08-21T14:58:44.728Z - Future updates will install automatically — no need to run this setup again.
32
-
33
-
34
- 2025-08-21T14:58:44.728Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
35
-
36
-
37
- 2025-08-21T14:58:44.728Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
38
-
39
-
40
- 2025-08-21T14:58:44.728Z - or join our community: https://discord.com/invite/kQ27sNnZr7
41
-
42
-
43
- 2025-08-21T15:01:40.796Z - ✅ Desktop Commander MCP v0.2.9 successfully added to Claude’s configuration.
44
- 2025-08-21T15:01:40.796Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
45
- 2025-08-21T15:01:43.911Z -
46
- ✅ Claude has been restarted automatically!
47
- 2025-08-21T15:01:43.932Z -
48
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
49
-
50
- 2025-08-21T15:01:43.932Z -
51
- The server is available as "desktop-commander" in Claude's MCP server list
52
- 2025-08-21T15:01:43.932Z - Future updates will install automatically — no need to run this setup again.
53
-
54
-
55
- 2025-08-21T15:01:43.932Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
56
-
57
-
58
- 2025-08-21T15:01:43.932Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
59
-
60
-
61
- 2025-08-21T15:01:43.932Z - or join our community: https://discord.com/invite/kQ27sNnZr7
62
-
63
-
64
- 2025-10-22T15:22:43.506Z - ✅ Desktop Commander MCP v0.2.18-alpha.6 successfully added to Claude’s configuration.
65
- 2025-10-22T15:22:43.507Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
66
- 2025-10-22T15:22:46.639Z -
67
- ✅ Claude has been restarted automatically!
68
- 2025-10-22T15:22:46.664Z -
69
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
70
-
71
- 2025-10-22T15:22:46.664Z -
72
- The server is available as "desktop-commander" in Claude's MCP server list
73
- 2025-10-22T15:22:46.665Z - Future updates will install automatically — no need to run this setup again.
74
-
75
-
76
- 2025-10-22T15:22:46.665Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
77
-
78
-
79
- 2025-10-22T15:22:46.665Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
80
-
81
-
82
- 2025-10-22T15:22:46.665Z - or join our community: https://discord.com/invite/kQ27sNnZr7
83
-
84
-
85
- 2025-10-23T10:10:37.029Z - ✅ Desktop Commander MCP v0.2.18-alpha.13 successfully added to Claude’s configuration.
86
- 2025-10-23T10:10:37.030Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
87
- 2025-10-23T10:10:40.163Z -
88
- ✅ Claude has been restarted automatically!
89
- 2025-10-23T10:10:40.184Z -
90
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
91
-
92
- 2025-10-23T10:10:40.184Z -
93
- The server is available as "desktop-commander" in Claude's MCP server list
94
- 2025-10-23T10:10:40.184Z - Future updates will install automatically — no need to run this setup again.
95
-
96
-
97
- 2025-10-23T10:10:40.184Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
98
-
99
-
100
- 2025-10-23T10:10:40.184Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
101
-
102
-
103
- 2025-10-23T10:10:40.184Z - or join our community: https://discord.com/invite/kQ27sNnZr7
104
-
105
-
106
- 2025-10-23T10:11:28.520Z - ✅ Desktop Commander MCP v0.2.18-alpha.13 successfully added to Claude’s configuration.
107
- 2025-10-23T10:11:28.520Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
108
- 2025-10-23T10:11:31.626Z -
109
- ✅ Claude has been restarted automatically!
110
- 2025-10-23T10:11:31.645Z -
111
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
112
-
113
- 2025-10-23T10:11:31.645Z -
114
- The server is available as "desktop-commander" in Claude's MCP server list
115
- 2025-10-23T10:11:31.645Z - Future updates will install automatically — no need to run this setup again.
116
-
117
-
118
- 2025-10-23T10:11:31.645Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
119
-
120
-
121
- 2025-10-23T10:11:31.645Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
122
-
123
-
124
- 2025-10-23T10:11:31.645Z - or join our community: https://discord.com/invite/kQ27sNnZr7
125
-
126
-
127
- 2025-10-23T10:19:51.580Z - ✅ Desktop Commander MCP v0.2.18-alpha.13 successfully added to Claude’s configuration.
128
- 2025-10-23T10:19:51.580Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
129
- 2025-10-23T10:19:54.733Z -
130
- ✅ Claude has been restarted automatically!
131
- 2025-10-23T10:19:54.755Z -
132
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
133
-
134
- 2025-10-23T10:19:54.755Z -
135
- The server is available as "desktop-commander" in Claude's MCP server list
136
- 2025-10-23T10:19:54.756Z - Future updates will install automatically — no need to run this setup again.
137
-
138
-
139
- 2025-10-23T10:19:54.756Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
140
-
141
-
142
- 2025-10-23T10:19:54.756Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
143
-
144
-
145
- 2025-10-23T10:19:54.756Z - or join our community: https://discord.com/invite/kQ27sNnZr7
146
-
147
-
148
- 2025-10-23T10:20:46.785Z - ✅ Desktop Commander MCP v0.2.18-alpha.13 successfully added to Claude’s configuration.
149
- 2025-10-23T10:20:46.785Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
150
- 2025-10-23T10:20:49.891Z -
151
- ✅ Claude has been restarted automatically!
152
- 2025-10-23T10:20:49.913Z -
153
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
154
-
155
- 2025-10-23T10:20:49.913Z -
156
- The server is available as "desktop-commander" in Claude's MCP server list
157
- 2025-10-23T10:20:49.913Z - Future updates will install automatically — no need to run this setup again.
158
-
159
-
160
- 2025-10-23T10:20:49.913Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
161
-
162
-
163
- 2025-10-23T10:20:49.913Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
164
-
165
-
166
- 2025-10-23T10:20:49.913Z - or join our community: https://discord.com/invite/kQ27sNnZr7
167
-
168
-
169
- 2025-10-23T10:23:37.739Z - ✅ Desktop Commander MCP v0.2.18-alpha.14 successfully added to Claude’s configuration.
170
- 2025-10-23T10:23:37.739Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
171
- 2025-10-23T10:23:40.846Z -
172
- ✅ Claude has been restarted automatically!
173
- 2025-10-23T10:23:40.867Z -
174
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
175
-
176
- 2025-10-23T10:23:40.867Z -
177
- The server is available as "desktop-commander" in Claude's MCP server list
178
- 2025-10-23T10:23:40.867Z - Future updates will install automatically — no need to run this setup again.
179
-
180
-
181
- 2025-10-23T10:23:40.867Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
182
-
183
-
184
- 2025-10-23T10:23:40.867Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
185
-
186
-
187
- 2025-10-23T10:23:40.867Z - or join our community: https://discord.com/invite/kQ27sNnZr7
188
-
189
-
190
- 2025-10-23T10:39:56.359Z - ✅ Desktop Commander MCP v0.2.18-alpha.15 successfully added to Claude’s configuration.
191
- 2025-10-23T10:39:56.360Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
192
- 2025-10-23T10:39:59.526Z -
193
- ✅ Claude has been restarted automatically!
194
- 2025-10-23T10:39:59.567Z -
195
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
196
-
197
- 2025-10-23T10:39:59.567Z -
198
- The server is available as "desktop-commander" in Claude's MCP server list
199
- 2025-10-23T10:39:59.567Z - Future updates will install automatically — no need to run this setup again.
200
-
201
-
202
- 2025-10-23T10:39:59.567Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
203
-
204
-
205
- 2025-10-23T10:39:59.567Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
206
-
207
-
208
- 2025-10-23T10:39:59.567Z - or join our community: https://discord.com/invite/kQ27sNnZr7
209
-
210
-
211
- 2025-10-23T10:57:55.850Z - ✅ Desktop Commander MCP v0.2.18-alpha.15 successfully added to Claude’s configuration.
212
- 2025-10-23T10:57:55.851Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
213
- 2025-10-23T10:57:59.008Z -
214
- ✅ Claude has been restarted automatically!
215
- 2025-10-23T10:57:59.051Z -
216
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
217
-
218
- 2025-10-23T10:57:59.052Z -
219
- The server is available as "desktop-commander" in Claude's MCP server list
220
- 2025-10-23T10:57:59.052Z - Future updates will install automatically — no need to run this setup again.
221
-
222
-
223
- 2025-10-23T10:57:59.052Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
224
-
225
-
226
- 2025-10-23T10:57:59.052Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
227
-
228
-
229
- 2025-10-23T10:57:59.052Z - or join our community: https://discord.com/invite/kQ27sNnZr7
230
-
231
-
232
- 2025-10-23T11:06:27.679Z - ERROR: Command args:
233
- 2025-10-23T11:06:32.852Z - ✅ Desktop Commander MCP v0.2.18-alpha.16 successfully added to Claude’s configuration.
234
- 2025-10-23T11:06:32.852Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
235
- 2025-10-23T11:06:36.008Z -
236
- ✅ Claude has been restarted automatically!
237
- 2025-10-23T11:06:36.050Z -
238
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
239
-
240
- 2025-10-23T11:06:36.050Z -
241
- The server is available as "desktop-commander" in Claude's MCP server list
242
- 2025-10-23T11:06:36.050Z - Future updates will install automatically — no need to run this setup again.
243
-
244
-
245
- 2025-10-23T11:06:36.050Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
246
-
247
-
248
- 2025-10-23T11:06:36.050Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
249
-
250
-
251
- 2025-10-23T11:06:36.050Z - or join our community: https://discord.com/invite/kQ27sNnZr7
252
-
253
-
254
- 2025-10-23T11:17:02.302Z - ERROR: Command args:
255
- 2025-10-23T11:17:02.385Z - ✅ Desktop Commander MCP v0.2.18-alpha.16 successfully added to Claude’s configuration.
256
- 2025-10-23T11:17:02.385Z - Configuration location: /Users/fiberta/Library/Application Support/Claude/claude_desktop_config.json
257
- 2025-10-23T11:17:05.568Z -
258
- ✅ Claude has been restarted automatically!
259
- 2025-10-23T11:17:05.612Z -
260
- ✅ Installation successfully completed! Thank you for using Desktop Commander!
261
-
262
- 2025-10-23T11:17:05.612Z -
263
- The server is available as "desktop-commander" in Claude's MCP server list
264
- 2025-10-23T11:17:05.612Z - Future updates will install automatically — no need to run this setup again.
265
-
266
-
267
- 2025-10-23T11:17:05.612Z - 🤔 Need help or have feedback? Happy to jump on a quick call:
268
-
269
-
270
- 2025-10-23T11:17:05.612Z - https://calendar.app.google/SHMNZN5MJznJWC5A7
271
-
272
-
273
- 2025-10-23T11:17:05.613Z - or join our community: https://discord.com/invite/kQ27sNnZr7
274
-
275
-
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // Test what argv looks like when called as a bin script
4
- console.log('=== Test Script Argv ===');
5
- console.log('process.argv:');
6
- process.argv.forEach((arg, index) => {
7
- console.log(` ${index}: "${arg}"`);
8
- });
9
-
10
- const versionArg2 = process.argv[2];
11
- const versionArg3 = process.argv[3];
12
-
13
- console.log('\nUsing argv[2]:', versionArg2);
14
- console.log('Using argv[3]:', versionArg3);
@@ -1 +0,0 @@
1
- export {};
@@ -1,3 +0,0 @@
1
- export {};
2
- // PDF processing is no longer needed - PDFs are handled like images as base64 documents
3
- // This file is kept for potential future enhancements but currently unused
@@ -1,32 +0,0 @@
1
- export interface SearchResult {
2
- file: string;
3
- line: number;
4
- match: string;
5
- }
6
- export declare function searchCode(options: {
7
- rootPath: string;
8
- pattern: string;
9
- filePattern?: string;
10
- ignoreCase?: boolean;
11
- maxResults?: number;
12
- includeHidden?: boolean;
13
- contextLines?: number;
14
- }): Promise<SearchResult[]>;
15
- export declare function searchCodeFallback(options: {
16
- rootPath: string;
17
- pattern: string;
18
- filePattern?: string;
19
- ignoreCase?: boolean;
20
- maxResults?: number;
21
- excludeDirs?: string[];
22
- contextLines?: number;
23
- }): Promise<SearchResult[]>;
24
- export declare function searchTextInFiles(options: {
25
- rootPath: string;
26
- pattern: string;
27
- filePattern?: string;
28
- ignoreCase?: boolean;
29
- maxResults?: number;
30
- includeHidden?: boolean;
31
- contextLines?: number;
32
- }): Promise<SearchResult[]>;