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.