@elliotding/ai-agent-mcp 0.1.6 → 0.1.8

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.
@@ -2,7 +2,7 @@
2
2
  "client_version": "0.1.5",
3
3
  "users": {
4
4
  "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJDU1BfTUNQX0FVVEgiLCJpc3MiOiJjbGllbnQtc2VydmljZS1wbGF0Zm9ybSIsImlhdCI6MTc3MjA3NjIxNSwiZW1haWwiOiJlbGxpb3QuZGluZ0B6b29tLnVzIn0.xw7Np0MynXqhL4ay_vN1v5Ac332aga0tgybPQsC7WMc": {
5
- "last_reported_at": "2026-03-25T05:35:45.923Z",
5
+ "last_reported_at": "2026-03-25T07:31:26.637Z",
6
6
  "pending_events": [],
7
7
  "subscribed_rules": [],
8
8
  "configured_mcps": [
@@ -47,6 +47,22 @@ declare class MultiSourceGitManager {
47
47
  * Sync all enabled sources
48
48
  */
49
49
  syncAllSources(): Promise<SyncResult[]>;
50
+ /**
51
+ * Read the files for a named Command or Skill resource from the local git
52
+ * checkout. Used when the CSP API download returns an empty `files` array
53
+ * (which is expected for Command/Skill resources in MCP Prompt mode — the
54
+ * API only stores metadata; actual file content lives in the git repo).
55
+ *
56
+ * Searches all enabled sources in priority order and returns the first match.
57
+ *
58
+ * @param resourceName The resource name as returned by the subscriptions API.
59
+ * @param resourceType 'command' | 'skill'
60
+ * @returns Array of { path, content } file entries, or [] when not found.
61
+ */
62
+ readResourceFiles(resourceName: string, resourceType: 'command' | 'skill'): Promise<Array<{
63
+ path: string;
64
+ content: string;
65
+ }>>;
50
66
  /**
51
67
  * Check status of all sources without pulling
52
68
  */
@@ -1 +1 @@
1
- {"version":3,"file":"multi-source-manager.d.ts","sourceRoot":"","sources":["../../src/git/multi-source-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8BH,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,qBAAqB;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM;IAK3B;;OAEG;YACW,UAAU;IASxB;;OAEG;YACW,iBAAiB;IAe/B;;OAEG;YACW,gBAAgB;IAU9B;;OAEG;YACW,UAAU;IAWxB;;OAEG;YACW,eAAe;IAwB7B;;;;;OAKG;YACW,cAAc;IA+C5B;;OAEG;YACW,UAAU;IAgExB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAyC7C;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;QACrC,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC,CAAC;CAuBJ;AAID,eAAO,MAAM,qBAAqB,uBAA+C,CAAC"}
1
+ {"version":3,"file":"multi-source-manager.d.ts","sourceRoot":"","sources":["../../src/git/multi-source-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8BH,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,qBAAqB;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM;IAK3B;;OAEG;YACW,UAAU;IASxB;;OAEG;YACW,iBAAiB;IAe/B;;OAEG;YACW,gBAAgB;IAU9B;;OAEG;YACW,UAAU;IAWxB;;OAEG;YACW,eAAe;IAwB7B;;;;;OAKG;YACW,cAAc;IA+C5B;;OAEG;YACW,UAAU;IAgExB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAyC7C;;;;;;;;;;;OAWG;IACG,iBAAiB,CACrB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,SAAS,GAAG,OAAO,GAChC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAqDpD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;QACrC,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC,CAAC;CAuBJ;AAID,eAAO,MAAM,qBAAqB,uBAA+C,CAAC"}
@@ -264,6 +264,58 @@ class MultiSourceGitManager {
264
264
  }, 'Multi-source sync completed');
265
265
  return results;
266
266
  }
267
+ /**
268
+ * Read the files for a named Command or Skill resource from the local git
269
+ * checkout. Used when the CSP API download returns an empty `files` array
270
+ * (which is expected for Command/Skill resources in MCP Prompt mode — the
271
+ * API only stores metadata; actual file content lives in the git repo).
272
+ *
273
+ * Searches all enabled sources in priority order and returns the first match.
274
+ *
275
+ * @param resourceName The resource name as returned by the subscriptions API.
276
+ * @param resourceType 'command' | 'skill'
277
+ * @returns Array of { path, content } file entries, or [] when not found.
278
+ */
279
+ async readResourceFiles(resourceName, resourceType) {
280
+ const sources = await this.getEnabledSources();
281
+ // Sort by priority descending so higher-priority sources win.
282
+ sources.sort((a, b) => b.priority - a.priority);
283
+ const typeDir = resourceType === 'command' ? 'commands' : 'skills';
284
+ for (const source of sources) {
285
+ const sourcePath = path.join(this.baseDir, source.path);
286
+ const resourcesSubDir = source.resources[typeDir];
287
+ const resourceDir = path.join(sourcePath, resourcesSubDir, resourceName);
288
+ const resourceFile = path.join(sourcePath, resourcesSubDir, `${resourceName}.md`);
289
+ // Try directory-based layout first (e.g. skills/<name>/SKILL.md)
290
+ try {
291
+ const stat = await fs.stat(resourceDir);
292
+ if (stat.isDirectory()) {
293
+ const entries = await fs.readdir(resourceDir);
294
+ const mdFiles = entries.filter((f) => f.endsWith('.md') || f.endsWith('.mdc'));
295
+ if (mdFiles.length > 0) {
296
+ const results = [];
297
+ for (const f of mdFiles) {
298
+ const filePath = path.join(resourceDir, f);
299
+ const content = await fs.readFile(filePath, 'utf-8');
300
+ results.push({ path: f, content });
301
+ }
302
+ logger_1.logger.debug({ source: source.name, resourceName, resourceType, fileCount: results.length }, 'readResourceFiles: found files in directory layout');
303
+ return results;
304
+ }
305
+ }
306
+ }
307
+ catch { /* not a directory or doesn't exist — try flat file */ }
308
+ // Try flat file layout (e.g. commands/<name>.md)
309
+ try {
310
+ const content = await fs.readFile(resourceFile, 'utf-8');
311
+ logger_1.logger.debug({ source: source.name, resourceName, resourceType, filePath: resourceFile }, 'readResourceFiles: found flat file');
312
+ return [{ path: `${resourceName}.md`, content }];
313
+ }
314
+ catch { /* not found in this source — try next */ }
315
+ }
316
+ logger_1.logger.warn({ resourceName, resourceType }, 'readResourceFiles: resource not found in any git source');
317
+ return [];
318
+ }
267
319
  /**
268
320
  * Check status of all sources without pulling
269
321
  */
@@ -1 +1 @@
1
- {"version":3,"file":"multi-source-manager.js","sourceRoot":"","sources":["../../src/git/multi-source-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-source-manager.js","sourceRoot":"","sources":["../../src/git/multi-source-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAgB,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAuBjF,OAAO,EAAiB,KAAK,YAAY,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,aAAa,CAA8B;IAEnD,mDAAmD;IACnD,OAAO,CAAC,aAAa,CAA8C;gBAEvD,YAAY,CAAC,EAAE,YAAY;IAkBvC,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,WAAW;IAsCnB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAgGvB;;;OAGG;YACW,mBAAmB;IA0FjC;;;OAGG;YACW,aAAa;YAmCb,YAAY;IA6CpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B,UAAU,IAAI,eAAe;IAI7B,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;CAIlD;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAgB,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAuBjF,OAAO,EAAiB,KAAK,YAAY,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,aAAa,CAA8B;IAEnD,mDAAmD;IACnD,OAAO,CAAC,aAAa,CAA8C;gBAEvD,YAAY,CAAC,EAAE,YAAY;IAkBvC,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,WAAW;IAsCnB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAkHvB;;;OAGG;YACW,mBAAmB;IA0FjC;;;OAGG;YACW,aAAa;YAmCb,YAAY;IA6CpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B,UAAU,IAAI,eAAe;IAI7B,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;CAIlD;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
@@ -104,9 +104,11 @@ class HTTPServer {
104
104
  */
105
105
  createMcpServer(userId, email, groups, userToken) {
106
106
  const server = new index_js_1.Server({ name: 'csp-ai-agent-mcp', version: '0.2.0' },
107
- // Declare resources capability so Cursor does not emit "Method not found"
108
- // when it probes prompt:// URIs via the resources/read protocol.
109
- { capabilities: { tools: {}, prompts: {}, resources: {} } });
107
+ // Declare resources + logging capabilities.
108
+ // - resources: prevents "Method not found" when Cursor probes prompt:// URIs.
109
+ // - logging: allows server.sendLoggingMessage() so we can push local-action
110
+ // instructions to the AI after the background auto-sync completes.
111
+ { capabilities: { tools: {}, prompts: {}, resources: {}, logging: {} } });
110
112
  // Install Prompt list/get handlers synchronously on this Server instance.
111
113
  // Pass userToken so GetPrompt can attribute telemetry to the correct user.
112
114
  index_js_3.promptManager.installHandlers(server, userToken);
@@ -132,9 +134,25 @@ class HTTPServer {
132
134
  // Flush any pending telemetry immediately on (re)connect so events from
133
135
  // before a disconnect are not held until the next 10-second tick.
134
136
  index_js_2.telemetry.flushOnReconnect();
135
- (0, sync_resources_js_1.syncResources)({ mode: 'incremental', scope: 'global', user_token: userToken }).then((result) => {
137
+ (0, sync_resources_js_1.syncResources)({ mode: 'incremental', scope: 'global', user_token: userToken }).then(async (result) => {
136
138
  if (result.success) {
137
139
  logger_1.logger.info({ userId, synced: result.data?.summary?.synced, cached: result.data?.summary?.cached }, 'Auto sync_resources on connect completed');
140
+ // If the sync result includes local_actions_required (e.g. Rule files or
141
+ // MCP entries that must be written on the user's local machine), push a
142
+ // structured logging message so the Cursor AI Agent can see and execute them.
143
+ const actions = result.data?.local_actions_required;
144
+ if (actions && actions.length > 0) {
145
+ const msg = `[CSP AI Agent] Auto-sync completed with ${actions.length} local action(s) pending.\n` +
146
+ `Please execute ALL of the following actions on the user's local machine:\n\n` +
147
+ JSON.stringify(actions, null, 2);
148
+ try {
149
+ await server.sendLoggingMessage({ level: 'info', data: msg });
150
+ logger_1.logger.info({ userId, actionCount: actions.length }, 'Pushed local_actions_required to AI via logging notification');
151
+ }
152
+ catch (notifyErr) {
153
+ logger_1.logger.warn({ userId, err: notifyErr }, 'Failed to push local_actions notification to AI');
154
+ }
155
+ }
138
156
  }
139
157
  else {
140
158
  logger_1.logger.warn({ userId, error: result.error }, 'Auto sync_resources on connect failed');
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-resources.d.ts","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAEV,mBAAmB,EAGnB,UAAU,EACX,MAAM,gBAAgB,CAAC;AAsBxB,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CA+d7F;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC7B,CAAC"}
1
+ {"version":3,"file":"sync-resources.d.ts","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAEV,mBAAmB,EAEnB,UAAU,EACX,MAAM,gBAAgB,CAAC;AAsBxB,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CA4c7F;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC7B,CAAC"}
@@ -186,18 +186,34 @@ async function syncResources(params) {
186
186
  fileCount: downloadResult.files.length,
187
187
  duration: Date.now() - tDl,
188
188
  });
189
+ // When the API returns no files (expected for Command/Skill in MCP Prompt
190
+ // mode — content lives in the server-side git repo, not the API), fall back
191
+ // to reading the files directly from the local git checkout.
192
+ let sourceFiles = downloadResult.files;
193
+ if (sourceFiles.length === 0) {
194
+ sourceFiles = await multi_source_manager_1.multiSourceGitManager.readResourceFiles(sub.name, sub.type);
195
+ if (sourceFiles.length > 0) {
196
+ (0, logger_1.logToolStep)('sync_resources', 'Loaded resource files from local git checkout', {
197
+ resourceId: sub.id,
198
+ fileCount: sourceFiles.length,
199
+ });
200
+ }
201
+ else {
202
+ logger_1.logger.warn({ resourceId: sub.id, resourceName: sub.name }, 'No files found via API or local git — prompt will have empty content');
203
+ }
204
+ }
189
205
  // Primary Markdown content selection:
190
206
  // - skill: prefer SKILL.md (canonical entrypoint for all skill content)
191
207
  // - command: prefer the file whose name matches the resource name
192
208
  // - fallback: first .md file, then first file of any type
193
209
  const isSkill = sub.type === 'skill';
194
210
  const primaryFile = isSkill
195
- ? (downloadResult.files.find((f) => path.basename(f.path) === 'SKILL.md') ??
196
- downloadResult.files.find((f) => f.path.endsWith('.md')) ??
197
- downloadResult.files[0])
198
- : (downloadResult.files.find((f) => path.basename(f.path).replace(/\.md$/, '') === sub.name) ??
199
- downloadResult.files.find((f) => f.path.endsWith('.md')) ??
200
- downloadResult.files[0]);
211
+ ? (sourceFiles.find((f) => path.basename(f.path) === 'SKILL.md') ??
212
+ sourceFiles.find((f) => f.path.endsWith('.md')) ??
213
+ sourceFiles[0])
214
+ : (sourceFiles.find((f) => path.basename(f.path).replace(/\.md$/, '') === sub.name) ??
215
+ sourceFiles.find((f) => f.path.endsWith('.md')) ??
216
+ sourceFiles[0]);
201
217
  const rawContent = primaryFile?.content ?? '';
202
218
  // Extract description from frontmatter (---\ndescription: ...\n---)
203
219
  // falling back to the subscription's description field or resource name.
@@ -240,9 +256,6 @@ async function syncResources(params) {
240
256
  continue;
241
257
  }
242
258
  // Download all files for this resource from the CSP server.
243
- // We always download first so we can inspect the payload and determine
244
- // whether this is a remote-URL-only MCP (Format B: config-only, no
245
- // local files needed) before deciding what to write locally.
246
259
  (0, logger_1.logToolStep)('sync_resources', 'Downloading resource', {
247
260
  resourceId: sub.id,
248
261
  resourceType: sub.type,
@@ -254,62 +267,119 @@ async function syncResources(params) {
254
267
  fileCount: downloadResult.files.length,
255
268
  duration: Date.now() - tDl,
256
269
  });
257
- // Detect remote-URL-only MCP: the payload contains exactly one file
258
- // named mcp-config.json whose JSON has no "command" field (Format B).
259
- // These servers are deployed remotely no local files are needed.
260
- // We only need to update the user's ~/.cursor/mcp.json.
261
- let isRemoteUrlMcp = false;
262
- const firstFile = downloadResult.files[0];
263
- if (sub.type === 'mcp' && downloadResult.files.length === 1
264
- && firstFile !== undefined
265
- && path.basename(firstFile.path) === 'mcp-config.json') {
266
- try {
267
- const parsed = JSON.parse(firstFile.content);
268
- if (typeof parsed['command'] !== 'string') {
269
- isRemoteUrlMcp = true;
270
- }
270
+ // When the API returns no files (expected when the MCP server is deployed
271
+ // remotely and content lives in the server-side git repo), fall back to
272
+ // reading the files directly from the local git checkout.
273
+ let resourceFiles = downloadResult.files;
274
+ if (resourceFiles.length === 0) {
275
+ const gitType = sub.type;
276
+ const gitFiles = await multi_source_manager_1.multiSourceGitManager.readResourceFiles(sub.name, gitType);
277
+ if (gitFiles.length > 0) {
278
+ resourceFiles = gitFiles;
279
+ (0, logger_1.logToolStep)('sync_resources', 'Loaded resource files from local git checkout', {
280
+ resourceId: sub.id,
281
+ fileCount: resourceFiles.length,
282
+ });
283
+ }
284
+ else {
285
+ logger_1.logger.warn({ resourceId: sub.id, resourceName: sub.name, type: sub.type }, 'No files found via API or local git — skipping resource');
286
+ tally.failed++;
287
+ details.push({ id: sub.id, name: sub.name, action: 'failed', version: resourceVersion });
288
+ continue;
271
289
  }
272
- catch { /* malformed JSON — treat as normal MCP */ }
273
290
  }
274
- if (isRemoteUrlMcp) {
275
- // Remote-URL MCP (Format B): no local files needed.
276
- // Return a merge_mcp_json action so the AI updates ~/.cursor/mcp.json
277
- // on the user's LOCAL machine, not on this (possibly remote) server.
278
- const configContent = firstFile.content;
291
+ // ── MCP resource ──────────────────────────────────────────────────────
292
+ // Read mcp-config.json to determine Format A (local executable, has
293
+ // "command" field) vs Format B (remote URL map, no "command" field).
294
+ if (sub.type === 'mcp') {
295
+ const mcpConfigFile = resourceFiles.find((f) => path.basename(f.path) === 'mcp-config.json');
279
296
  const mcpJsonPath = path.join((0, cursor_paths_1.getCursorRootDir)(), 'mcp.json');
280
- const entries = JSON.parse(configContent);
281
- for (const [serverName, entry] of Object.entries(entries)) {
282
- const e = entry;
283
- const env = (e['env'] ?? {});
284
- const missingEnv = Object.entries(env)
285
- .filter(([, v]) => v === '')
286
- .map(([k]) => k);
287
- const action = {
297
+ if (mcpConfigFile) {
298
+ let cfg = {};
299
+ try {
300
+ cfg = JSON.parse(mcpConfigFile.content);
301
+ }
302
+ catch { /* malformed cfg stays empty */ }
303
+ if (typeof cfg['command'] === 'string') {
304
+ // ── Format A: local executable ──────────────────────────────────
305
+ // Queue write_file for each resource file + merge_mcp_json for entry.
306
+ const installDir = path.join((0, cursor_paths_1.getCursorTypeDir)('mcp'), sub.name);
307
+ for (const file of resourceFiles) {
308
+ const normalised = path.normalize(file.path);
309
+ if (normalised.startsWith('..'))
310
+ continue;
311
+ localActions.push({ action: 'write_file', path: path.join(installDir, normalised), content: file.content });
312
+ }
313
+ const env = (cfg['env'] ?? {});
314
+ const missingEnv = Object.entries(env).filter(([, v]) => v === '').map(([k]) => k);
315
+ // Resolve relative args to the install directory.
316
+ const looksLikePath = (a) => a.startsWith('./') || a.startsWith('../') || a.includes(path.sep) || /\.\w+$/.test(a);
317
+ const args = (cfg['args'] ?? []).map((a) => path.isAbsolute(a) || !looksLikePath(a) ? a : path.join(installDir, a));
318
+ localActions.push({
319
+ action: 'merge_mcp_json',
320
+ mcp_json_path: mcpJsonPath,
321
+ server_name: cfg['name'] ?? sub.name,
322
+ entry: { ...cfg, args },
323
+ ...(missingEnv.length > 0 ? {
324
+ missing_env: missingEnv,
325
+ setup_hint: `Fill in env vars in ${mcpJsonPath} under mcpServers["${sub.name}"]: ${missingEnv.join(', ')}.`,
326
+ } : {}),
327
+ });
328
+ (0, logger_1.logToolStep)('sync_resources', 'Local-executable MCP: write_file + merge_mcp_json queued', { resourceId: sub.id });
329
+ }
330
+ else {
331
+ // ── Format B: remote URL map ────────────────────────────────────
332
+ // cfg IS the mcpServers map; one merge_mcp_json action per key.
333
+ for (const [serverName, entry] of Object.entries(cfg)) {
334
+ const e = entry;
335
+ const env = (e['env'] ?? {});
336
+ const missingEnv = Object.entries(env).filter(([, v]) => v === '').map(([k]) => k);
337
+ localActions.push({
338
+ action: 'merge_mcp_json',
339
+ mcp_json_path: mcpJsonPath,
340
+ server_name: serverName,
341
+ entry: e,
342
+ ...(missingEnv.length > 0 ? {
343
+ missing_env: missingEnv,
344
+ setup_hint: `Fill in env vars in ${mcpJsonPath} under mcpServers["${serverName}"]: ${missingEnv.join(', ')}.`,
345
+ } : {}),
346
+ });
347
+ }
348
+ (0, logger_1.logToolStep)('sync_resources', 'Remote-URL MCP: merge_mcp_json queued', {
349
+ resourceId: sub.id, serverKeys: Object.keys(cfg),
350
+ });
351
+ }
352
+ }
353
+ else {
354
+ // No mcp-config.json: heuristic fallback — find entry point file.
355
+ const installDir = path.join((0, cursor_paths_1.getCursorTypeDir)('mcp'), sub.name);
356
+ for (const file of resourceFiles) {
357
+ const normalised = path.normalize(file.path);
358
+ if (normalised.startsWith('..'))
359
+ continue;
360
+ localActions.push({ action: 'write_file', path: path.join(installDir, normalised), content: file.content });
361
+ }
362
+ const jsEntry = resourceFiles.find((f) => f.path.endsWith('.js'));
363
+ const pyEntry = resourceFiles.find((f) => f.path.endsWith('.py'));
364
+ const entryFile = jsEntry ?? pyEntry ?? resourceFiles[0];
365
+ const cmd = jsEntry ? 'node' : 'python3';
366
+ localActions.push({
288
367
  action: 'merge_mcp_json',
289
- mcp_json_path: mcpJsonPath,
290
- server_name: serverName,
291
- entry: e,
292
- ...(missingEnv.length > 0 ? {
293
- missing_env: missingEnv,
294
- setup_hint: `Fill in the following environment variables in ${mcpJsonPath} ` +
295
- `under mcpServers["${serverName}"]: ${missingEnv.join(', ')}.`,
296
- } : {}),
297
- };
298
- localActions.push(action);
368
+ mcp_json_path: path.join((0, cursor_paths_1.getCursorRootDir)(), 'mcp.json'),
369
+ server_name: sub.name,
370
+ entry: { command: cmd, args: [path.join(installDir, entryFile?.path ?? '')] },
371
+ });
372
+ (0, logger_1.logToolStep)('sync_resources', 'MCP heuristic fallback: write_file + merge_mcp_json queued', { resourceId: sub.id });
299
373
  }
300
374
  tally.synced++;
301
375
  details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
302
- (0, logger_1.logToolStep)('sync_resources', 'Remote-URL MCP: merge_mcp_json action queued for AI', {
303
- resourceId: sub.id,
304
- serverKeys: Object.keys(entries),
305
- });
306
376
  continue;
307
377
  }
308
378
  // ── Rule resource ─────────────────────────────────────────────────────
309
379
  // Return write_file actions; the AI writes the files locally.
310
380
  if (sub.type === 'rule') {
311
381
  const typeDir = (0, cursor_paths_1.getCursorTypeDir)(sub.type);
312
- for (const file of downloadResult.files) {
382
+ for (const file of resourceFiles) {
313
383
  const normalised = path.normalize(file.path);
314
384
  if (normalised.startsWith('..')) {
315
385
  logger_1.logger.warn({ resourceId: sub.id, filePath: file.path }, 'Skipping suspicious file path');
@@ -325,95 +395,7 @@ async function syncResources(params) {
325
395
  details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
326
396
  (0, logger_1.logToolStep)('sync_resources', 'Rule: write_file actions queued for AI', {
327
397
  resourceId: sub.id,
328
- fileCount: downloadResult.files.length,
329
- });
330
- continue;
331
- }
332
- // ── Local-executable MCP resource (Format A — has "command" field) ───
333
- // Return write_file + merge_mcp_json actions; the AI performs them locally.
334
- if (sub.type === 'mcp') {
335
- const typeDir = (0, cursor_paths_1.getCursorTypeDir)(sub.type);
336
- const installDir = path.join(typeDir, sub.name);
337
- // Queue file writes.
338
- for (const file of downloadResult.files) {
339
- const normalised = path.normalize(file.path);
340
- if (normalised.startsWith('..')) {
341
- logger_1.logger.warn({ resourceId: sub.id, filePath: file.path }, 'Skipping suspicious file path');
342
- continue;
343
- }
344
- localActions.push({
345
- action: 'write_file',
346
- path: path.join(installDir, normalised),
347
- content: file.content,
348
- });
349
- }
350
- // Build the mcp.json entry from the downloaded descriptor.
351
- // We replicate the Format-A detection logic from registerMcpServer()
352
- // but without touching the server filesystem.
353
- const mcpJsonPath = path.join((0, cursor_paths_1.getCursorRootDir)(), 'mcp.json');
354
- let mcpEntry = {};
355
- let missingEnv = [];
356
- let setupHint;
357
- let setupDoc;
358
- const descriptorFile = downloadResult.files.find((f) => path.basename(f.path) === 'mcp-config.json');
359
- if (descriptorFile) {
360
- try {
361
- const cfg = JSON.parse(descriptorFile.content);
362
- if (typeof cfg['command'] === 'string') {
363
- // Format A: single-server descriptor
364
- mcpEntry = cfg;
365
- }
366
- else {
367
- // Format B disguised as local — treat whole object as entries map
368
- mcpEntry = cfg;
369
- }
370
- }
371
- catch { /* malformed — leave entry empty */ }
372
- }
373
- // Detect missing env vars.
374
- const envBlock = (mcpEntry['env'] ?? {});
375
- missingEnv = Object.entries(envBlock).filter(([, v]) => v === '').map(([k]) => k);
376
- if (missingEnv.length > 0) {
377
- setupHint =
378
- `Fill in the following environment variables in ${mcpJsonPath} ` +
379
- `under mcpServers["${sub.name}"]: ${missingEnv.join(', ')}.`;
380
- }
381
- // Check for a setup doc among downloaded files.
382
- const readmeFile = downloadResult.files.find((f) => /readme/i.test(path.basename(f.path)) && f.path.endsWith('.md'));
383
- if (readmeFile) {
384
- setupDoc = path.join(installDir, readmeFile.path);
385
- }
386
- const mergeMcpAction = {
387
- action: 'merge_mcp_json',
388
- mcp_json_path: mcpJsonPath,
389
- server_name: sub.name,
390
- entry: Object.keys(mcpEntry).length > 0 ? mcpEntry : {
391
- // Fallback: auto-detect entry point from file list.
392
- command: (() => {
393
- const jsEntry = downloadResult.files.find((f) => f.path.endsWith('.js'));
394
- const pyEntry = downloadResult.files.find((f) => f.path.endsWith('.py'));
395
- if (jsEntry)
396
- return 'node';
397
- if (pyEntry)
398
- return 'python3';
399
- return 'node';
400
- })(),
401
- args: [(() => {
402
- const jsEntry = downloadResult.files.find((f) => f.path.endsWith('.js'));
403
- const pyEntry = downloadResult.files.find((f) => f.path.endsWith('.py'));
404
- const entryFile = jsEntry ?? pyEntry ?? downloadResult.files[0];
405
- return path.join(installDir, entryFile?.path ?? '');
406
- })()],
407
- },
408
- ...(missingEnv.length > 0 ? { missing_env: missingEnv, setup_hint: setupHint } : {}),
409
- ...(setupDoc ? { setup_doc: setupDoc } : {}),
410
- };
411
- localActions.push(mergeMcpAction);
412
- tally.synced++;
413
- details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
414
- (0, logger_1.logToolStep)('sync_resources', 'Local-executable MCP: write_file + merge_mcp_json actions queued for AI', {
415
- resourceId: sub.id,
416
- fileCount: downloadResult.files.length,
398
+ fileCount: resourceFiles.length,
417
399
  });
418
400
  continue;
419
401
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync-resources.js","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-resources.js","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliotding/ai-agent-mcp",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "CSP AI Agent MCP Server - Centralized AI tools distribution and management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -295,6 +295,74 @@ class MultiSourceGitManager {
295
295
  return results;
296
296
  }
297
297
 
298
+ /**
299
+ * Read the files for a named Command or Skill resource from the local git
300
+ * checkout. Used when the CSP API download returns an empty `files` array
301
+ * (which is expected for Command/Skill resources in MCP Prompt mode — the
302
+ * API only stores metadata; actual file content lives in the git repo).
303
+ *
304
+ * Searches all enabled sources in priority order and returns the first match.
305
+ *
306
+ * @param resourceName The resource name as returned by the subscriptions API.
307
+ * @param resourceType 'command' | 'skill'
308
+ * @returns Array of { path, content } file entries, or [] when not found.
309
+ */
310
+ async readResourceFiles(
311
+ resourceName: string,
312
+ resourceType: 'command' | 'skill',
313
+ ): Promise<Array<{ path: string; content: string }>> {
314
+ const sources = await this.getEnabledSources();
315
+ // Sort by priority descending so higher-priority sources win.
316
+ sources.sort((a, b) => b.priority - a.priority);
317
+
318
+ const typeDir = resourceType === 'command' ? 'commands' : 'skills';
319
+
320
+ for (const source of sources) {
321
+ const sourcePath = path.join(this.baseDir, source.path);
322
+ const resourcesSubDir = source.resources[typeDir as keyof typeof source.resources];
323
+ const resourceDir = path.join(sourcePath, resourcesSubDir, resourceName);
324
+ const resourceFile = path.join(sourcePath, resourcesSubDir, `${resourceName}.md`);
325
+
326
+ // Try directory-based layout first (e.g. skills/<name>/SKILL.md)
327
+ try {
328
+ const stat = await fs.stat(resourceDir);
329
+ if (stat.isDirectory()) {
330
+ const entries = await fs.readdir(resourceDir);
331
+ const mdFiles = entries.filter((f) => f.endsWith('.md') || f.endsWith('.mdc'));
332
+ if (mdFiles.length > 0) {
333
+ const results: Array<{ path: string; content: string }> = [];
334
+ for (const f of mdFiles) {
335
+ const filePath = path.join(resourceDir, f);
336
+ const content = await fs.readFile(filePath, 'utf-8');
337
+ results.push({ path: f, content });
338
+ }
339
+ logger.debug(
340
+ { source: source.name, resourceName, resourceType, fileCount: results.length },
341
+ 'readResourceFiles: found files in directory layout',
342
+ );
343
+ return results;
344
+ }
345
+ }
346
+ } catch { /* not a directory or doesn't exist — try flat file */ }
347
+
348
+ // Try flat file layout (e.g. commands/<name>.md)
349
+ try {
350
+ const content = await fs.readFile(resourceFile, 'utf-8');
351
+ logger.debug(
352
+ { source: source.name, resourceName, resourceType, filePath: resourceFile },
353
+ 'readResourceFiles: found flat file',
354
+ );
355
+ return [{ path: `${resourceName}.md`, content }];
356
+ } catch { /* not found in this source — try next */ }
357
+ }
358
+
359
+ logger.warn(
360
+ { resourceName, resourceType },
361
+ 'readResourceFiles: resource not found in any git source',
362
+ );
363
+ return [];
364
+ }
365
+
298
366
  /**
299
367
  * Check status of all sources without pulling
300
368
  */
@@ -152,9 +152,11 @@ export class HTTPServer {
152
152
  private createMcpServer(userId?: string, email?: string, groups?: string[], userToken?: string): Server {
153
153
  const server = new Server(
154
154
  { name: 'csp-ai-agent-mcp', version: '0.2.0' },
155
- // Declare resources capability so Cursor does not emit "Method not found"
156
- // when it probes prompt:// URIs via the resources/read protocol.
157
- { capabilities: { tools: {}, prompts: {}, resources: {} } }
155
+ // Declare resources + logging capabilities.
156
+ // - resources: prevents "Method not found" when Cursor probes prompt:// URIs.
157
+ // - logging: allows server.sendLoggingMessage() so we can push local-action
158
+ // instructions to the AI after the background auto-sync completes.
159
+ { capabilities: { tools: {}, prompts: {}, resources: {}, logging: {} } }
158
160
  );
159
161
 
160
162
  // Install Prompt list/get handlers synchronously on this Server instance.
@@ -186,12 +188,28 @@ export class HTTPServer {
186
188
  // Flush any pending telemetry immediately on (re)connect so events from
187
189
  // before a disconnect are not held until the next 10-second tick.
188
190
  telemetry.flushOnReconnect();
189
- syncResources({ mode: 'incremental', scope: 'global', user_token: userToken }).then((result) => {
191
+ syncResources({ mode: 'incremental', scope: 'global', user_token: userToken }).then(async (result) => {
190
192
  if (result.success) {
191
193
  logger.info(
192
194
  { userId, synced: result.data?.summary?.synced, cached: result.data?.summary?.cached },
193
195
  'Auto sync_resources on connect completed'
194
196
  );
197
+ // If the sync result includes local_actions_required (e.g. Rule files or
198
+ // MCP entries that must be written on the user's local machine), push a
199
+ // structured logging message so the Cursor AI Agent can see and execute them.
200
+ const actions = result.data?.local_actions_required;
201
+ if (actions && actions.length > 0) {
202
+ const msg =
203
+ `[CSP AI Agent] Auto-sync completed with ${actions.length} local action(s) pending.\n` +
204
+ `Please execute ALL of the following actions on the user's local machine:\n\n` +
205
+ JSON.stringify(actions, null, 2);
206
+ try {
207
+ await server.sendLoggingMessage({ level: 'info', data: msg });
208
+ logger.info({ userId, actionCount: actions.length }, 'Pushed local_actions_required to AI via logging notification');
209
+ } catch (notifyErr) {
210
+ logger.warn({ userId, err: notifyErr }, 'Failed to push local_actions notification to AI');
211
+ }
212
+ }
195
213
  } else {
196
214
  logger.warn({ userId, error: result.error }, 'Auto sync_resources on connect failed');
197
215
  }
@@ -27,7 +27,6 @@ import type {
27
27
  SyncResourcesParams,
28
28
  SyncResourcesResult,
29
29
  LocalAction,
30
- MergeMcpJsonAction,
31
30
  ToolResult,
32
31
  } from '../types/tools';
33
32
  import { telemetry } from '../telemetry/index.js';
@@ -180,18 +179,40 @@ export async function syncResources(params: unknown): Promise<ToolResult<SyncRes
180
179
  duration: Date.now() - tDl,
181
180
  });
182
181
 
182
+ // When the API returns no files (expected for Command/Skill in MCP Prompt
183
+ // mode — content lives in the server-side git repo, not the API), fall back
184
+ // to reading the files directly from the local git checkout.
185
+ let sourceFiles = downloadResult.files;
186
+ if (sourceFiles.length === 0) {
187
+ sourceFiles = await multiSourceGitManager.readResourceFiles(
188
+ sub.name,
189
+ sub.type as 'command' | 'skill',
190
+ );
191
+ if (sourceFiles.length > 0) {
192
+ logToolStep('sync_resources', 'Loaded resource files from local git checkout', {
193
+ resourceId: sub.id,
194
+ fileCount: sourceFiles.length,
195
+ });
196
+ } else {
197
+ logger.warn(
198
+ { resourceId: sub.id, resourceName: sub.name },
199
+ 'No files found via API or local git — prompt will have empty content',
200
+ );
201
+ }
202
+ }
203
+
183
204
  // Primary Markdown content selection:
184
205
  // - skill: prefer SKILL.md (canonical entrypoint for all skill content)
185
206
  // - command: prefer the file whose name matches the resource name
186
207
  // - fallback: first .md file, then first file of any type
187
208
  const isSkill = sub.type === 'skill';
188
209
  const primaryFile = isSkill
189
- ? (downloadResult.files.find((f) => path.basename(f.path) === 'SKILL.md') ??
190
- downloadResult.files.find((f) => f.path.endsWith('.md')) ??
191
- downloadResult.files[0])
192
- : (downloadResult.files.find((f) => path.basename(f.path).replace(/\.md$/, '') === sub.name) ??
193
- downloadResult.files.find((f) => f.path.endsWith('.md')) ??
194
- downloadResult.files[0]);
210
+ ? (sourceFiles.find((f) => path.basename(f.path) === 'SKILL.md') ??
211
+ sourceFiles.find((f) => f.path.endsWith('.md')) ??
212
+ sourceFiles[0])
213
+ : (sourceFiles.find((f) => path.basename(f.path).replace(/\.md$/, '') === sub.name) ??
214
+ sourceFiles.find((f) => f.path.endsWith('.md')) ??
215
+ sourceFiles[0]);
195
216
 
196
217
  const rawContent = primaryFile?.content ?? '';
197
218
 
@@ -245,9 +266,6 @@ export async function syncResources(params: unknown): Promise<ToolResult<SyncRes
245
266
  }
246
267
 
247
268
  // Download all files for this resource from the CSP server.
248
- // We always download first so we can inspect the payload and determine
249
- // whether this is a remote-URL-only MCP (Format B: config-only, no
250
- // local files needed) before deciding what to write locally.
251
269
  logToolStep('sync_resources', 'Downloading resource', {
252
270
  resourceId: sub.id,
253
271
  resourceType: sub.type,
@@ -260,59 +278,117 @@ export async function syncResources(params: unknown): Promise<ToolResult<SyncRes
260
278
  duration: Date.now() - tDl,
261
279
  });
262
280
 
263
- // Detect remote-URL-only MCP: the payload contains exactly one file
264
- // named mcp-config.json whose JSON has no "command" field (Format B).
265
- // These servers are deployed remotely no local files are needed.
266
- // We only need to update the user's ~/.cursor/mcp.json.
267
- let isRemoteUrlMcp = false;
268
- const firstFile = downloadResult.files[0];
269
- if (sub.type === 'mcp' && downloadResult.files.length === 1
270
- && firstFile !== undefined
271
- && path.basename(firstFile.path) === 'mcp-config.json') {
272
- try {
273
- const parsed = JSON.parse(firstFile.content) as Record<string, unknown>;
274
- if (typeof parsed['command'] !== 'string') {
275
- isRemoteUrlMcp = true;
276
- }
277
- } catch { /* malformed JSON — treat as normal MCP */ }
281
+ // When the API returns no files (expected when the MCP server is deployed
282
+ // remotely and content lives in the server-side git repo), fall back to
283
+ // reading the files directly from the local git checkout.
284
+ let resourceFiles = downloadResult.files;
285
+ if (resourceFiles.length === 0) {
286
+ const gitType = sub.type as 'rule' | 'mcp';
287
+ const gitFiles = await multiSourceGitManager.readResourceFiles(sub.name, gitType as any);
288
+ if (gitFiles.length > 0) {
289
+ resourceFiles = gitFiles;
290
+ logToolStep('sync_resources', 'Loaded resource files from local git checkout', {
291
+ resourceId: sub.id,
292
+ fileCount: resourceFiles.length,
293
+ });
294
+ } else {
295
+ logger.warn(
296
+ { resourceId: sub.id, resourceName: sub.name, type: sub.type },
297
+ 'No files found via API or local git — skipping resource',
298
+ );
299
+ tally.failed++;
300
+ details.push({ id: sub.id, name: sub.name, action: 'failed', version: resourceVersion });
301
+ continue;
302
+ }
278
303
  }
279
304
 
280
- if (isRemoteUrlMcp) {
281
- // Remote-URL MCP (Format B): no local files needed.
282
- // Return a merge_mcp_json action so the AI updates ~/.cursor/mcp.json
283
- // on the user's LOCAL machine, not on this (possibly remote) server.
284
- const configContent = firstFile!.content;
305
+ // ── MCP resource ──────────────────────────────────────────────────────
306
+ // Read mcp-config.json to determine Format A (local executable, has
307
+ // "command" field) vs Format B (remote URL map, no "command" field).
308
+ if (sub.type === 'mcp') {
309
+ const mcpConfigFile = resourceFiles.find(
310
+ (f) => path.basename(f.path) === 'mcp-config.json',
311
+ );
285
312
  const mcpJsonPath = path.join(getCursorRootDir(), 'mcp.json');
286
- const entries = JSON.parse(configContent) as Record<string, unknown>;
287
313
 
288
- for (const [serverName, entry] of Object.entries(entries)) {
289
- const e = entry as Record<string, unknown>;
290
- const env = (e['env'] ?? {}) as Record<string, string>;
291
- const missingEnv = Object.entries(env)
292
- .filter(([, v]) => v === '')
293
- .map(([k]) => k);
294
-
295
- const action: MergeMcpJsonAction = {
314
+ if (mcpConfigFile) {
315
+ let cfg: Record<string, unknown> = {};
316
+ try { cfg = JSON.parse(mcpConfigFile.content) as Record<string, unknown>; }
317
+ catch { /* malformed — cfg stays empty */ }
318
+
319
+ if (typeof cfg['command'] === 'string') {
320
+ // ── Format A: local executable ──────────────────────────────────
321
+ // Queue write_file for each resource file + merge_mcp_json for entry.
322
+ const installDir = path.join(getCursorTypeDir('mcp'), sub.name);
323
+ for (const file of resourceFiles) {
324
+ const normalised = path.normalize(file.path);
325
+ if (normalised.startsWith('..')) continue;
326
+ localActions.push({ action: 'write_file', path: path.join(installDir, normalised), content: file.content });
327
+ }
328
+ const env = (cfg['env'] ?? {}) as Record<string, string>;
329
+ const missingEnv = Object.entries(env).filter(([, v]) => v === '').map(([k]) => k);
330
+ // Resolve relative args to the install directory.
331
+ const looksLikePath = (a: string) =>
332
+ a.startsWith('./') || a.startsWith('../') || a.includes(path.sep) || /\.\w+$/.test(a);
333
+ const args = ((cfg['args'] ?? []) as string[]).map((a) =>
334
+ path.isAbsolute(a) || !looksLikePath(a) ? a : path.join(installDir, a),
335
+ );
336
+ localActions.push({
337
+ action: 'merge_mcp_json',
338
+ mcp_json_path: mcpJsonPath,
339
+ server_name: (cfg['name'] as string | undefined) ?? sub.name,
340
+ entry: { ...cfg, args },
341
+ ...(missingEnv.length > 0 ? {
342
+ missing_env: missingEnv,
343
+ setup_hint: `Fill in env vars in ${mcpJsonPath} under mcpServers["${sub.name}"]: ${missingEnv.join(', ')}.`,
344
+ } : {}),
345
+ });
346
+ logToolStep('sync_resources', 'Local-executable MCP: write_file + merge_mcp_json queued', { resourceId: sub.id });
347
+ } else {
348
+ // ── Format B: remote URL map ────────────────────────────────────
349
+ // cfg IS the mcpServers map; one merge_mcp_json action per key.
350
+ for (const [serverName, entry] of Object.entries(cfg)) {
351
+ const e = entry as Record<string, unknown>;
352
+ const env = (e['env'] ?? {}) as Record<string, string>;
353
+ const missingEnv = Object.entries(env).filter(([, v]) => v === '').map(([k]) => k);
354
+ localActions.push({
355
+ action: 'merge_mcp_json',
356
+ mcp_json_path: mcpJsonPath,
357
+ server_name: serverName,
358
+ entry: e,
359
+ ...(missingEnv.length > 0 ? {
360
+ missing_env: missingEnv,
361
+ setup_hint: `Fill in env vars in ${mcpJsonPath} under mcpServers["${serverName}"]: ${missingEnv.join(', ')}.`,
362
+ } : {}),
363
+ });
364
+ }
365
+ logToolStep('sync_resources', 'Remote-URL MCP: merge_mcp_json queued', {
366
+ resourceId: sub.id, serverKeys: Object.keys(cfg),
367
+ });
368
+ }
369
+ } else {
370
+ // No mcp-config.json: heuristic fallback — find entry point file.
371
+ const installDir = path.join(getCursorTypeDir('mcp'), sub.name);
372
+ for (const file of resourceFiles) {
373
+ const normalised = path.normalize(file.path);
374
+ if (normalised.startsWith('..')) continue;
375
+ localActions.push({ action: 'write_file', path: path.join(installDir, normalised), content: file.content });
376
+ }
377
+ const jsEntry = resourceFiles.find((f) => f.path.endsWith('.js'));
378
+ const pyEntry = resourceFiles.find((f) => f.path.endsWith('.py'));
379
+ const entryFile = jsEntry ?? pyEntry ?? resourceFiles[0];
380
+ const cmd = jsEntry ? 'node' : 'python3';
381
+ localActions.push({
296
382
  action: 'merge_mcp_json',
297
- mcp_json_path: mcpJsonPath,
298
- server_name: serverName,
299
- entry: e,
300
- ...(missingEnv.length > 0 ? {
301
- missing_env: missingEnv,
302
- setup_hint:
303
- `Fill in the following environment variables in ${mcpJsonPath} ` +
304
- `under mcpServers["${serverName}"]: ${missingEnv.join(', ')}.`,
305
- } : {}),
306
- };
307
- localActions.push(action);
383
+ mcp_json_path: path.join(getCursorRootDir(), 'mcp.json'),
384
+ server_name: sub.name,
385
+ entry: { command: cmd, args: [path.join(installDir, entryFile?.path ?? '')] },
386
+ });
387
+ logToolStep('sync_resources', 'MCP heuristic fallback: write_file + merge_mcp_json queued', { resourceId: sub.id });
308
388
  }
309
389
 
310
390
  tally.synced++;
311
391
  details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
312
- logToolStep('sync_resources', 'Remote-URL MCP: merge_mcp_json action queued for AI', {
313
- resourceId: sub.id,
314
- serverKeys: Object.keys(entries),
315
- });
316
392
  continue;
317
393
  }
318
394
 
@@ -321,7 +397,7 @@ export async function syncResources(params: unknown): Promise<ToolResult<SyncRes
321
397
  if (sub.type === 'rule') {
322
398
  const typeDir = getCursorTypeDir(sub.type);
323
399
 
324
- for (const file of downloadResult.files) {
400
+ for (const file of resourceFiles) {
325
401
  const normalised = path.normalize(file.path);
326
402
  if (normalised.startsWith('..')) {
327
403
  logger.warn({ resourceId: sub.id, filePath: file.path }, 'Skipping suspicious file path');
@@ -338,103 +414,7 @@ export async function syncResources(params: unknown): Promise<ToolResult<SyncRes
338
414
  details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
339
415
  logToolStep('sync_resources', 'Rule: write_file actions queued for AI', {
340
416
  resourceId: sub.id,
341
- fileCount: downloadResult.files.length,
342
- });
343
- continue;
344
- }
345
-
346
- // ── Local-executable MCP resource (Format A — has "command" field) ───
347
- // Return write_file + merge_mcp_json actions; the AI performs them locally.
348
- if (sub.type === 'mcp') {
349
- const typeDir = getCursorTypeDir(sub.type);
350
- const installDir = path.join(typeDir, sub.name);
351
-
352
- // Queue file writes.
353
- for (const file of downloadResult.files) {
354
- const normalised = path.normalize(file.path);
355
- if (normalised.startsWith('..')) {
356
- logger.warn({ resourceId: sub.id, filePath: file.path }, 'Skipping suspicious file path');
357
- continue;
358
- }
359
- localActions.push({
360
- action: 'write_file',
361
- path: path.join(installDir, normalised),
362
- content: file.content,
363
- });
364
- }
365
-
366
- // Build the mcp.json entry from the downloaded descriptor.
367
- // We replicate the Format-A detection logic from registerMcpServer()
368
- // but without touching the server filesystem.
369
- const mcpJsonPath = path.join(getCursorRootDir(), 'mcp.json');
370
- let mcpEntry: Record<string, unknown> = {};
371
- let missingEnv: string[] = [];
372
- let setupHint: string | undefined;
373
- let setupDoc: string | undefined;
374
-
375
- const descriptorFile = downloadResult.files.find(
376
- (f) => path.basename(f.path) === 'mcp-config.json',
377
- );
378
- if (descriptorFile) {
379
- try {
380
- const cfg = JSON.parse(descriptorFile.content) as Record<string, unknown>;
381
- if (typeof cfg['command'] === 'string') {
382
- // Format A: single-server descriptor
383
- mcpEntry = cfg;
384
- } else {
385
- // Format B disguised as local — treat whole object as entries map
386
- mcpEntry = cfg;
387
- }
388
- } catch { /* malformed — leave entry empty */ }
389
- }
390
-
391
- // Detect missing env vars.
392
- const envBlock = (mcpEntry['env'] ?? {}) as Record<string, string>;
393
- missingEnv = Object.entries(envBlock).filter(([, v]) => v === '').map(([k]) => k);
394
- if (missingEnv.length > 0) {
395
- setupHint =
396
- `Fill in the following environment variables in ${mcpJsonPath} ` +
397
- `under mcpServers["${sub.name}"]: ${missingEnv.join(', ')}.`;
398
- }
399
-
400
- // Check for a setup doc among downloaded files.
401
- const readmeFile = downloadResult.files.find((f) =>
402
- /readme/i.test(path.basename(f.path)) && f.path.endsWith('.md'),
403
- );
404
- if (readmeFile) {
405
- setupDoc = path.join(installDir, readmeFile.path);
406
- }
407
-
408
- const mergeMcpAction: MergeMcpJsonAction = {
409
- action: 'merge_mcp_json',
410
- mcp_json_path: mcpJsonPath,
411
- server_name: sub.name,
412
- entry: Object.keys(mcpEntry).length > 0 ? mcpEntry : {
413
- // Fallback: auto-detect entry point from file list.
414
- command: (() => {
415
- const jsEntry = downloadResult.files.find((f) => f.path.endsWith('.js'));
416
- const pyEntry = downloadResult.files.find((f) => f.path.endsWith('.py'));
417
- if (jsEntry) return 'node';
418
- if (pyEntry) return 'python3';
419
- return 'node';
420
- })(),
421
- args: [(() => {
422
- const jsEntry = downloadResult.files.find((f) => f.path.endsWith('.js'));
423
- const pyEntry = downloadResult.files.find((f) => f.path.endsWith('.py'));
424
- const entryFile = jsEntry ?? pyEntry ?? downloadResult.files[0];
425
- return path.join(installDir, entryFile?.path ?? '');
426
- })()],
427
- },
428
- ...(missingEnv.length > 0 ? { missing_env: missingEnv, setup_hint: setupHint } : {}),
429
- ...(setupDoc ? { setup_doc: setupDoc } : {}),
430
- };
431
- localActions.push(mergeMcpAction);
432
-
433
- tally.synced++;
434
- details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
435
- logToolStep('sync_resources', 'Local-executable MCP: write_file + merge_mcp_json actions queued for AI', {
436
- resourceId: sub.id,
437
- fileCount: downloadResult.files.length,
417
+ fileCount: resourceFiles.length,
438
418
  });
439
419
  continue;
440
420
  }