Skip to content

Tools & MCP Platform — workers, grains and sagas

Generated from the architecture model

This page is rendered from model/**/*.yaml by tools/docs_model during mkdocs build. Edit the YAML, not this page; hand-written design lives on the linked service, platform and plane pages.

Workers

Worker Service Trigger Output events Retry Idempotency key Concurrency
HandshakeProbe McpServerRegistryService schedule */5 * * * * McpServerStateChanged fixed ×2 serverId + probeWindow 4 by Transport
CapabilityDiscovery McpServerRegistryService event McpServerRegistryService.McpServerRegistered McpCapabilitiesDiscovered exponential ×5 serverId + capabilityHash 2 by TenantId
UncertainEffectReconciler ToolAdapterService schedule */1 * * * * ToolEffectUncertain, ToolInvoked fixed ×3 invocationId + state 4 by TenantId
SandboxReaper ToolAdapterService schedule */2 * * * * SandboxReleased exponential ×5 leaseId 4 by PoolId
DescriptorHealthProbe ToolAdapterService schedule */5 * * * * — fixed ×2 toolId + version + probeWindow 4 by Kind
  • HandshakeProbe (McpServerRegistryService): Performs the MCP initialize handshake against every Active server and tracks protocol version and health.
  • CapabilityDiscovery (McpServerRegistryService): Lists tools, resources and prompts after registration or on schema change and refreshes bindings; new or changed schemas unbind until re-approved.
  • UncertainEffectReconciler (ToolAdapterService): Finds Executing invocations whose grain is inactive or whose sandbox lease expired and settles them as Uncertain (or Failed when no effect was possible), notifying the runtime.
  • SandboxReaper (ToolAdapterService): Releases sandboxes and workspaces whose invocation ended or whose lease expired; reports to Execution Capacity.
  • DescriptorHealthProbe (ToolAdapterService): Probes native and MCP tools (handshake, schema fetch) and marks descriptors healthy or unhealthy.

Grains (actors)

Grain Service Key Reminders / timers Reentrant Summary
ToolInvocationGrain ToolAdapterService guid = invocationId timeout, credential-expiry no Serialises the pipeline of one invocation, holds the sandbox lease and the fencing token, streams progress and enforces the timeout reminder.

Sagas

None modelled

No sagas are modelled for this item yet.