@fruition/fcp-mcp-server 1.8.0 → 1.10.0
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/dist/index.js +60 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -329,6 +329,10 @@ class FCPClient {
|
|
|
329
329
|
body: JSON.stringify(options || {}),
|
|
330
330
|
});
|
|
331
331
|
}
|
|
332
|
+
// Local Setup Guide
|
|
333
|
+
async getLocalSetupGuide(siteId) {
|
|
334
|
+
return this.fetch(`/api/sites/${siteId}/local-setup`);
|
|
335
|
+
}
|
|
332
336
|
// Shield Domain Management
|
|
333
337
|
async shieldListDomains(filters) {
|
|
334
338
|
const params = new URLSearchParams();
|
|
@@ -415,6 +419,9 @@ class FCPClient {
|
|
|
415
419
|
body: JSON.stringify(input),
|
|
416
420
|
});
|
|
417
421
|
}
|
|
422
|
+
async backupSanitizeStatus(jobId) {
|
|
423
|
+
return this.fetch(`/api/backup/download/status?jobId=${encodeURIComponent(jobId)}`);
|
|
424
|
+
}
|
|
418
425
|
async backupListPairings(siteId) {
|
|
419
426
|
const params = new URLSearchParams();
|
|
420
427
|
if (siteId)
|
|
@@ -1889,6 +1896,20 @@ const TOOLS = [
|
|
|
1889
1896
|
required: ['website_id'],
|
|
1890
1897
|
},
|
|
1891
1898
|
},
|
|
1899
|
+
{
|
|
1900
|
+
name: 'fcp_get_local_setup_guide',
|
|
1901
|
+
description: 'Generate a local development setup guide for a website. Returns CMS-specific instructions for cloning, DDEV configuration, .env template, database import, and verification steps. Works for Bedrock WordPress, standard WordPress, and Drupal sites.',
|
|
1902
|
+
inputSchema: {
|
|
1903
|
+
type: 'object',
|
|
1904
|
+
properties: {
|
|
1905
|
+
website_id: {
|
|
1906
|
+
type: 'number',
|
|
1907
|
+
description: 'The website ID to generate setup guide for',
|
|
1908
|
+
},
|
|
1909
|
+
},
|
|
1910
|
+
required: ['website_id'],
|
|
1911
|
+
},
|
|
1912
|
+
},
|
|
1892
1913
|
{
|
|
1893
1914
|
name: 'fcp_create_site',
|
|
1894
1915
|
description: 'Create a new website with optional staging environments. Production site is created first, then staging sites are linked to it.',
|
|
@@ -2294,7 +2315,7 @@ const TOOLS = [
|
|
|
2294
2315
|
},
|
|
2295
2316
|
{
|
|
2296
2317
|
name: 'fcp_backup_download_prepared',
|
|
2297
|
-
description: 'Prepare a backup download with optional sanitization.
|
|
2318
|
+
description: 'Prepare a backup download with optional sanitization. For production backups, sanitization is the default — this returns a jobId to poll via fcp_backup_sanitize_status. For non-production backups, returns a presigned download URL directly.',
|
|
2298
2319
|
inputSchema: {
|
|
2299
2320
|
type: 'object',
|
|
2300
2321
|
properties: {
|
|
@@ -2316,12 +2337,26 @@ const TOOLS = [
|
|
|
2316
2337
|
},
|
|
2317
2338
|
sanitize: {
|
|
2318
2339
|
type: 'boolean',
|
|
2319
|
-
description: 'Whether to sanitize production data (
|
|
2340
|
+
description: 'Whether to sanitize production data. Defaults to true for production environments. Set to false to skip sanitization (non-production only).',
|
|
2320
2341
|
},
|
|
2321
2342
|
},
|
|
2322
2343
|
required: ['siteId', 'backupId', 'downloadType'],
|
|
2323
2344
|
},
|
|
2324
2345
|
},
|
|
2346
|
+
{
|
|
2347
|
+
name: 'fcp_backup_sanitize_status',
|
|
2348
|
+
description: 'Check the status of a database sanitization job. Poll this after fcp_backup_download_prepared returns a jobId. When status is "completed", the response includes a presigned downloadUrl for the sanitized backup.',
|
|
2349
|
+
inputSchema: {
|
|
2350
|
+
type: 'object',
|
|
2351
|
+
properties: {
|
|
2352
|
+
jobId: {
|
|
2353
|
+
type: 'string',
|
|
2354
|
+
description: 'The sanitization job ID returned by fcp_backup_download_prepared',
|
|
2355
|
+
},
|
|
2356
|
+
},
|
|
2357
|
+
required: ['jobId'],
|
|
2358
|
+
},
|
|
2359
|
+
},
|
|
2325
2360
|
{
|
|
2326
2361
|
name: 'fcp_backup_list_pairings',
|
|
2327
2362
|
description: 'List site pairings for backup management. Optionally filter by site ID. Shows production/staging/dev relationships grouped by account.',
|
|
@@ -2610,6 +2645,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
2610
2645
|
],
|
|
2611
2646
|
};
|
|
2612
2647
|
}
|
|
2648
|
+
case 'fcp_get_local_setup_guide': {
|
|
2649
|
+
const { website_id } = args;
|
|
2650
|
+
const result = await client.getLocalSetupGuide(website_id);
|
|
2651
|
+
// Return the guide as readable text, with structured data as JSON
|
|
2652
|
+
const guide = result.guide || '';
|
|
2653
|
+
const siteInfo = result.site || {};
|
|
2654
|
+
const ddevInfo = result.ddev || {};
|
|
2655
|
+
return {
|
|
2656
|
+
content: [
|
|
2657
|
+
{
|
|
2658
|
+
type: 'text',
|
|
2659
|
+
text: guide + '\n\n---\n\n**Structured Data:**\n```json\n' + JSON.stringify({ site: siteInfo, ddev: ddevInfo }, null, 2) + '\n```',
|
|
2660
|
+
},
|
|
2661
|
+
],
|
|
2662
|
+
};
|
|
2663
|
+
}
|
|
2613
2664
|
case 'fcp_create_site': {
|
|
2614
2665
|
const { account_id, domain, cms, url_full, git_provider, git_link, hosting_provider, fru_hosted, k8s_cluster, k8s_namespace, staging, } = args;
|
|
2615
2666
|
const result = await client.createSite({ account_id, domain, cms, url_full, git_provider, git_link, hosting_provider, fru_hosted, k8s_cluster, k8s_namespace }, staging);
|
|
@@ -3330,6 +3381,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
3330
3381
|
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
3331
3382
|
};
|
|
3332
3383
|
}
|
|
3384
|
+
case 'fcp_backup_sanitize_status': {
|
|
3385
|
+
const { jobId } = args;
|
|
3386
|
+
const result = await client.backupSanitizeStatus(jobId);
|
|
3387
|
+
return {
|
|
3388
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
3389
|
+
};
|
|
3390
|
+
}
|
|
3333
3391
|
case 'fcp_backup_list_pairings': {
|
|
3334
3392
|
const { siteId } = args;
|
|
3335
3393
|
const result = await client.backupListPairings(siteId);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fruition/fcp-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "MCP Server for FCP Launch Coordination System - enables Claude Code to interact with FCP launches and track development time",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|