- platform.schemas.telemetryEvent: TelemetryEventDoc field schema + clustering keys + privacy rules - platform.schemas.diagnosticsSession: DebugSession schema + full endpoint map - platform.sdks.swiftCapabilities: ByteLystPlatformSDK 13 modules with phase + description - platform.sdks.kotlinCapabilities: Android/KMP SDK feature inventory + KMP adoption - platform.sdks.crossProductAdoption: 8 capabilities x 6 products adoption matrix + known gaps - platform.sdks.auditActivity: live telemetry query to verify SDK wired + event breakdown per platform/module - MCP server now at 97 tools across 16 namespaces
69 lines
3.3 KiB
TypeScript
69 lines
3.3 KiB
TypeScript
/**
|
|
* ByteLyst MCP Server — port 4007
|
|
*
|
|
* Exposes tool namespaces:
|
|
* platform.telemetry.* — query events, clusters, metrics, policy CRUD
|
|
* platform.diagnostics.* — manage debug sessions, read logs/traces, cancel
|
|
* extraction.* — run extraction, list models, cache stats, sidecar health
|
|
* support.* — compound tools (createDebugPack, runIncidentPipeline)
|
|
* mindlyst.* — memory, brains, briefs, streaks, reflections, extractions
|
|
* lysnrai.* — transcripts, sessions, orgs, apiTokens, stt
|
|
* jarvis.* — agents, sessions, memory (JarvisJr coaching platform)
|
|
* chronomind.* — timers, routines, syncStatus
|
|
* nomgap.* — fasting sessions, push triggers
|
|
* peakpulse.* — adventure sessions, GPS routes, stats
|
|
* tracker.* — items, votes, comments, public roadmap
|
|
* flags.* — feature flag CRUD + kill switch
|
|
* jobs.* — background job list, trigger, run history
|
|
* maintenance.* — maintenance mode + scheduled windows
|
|
* settings.* — user settings + kill switch check
|
|
* webhooks.* — subscription CRUD, deliveries, test, rotate secret
|
|
*
|
|
* Auth: JWT Bearer tokens issued by platform-service (same JWT_SECRET).
|
|
* Role gating: viewer / admin / super_admin per tool.
|
|
*/
|
|
|
|
import { createServiceApp, startService } from '@bytelyst/fastify-core';
|
|
import { config } from './lib/config.js';
|
|
import { parseJwt } from './lib/auth.js';
|
|
import { toolRoutes } from './modules/tools/routes.js';
|
|
|
|
// Register all tool namespaces (side-effect: populates the tool registry)
|
|
import './modules/platform/telemetry-tools.js';
|
|
import './modules/platform/telemetry-policy-tools.js';
|
|
import './modules/platform/diagnostics-tools.js';
|
|
import './modules/extraction/extraction-tools.js';
|
|
import './modules/support/debug-pack.js';
|
|
import './modules/a2a/pipeline-tool.js';
|
|
import './modules/a2a/daily-brief-pipeline.js';
|
|
import './modules/a2a/marketplace-cert-pipeline.js';
|
|
import './modules/a2a/safety-monitor-pipeline.js';
|
|
import './modules/a2a/sync-diagnostics-pipeline.js';
|
|
import './modules/mindlyst/mindlyst-tools.js';
|
|
import './modules/lysnrai/lysnrai-tools.js';
|
|
import './modules/jarvis/jarvis-tools.js';
|
|
import './modules/chronomind/chronomind-tools.js';
|
|
import './modules/nomgap/nomgap-tools.js';
|
|
import './modules/peakpulse/peakpulse-tools.js';
|
|
import './modules/tracker/tracker-tools.js';
|
|
import './modules/platform/ops-tools.js';
|
|
import './modules/platform/webhooks-tools.js';
|
|
import './modules/platform/sdk-tools.js';
|
|
|
|
const app = await createServiceApp({
|
|
name: 'mcp-server',
|
|
version: '0.1.0',
|
|
description:
|
|
'ByteLyst MCP Server — platform.*, extraction.*, support.*, mindlyst.*, lysnrai.*, jarvis.*, chronomind.*, nomgap.*, peakpulse.*, tracker.*, flags.*, jobs.*, maintenance.*, settings.*, webhooks.*',
|
|
corsOrigin: config.CORS_ORIGIN,
|
|
logLevel: config.LOG_LEVEL,
|
|
});
|
|
|
|
// Parse JWT on every request (best-effort)
|
|
app.addHook('onRequest', parseJwt);
|
|
|
|
// Register tool routes
|
|
await app.register(toolRoutes, { prefix: '/api' });
|
|
|
|
await startService(app, { port: config.PORT, host: config.HOST });
|