MCP Server Classes¶
The twelve classes that own the 44 tools. Each is a [McpServerToolType] class in Aetherium_Refactor/McpServers/, registered in Program.cs with a .WithTools<T>() call. "MCP server class" means the class — all are hosted in-process; none is a separate running process. See §07 — MCP Architecture for the role they play in dispatch.
No constructor injection
These classes are stateless tool containers — they have no constructor dependencies. Every tool method takes IServiceProvider serviceProvider as its first parameter and resolves what it needs at call time via GetRequiredService<T>() / GetService<T>(). The "Dependencies" column lists the services each class actually resolves, not constructor parameters. Routing and filtering happen in McpToolRouter (in Services/, not a tool class).
The twelve classes¶
| Class | Tools (count) | Dependencies (resolved per call) |
|---|---|---|
| WorkspaceTools | read_file, write_file, edit_file, list_files, revert_file, search_files (6) | IWorkspaceExecutor, IMcpSessionProvider, FileSnapshotService |
| ShellTools | run_shell, read_logs (2) | IMcpSessionProvider, IWorkspaceExecutor, IContainerExecutor, DockerService, ToolApprovalService, IDbContextFactory<AetheriumDbContext> (command log), ILoggerFactory |
| ResearchTools | web_search, web_fetch, http_request, download_pdf, http_health_check, capture_reference (6) | IHttpClientFactory, ISettingsService (SearXNG_Url), IMcpSessionProvider, ToolApprovalService, IWorkspaceExecutor (PDF save); PdfPig for extraction. partial class. |
| KnowledgeTools | search_knowledge, write_knowledge (2) | IRagService (cast to ChromaDbRagService for domain collections), IMcpSessionProvider |
| QualityTools | analyze_code, code_review, run_tests, validate_web_app, capture_api_schema, record_style, check_finishing, play_test (8) | IWorkspaceExecutor, IContainerExecutor, IMcpSessionProvider, ModelSchedulerService (LLM review) |
| PlanningTools | create_plan, read_plan, update_plan, todo (4) | PlanningService (resolved in a scope), IMcpSessionProvider, TodoStore (todo only) |
| CommunicationTools | notify_user, report_progress (2) | IHubContext<NotificationHub>, IHubContext<ProjectRunHub>, IMcpSessionProvider |
| OrchestrationTools | delegate, reply, spawn_subagents (3) | None — all three return marker JSON and call no service |
| TeamMessagingTools | send_message_to (1) | IMcpSessionProvider, PersistentAgentService, OrchestratorService (optional, for target metadata) |
| ComfyUITools | comfyui_generate, comfyui_status, finish_image, comfyui_video (4) | ComfyUIService; ffmpeg on the host for comfyui_video |
| AudioTools | tts_render, tts_status (2) | IHttpClientFactory (the voice service), IOptions<TtsOptions>, IMcpSessionProvider, WorkspaceImageManifest; ffmpeg on the host |
| DeviceTools | frame_status, frame_install, frame_run, frame_grab (4) | IOptions<SteamFrameOptions> (Aetherium:Devices:SteamFrame), the session's workspace; the device/steam-frame scripts, adb and ssh on the host. One call at a time holds the headset |
Twelve classes, 44 tools, thirteen server groups. The team group (the tenth, for send_message_to) was added in a later iteration; some in-code comments still say "9 server groups" — the live count from the router's group map is 13 (video, for comfyui_video, is the twelfth; device, for the Steam Frame tools, the thirteenth).
Group and tier maps¶
Both maps are static in McpToolRouter — fixed at compile time, not configurable.
ToolToServerGroupmaps each of the 44 tools to one ofworkspace, shell, research, knowledge, quality, planning, comms, orchestration, team, comfyui, video, audio, device. The full mapping is the Group column in the tool catalog.ToolSecurityLevelslists only the non-Standard tools (8 Elevated, 4 Restricted); the lookup defaults everything else to Standard. See tiers.
A boot-time ToolCatalogValidator (a hosted service) asserts the router's registered tool set matches what the prompt-enhancer documents, failing fast on drift when Aetherium:ToolCatalog:FailOnDrift is true (Configuration).
Where to go next¶
- Tools — full signatures for every tool these classes own.
- Schema · mcp_servers derivation — how a node's allowed classes are computed.
- §06 — Key Services — the services in the Dependencies column.
- §12 — Extending the Engine — adding a tool or a new server class.