@fruition/fcp-mcp-server 1.13.0 → 1.14.1
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 +76 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -282,6 +282,19 @@ class FCPClient {
|
|
|
282
282
|
// Otherwise, get scan history list
|
|
283
283
|
return this.fetch(`/api/sites/${websiteId}/nuclei-scans`);
|
|
284
284
|
}
|
|
285
|
+
// Security Headers Methods
|
|
286
|
+
async scanSecurityHeaders(websiteId) {
|
|
287
|
+
return this.fetch(`/api/sites/${websiteId}/security-headers`, {
|
|
288
|
+
method: 'POST',
|
|
289
|
+
body: JSON.stringify({}),
|
|
290
|
+
}, 30000);
|
|
291
|
+
}
|
|
292
|
+
async getSecurityHeadersResults(websiteId, scanId) {
|
|
293
|
+
if (scanId) {
|
|
294
|
+
return this.fetch(`/api/sites/${websiteId}/security-headers/${scanId}`);
|
|
295
|
+
}
|
|
296
|
+
return this.fetch(`/api/sites/${websiteId}/security-headers/latest`);
|
|
297
|
+
}
|
|
285
298
|
// Site/Website CRUD Methods
|
|
286
299
|
async listSites(filters) {
|
|
287
300
|
const params = new URLSearchParams();
|
|
@@ -1352,7 +1365,7 @@ const TOOLS = [
|
|
|
1352
1365
|
// Unroo Task Management Tools
|
|
1353
1366
|
{
|
|
1354
1367
|
name: 'unroo_list_projects',
|
|
1355
|
-
description: 'List all Unroo projects mapped to FCP
|
|
1368
|
+
description: 'List all Unroo projects (including those not mapped to FCP). Returns project details with organization, company, and JIRA key info.',
|
|
1356
1369
|
inputSchema: {
|
|
1357
1370
|
type: 'object',
|
|
1358
1371
|
properties: {},
|
|
@@ -1851,6 +1864,39 @@ const TOOLS = [
|
|
|
1851
1864
|
required: ['website_id'],
|
|
1852
1865
|
},
|
|
1853
1866
|
},
|
|
1867
|
+
// Security Headers Tools
|
|
1868
|
+
{
|
|
1869
|
+
name: 'fcp_scan_security_headers',
|
|
1870
|
+
description: 'Scan a website for HTTP security headers (CSP, HSTS, X-Frame-Options, etc.). Returns grade (A-F), score (0-100), and per-header analysis with issues and recommendations.',
|
|
1871
|
+
inputSchema: {
|
|
1872
|
+
type: 'object',
|
|
1873
|
+
properties: {
|
|
1874
|
+
website_id: {
|
|
1875
|
+
type: 'number',
|
|
1876
|
+
description: 'The website ID to scan (required)',
|
|
1877
|
+
},
|
|
1878
|
+
},
|
|
1879
|
+
required: ['website_id'],
|
|
1880
|
+
},
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
name: 'fcp_get_security_headers_results',
|
|
1884
|
+
description: 'Get security headers scan results for a website. Returns the latest scan grade, score, and per-header findings with issues and recommendations.',
|
|
1885
|
+
inputSchema: {
|
|
1886
|
+
type: 'object',
|
|
1887
|
+
properties: {
|
|
1888
|
+
website_id: {
|
|
1889
|
+
type: 'number',
|
|
1890
|
+
description: 'The website ID to get results for (required)',
|
|
1891
|
+
},
|
|
1892
|
+
scan_id: {
|
|
1893
|
+
type: 'string',
|
|
1894
|
+
description: 'Specific scan ID to get detailed results for (optional, defaults to latest)',
|
|
1895
|
+
},
|
|
1896
|
+
},
|
|
1897
|
+
required: ['website_id'],
|
|
1898
|
+
},
|
|
1899
|
+
},
|
|
1854
1900
|
// Site/Website CRUD Tools
|
|
1855
1901
|
{
|
|
1856
1902
|
name: 'fcp_list_sites',
|
|
@@ -2075,6 +2121,10 @@ const TOOLS = [
|
|
|
2075
2121
|
type: 'number',
|
|
2076
2122
|
description: 'Root site ID for WordPress multisite networks. Set to link as a subsite, null to unlink.',
|
|
2077
2123
|
},
|
|
2124
|
+
uptime_monitor_id: {
|
|
2125
|
+
type: 'number',
|
|
2126
|
+
description: 'UptimeRobot monitor ID for this site. Used by scheduler to pause/resume monitors on scale events.',
|
|
2127
|
+
},
|
|
2078
2128
|
},
|
|
2079
2129
|
required: ['website_id'],
|
|
2080
2130
|
},
|
|
@@ -2679,6 +2729,31 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
2679
2729
|
],
|
|
2680
2730
|
};
|
|
2681
2731
|
}
|
|
2732
|
+
// Security Headers Handlers
|
|
2733
|
+
case 'fcp_scan_security_headers': {
|
|
2734
|
+
const { website_id } = args;
|
|
2735
|
+
const result = await client.scanSecurityHeaders(website_id);
|
|
2736
|
+
return {
|
|
2737
|
+
content: [
|
|
2738
|
+
{
|
|
2739
|
+
type: 'text',
|
|
2740
|
+
text: JSON.stringify(result, null, 2),
|
|
2741
|
+
},
|
|
2742
|
+
],
|
|
2743
|
+
};
|
|
2744
|
+
}
|
|
2745
|
+
case 'fcp_get_security_headers_results': {
|
|
2746
|
+
const { website_id, scan_id } = args;
|
|
2747
|
+
const result = await client.getSecurityHeadersResults(website_id, scan_id);
|
|
2748
|
+
return {
|
|
2749
|
+
content: [
|
|
2750
|
+
{
|
|
2751
|
+
type: 'text',
|
|
2752
|
+
text: JSON.stringify(result, null, 2),
|
|
2753
|
+
},
|
|
2754
|
+
],
|
|
2755
|
+
};
|
|
2756
|
+
}
|
|
2682
2757
|
// Site/Website CRUD Handlers
|
|
2683
2758
|
case 'fcp_list_sites': {
|
|
2684
2759
|
const filters = args;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fruition/fcp-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.1",
|
|
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",
|