learning_ai_common_plat/docs/MCP+A2A/DOMAIN_PLATFORM_SERVICE.md

3.3 KiB

Domain — platform-service (MCP + A2A Opportunities)

Why this domain is ideal for MCP

platform-service is already organized as a set of well-defined modules and stable REST endpoints (Fastify 5 + Zod), with:

  • telemetry ingestion + query + policies
  • remote diagnostics sessions
  • jobs, delivery, sessions, maintenance
  • settings, flags, rate limits
  • webhooks subscriptions

This makes it a near-perfect backing store for MCP tools.

High-value MCP tool proposals

Telemetry

  • telemetry.queryEvents(filters)
  • telemetry.listClusters(filters)
  • telemetry.updateClusterStatus(clusterId, pk, status)
  • telemetry.listPolicies()
  • telemetry.previewPolicy(targeting)
  • telemetry.createPolicy(input)
  • telemetry.updatePolicy(id, updates)
  • telemetry.deletePolicy(id)
  • telemetry.getMetrics()
  • telemetry.getGeoDistribution(from?, to?)

A2A use

  • Telemetry Analyst Agent automates:
    • time window selection
    • cluster-to-user drilldown
    • policy suggestions (targeting + expiry)

Remote diagnostics

  • diagnostics.createSession(input)
  • diagnostics.listSessions(filters)
  • diagnostics.getSession(id)
  • diagnostics.updateSession(id, updates)
  • diagnostics.cancelSession(id)
  • diagnostics.getLogs(sessionId, filters)
  • diagnostics.getTraces(sessionId, filters)
  • diagnostics.listScreenshots(sessionId)

Target identifiers (schema-aligned): targetUserId, targetAnonymousId, targetDeviceId.

A2A use

  • Diagnostics Orchestrator Agent monitors session lifecycle and compiles summaries.

Jobs

Current module provides list/update/trigger/list runs.

  • jobs.list()
  • jobs.get(id)
  • jobs.update(id, updates)
  • jobs.trigger(jobName)
  • jobs.listRuns(jobName, limit)

Note

  • Current jobs/routes.ts uses DEFAULT_PRODUCT_ID = 'lysnrai'. For MCP, prefer explicit productId routing.

Settings / kill switch

  • settings.get(userId)
  • settings.update(userId, patch)
  • settings.getDeviceResolved(userId, deviceId)
  • settings.setDeviceOverrides(userId, deviceId, overrides)
  • settings.clearDeviceOverrides(userId, deviceId)
  • settings.checkKillSwitch(productId)

Flags

  • flags.list(productId)
  • flags.get(key, productId)
  • flags.upsert(key, enabled, targeting, description)

Maintenance

  • maintenance.getCurrent(productId)
  • maintenance.set(productId, mode, bypassRules, windows)

Webhooks

  • webhooks.listSubscriptions(productId)
  • webhooks.createSubscription(input)
  • webhooks.updateSubscription(id, productId, updates)
  • webhooks.deleteSubscription(id, productId)
  • webhooks.listDeliveries(subscriptionId, limit)
  • webhooks.test(subscriptionId)
  • webhooks.rotateSecret(subscriptionId)
  • platform-service.modules
    • enumerates module names, key endpoints, auth requirements
  • telemetry.eventSchema
  • diagnostics.sessionSchema

1) Support debug pack

  • input: user report
  • output: timeline + clusters + recommended actions + (optional) diagnostics session results

2) Canary rollout of additional telemetry

  • build policy → preview → create with expiry → monitor cluster changes

3) Post-incident cleanup

  • resolve clusters
  • remove policies
  • export audit log for the incident window