feat: new MCP tools (#14)
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 4s
Universal: Changelog Validation / Validate CHANGELOG.md (push) Failing after 3s
MCP: Build & Validate / build (20) (push) Failing after 4s
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Site Health (push) Has been skipped
MCP: Build & Validate / build (22) (push) Failing after 4s
MCP: Standards Compliance / Secret Scanning (push) Successful in 3s
MCP: Standards Compliance / License Header Validation (push) Successful in 3s
MCP: Standards Compliance / Repository Structure Validation (push) Failing after 3s
MCP: Standards Compliance / Coding Standards Check (push) Failing after 2s
MCP: Standards Compliance / Workflow Configuration Check (push) Failing after 2s
MCP: Build & Release / Build, Validate & Release (push) Failing after 30s
MCP: Tool Inventory / inventory (push) Failing after 15s
MCP: Standards Compliance / Documentation Quality Check (push) Successful in 3s
MCP: Standards Compliance / README Completeness Check (push) Failing after 2s
MCP: Standards Compliance / Git Repository Hygiene (push) Successful in 2s
Universal: CodeQL Analysis / Analyze (javascript) (push) Failing after 44s
MCP: Standards Compliance / Line Length Check (push) Failing after 4s
MCP: Standards Compliance / File Naming Standards (push) Successful in 3s
MCP: Standards Compliance / Script Integrity Validation (push) Successful in 4s
MCP: Standards Compliance / Insecure Code Pattern Detection (push) Successful in 4s
MCP: Standards Compliance / Dead Code Detection (push) Successful in 4s
MCP: Standards Compliance / File Size Limits (push) Successful in 3s
MCP: Standards Compliance / TODO/FIXME Tracking (push) Successful in 3s
MCP: Standards Compliance / Binary File Detection (push) Successful in 4s
MCP: Standards Compliance / Version Consistency Check (push) Successful in 39s
MCP: Standards Compliance / Broken Link Detection (push) Successful in 3s
MCP: Standards Compliance / API Documentation Coverage (push) Successful in 2s
MCP: Standards Compliance / Accessibility Check (push) Successful in 3s
MCP: Standards Compliance / Performance Metrics (push) Successful in 3s
MCP: Standards Compliance / Code Complexity Analysis (push) Successful in 40s
MCP: Standards Compliance / Code Duplication Detection (push) Successful in 40s
MCP: Standards Compliance / Terraform Configuration Validation (push) Successful in 7s
MCP: Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 40s
MCP: Standards Compliance / Unused Dependencies Check (push) Successful in 42s
MCP: Standards Compliance / Enterprise Readiness Check (push) Failing after 40s
MCP: Standards Compliance / Repository Health Check (push) Failing after 40s
Universal: Sync Version on Merge / Propagate README version (push) Failing after 43s
Generic: Repo Health / Release configuration (push) Failing after 3s
Generic: Repo Health / Scripts governance (push) Successful in 3s
Generic: Repo Health / Repository health (push) Failing after 3s
MCP: Standards Compliance / Compliance Summary (push) Failing after 1s
Universal: CodeQL Analysis / Analyze (actions) (push) Failing after 13m40s
Universal: CodeQL Analysis / Security Scan Summary (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 4s
Universal: Changelog Validation / Validate CHANGELOG.md (push) Failing after 3s
MCP: Build & Validate / build (20) (push) Failing after 4s
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Site Health (push) Has been skipped
MCP: Build & Validate / build (22) (push) Failing after 4s
MCP: Standards Compliance / Secret Scanning (push) Successful in 3s
MCP: Standards Compliance / License Header Validation (push) Successful in 3s
MCP: Standards Compliance / Repository Structure Validation (push) Failing after 3s
MCP: Standards Compliance / Coding Standards Check (push) Failing after 2s
MCP: Standards Compliance / Workflow Configuration Check (push) Failing after 2s
MCP: Build & Release / Build, Validate & Release (push) Failing after 30s
MCP: Tool Inventory / inventory (push) Failing after 15s
MCP: Standards Compliance / Documentation Quality Check (push) Successful in 3s
MCP: Standards Compliance / README Completeness Check (push) Failing after 2s
MCP: Standards Compliance / Git Repository Hygiene (push) Successful in 2s
Universal: CodeQL Analysis / Analyze (javascript) (push) Failing after 44s
MCP: Standards Compliance / Line Length Check (push) Failing after 4s
MCP: Standards Compliance / File Naming Standards (push) Successful in 3s
MCP: Standards Compliance / Script Integrity Validation (push) Successful in 4s
MCP: Standards Compliance / Insecure Code Pattern Detection (push) Successful in 4s
MCP: Standards Compliance / Dead Code Detection (push) Successful in 4s
MCP: Standards Compliance / File Size Limits (push) Successful in 3s
MCP: Standards Compliance / TODO/FIXME Tracking (push) Successful in 3s
MCP: Standards Compliance / Binary File Detection (push) Successful in 4s
MCP: Standards Compliance / Version Consistency Check (push) Successful in 39s
MCP: Standards Compliance / Broken Link Detection (push) Successful in 3s
MCP: Standards Compliance / API Documentation Coverage (push) Successful in 2s
MCP: Standards Compliance / Accessibility Check (push) Successful in 3s
MCP: Standards Compliance / Performance Metrics (push) Successful in 3s
MCP: Standards Compliance / Code Complexity Analysis (push) Successful in 40s
MCP: Standards Compliance / Code Duplication Detection (push) Successful in 40s
MCP: Standards Compliance / Terraform Configuration Validation (push) Successful in 7s
MCP: Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 40s
MCP: Standards Compliance / Unused Dependencies Check (push) Successful in 42s
MCP: Standards Compliance / Enterprise Readiness Check (push) Failing after 40s
MCP: Standards Compliance / Repository Health Check (push) Failing after 40s
Universal: Sync Version on Merge / Propagate README version (push) Failing after 43s
Generic: Repo Health / Release configuration (push) Failing after 3s
Generic: Repo Health / Scripts governance (push) Successful in 3s
Generic: Repo Health / Repository health (push) Failing after 3s
MCP: Standards Compliance / Compliance Summary (push) Failing after 1s
Universal: CodeQL Analysis / Analyze (actions) (push) Failing after 13m40s
Universal: CodeQL Analysis / Security Scan Summary (push) Successful in 1s
This commit was merged in pull request #14.
This commit is contained in:
@@ -1201,6 +1201,88 @@ server.tool(
|
||||
},
|
||||
);
|
||||
|
||||
// ── Health & Monitoring ─────────────────────────────────────────────────
|
||||
|
||||
server.tool(
|
||||
'joomla_health_check',
|
||||
'Call the MokoWaaS health endpoint (/?mokowaas=health) on a connected site',
|
||||
{
|
||||
token: z.string().describe('Health API bearer token'),
|
||||
...ConnectionParam,
|
||||
},
|
||||
async ({ token, connection }) => {
|
||||
const conn = getConnection(config, connection);
|
||||
const url = conn.baseUrl.replace(/\/+$/, '') + '/?mokowaas=health';
|
||||
try {
|
||||
const res = await fetch(url, {
|
||||
headers: { 'Authorization': `Bearer ${token}` },
|
||||
signal: AbortSignal.timeout(15000),
|
||||
});
|
||||
const data = await res.json();
|
||||
return {
|
||||
content: [{ type: 'text' as const, text: JSON.stringify(data, null, 2) }],
|
||||
};
|
||||
} catch (e) {
|
||||
return {
|
||||
content: [{ type: 'text' as const, text: `Health check failed: ${e}` }],
|
||||
};
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
server.tool(
|
||||
'joomla_heartbeat_status',
|
||||
'Check if a site is registered with the MokoWaaS heartbeat receiver',
|
||||
{
|
||||
site_url: z.string().describe('Site URL to check'),
|
||||
...ConnectionParam,
|
||||
},
|
||||
async ({ site_url }) => {
|
||||
const receiverUrl = 'https://bench.mokoconsulting.tech/api/waas-heartbeat/heartbeat';
|
||||
try {
|
||||
const res = await fetch(receiverUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-MokoWaaS-Key': 'moko-waas-hb-2026-x9k4m',
|
||||
},
|
||||
body: JSON.stringify({ site_url }),
|
||||
signal: AbortSignal.timeout(10000),
|
||||
});
|
||||
const data = await res.json();
|
||||
return {
|
||||
content: [{ type: 'text' as const, text: JSON.stringify(data, null, 2) }],
|
||||
};
|
||||
} catch (e) {
|
||||
return {
|
||||
content: [{ type: 'text' as const, text: `Heartbeat check failed: ${e}` }],
|
||||
};
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
server.tool(
|
||||
'joomla_extensions_list',
|
||||
'List installed extensions with version and status',
|
||||
{
|
||||
search: z.string().optional().describe('Filter by name'),
|
||||
...ConnectionParam,
|
||||
},
|
||||
async ({ search, connection }) => {
|
||||
const params: Record<string, string> = {};
|
||||
if (search) params['filter[search]'] = search;
|
||||
return formatResponse(await clientFor(connection).get('/extensions', params));
|
||||
},
|
||||
);
|
||||
|
||||
server.tool(
|
||||
'joomla_system_info',
|
||||
'Get Joomla system configuration (application config)',
|
||||
{ ...ConnectionParam },
|
||||
async ({ connection }) =>
|
||||
formatResponse(await clientFor(connection).get('/config/application')),
|
||||
);
|
||||
|
||||
// ── Connections Management ──────────────────────────────────────────────
|
||||
|
||||
server.tool(
|
||||
|
||||
Reference in New Issue
Block a user