Skip to content

refactor: introduce IAegisBackend service layer for MCP (#1697)#1707

Merged
OneStepAt4time merged 1 commit intodevelopfrom
refactor/1697-mcp-service
Apr 12, 2026
Merged

refactor: introduce IAegisBackend service layer for MCP (#1697)#1707
OneStepAt4time merged 1 commit intodevelopfrom
refactor/1697-mcp-service

Conversation

@OneStepAt4time
Copy link
Copy Markdown
Owner

Summary

Introduces a shared service interface layer (IAegisBackend) between the MCP tools and the Aegis backend, enabling both remote (HTTP) and in-process (embedded) operation modes.

Changes

  • src/services/interfaces.ts — New file defining 5 domain interfaces (ISessionService, IServerService, IPipelineService, IMemoryService, IAuthService) and their composite IAegisBackend, plus shared response types
  • src/mcp/client.ts — AegisClient now implements IAegisBackend; response types moved to shared interfaces; fix \createPipeline\ body to send \stages\ (matching API schema)
  • src/mcp/embedded.ts — New \EmbeddedBackend\ implementing \IAegisBackend\ via direct class calls (no HTTP round-trip)
  • src/mcp/server.ts — New \createMcpServerFromBackend(backend)\ factory accepting any \IAegisBackend; existing \createMcpServer(port)\ delegates to it
  • src/mcp/auth.ts, resources.ts, tools/*.ts — All accept \IAegisBackend\ instead of concrete \AegisClient\
  • src/mcp-server.ts — Re-exports \EmbeddedBackend, \createMcpServerFromBackend, and \IAegisBackend\

Acceptance Criteria

  • Service interfaces shared between HTTP routes and MCP
  • MCP can operate without HTTP round-trip (in-process mode via EmbeddedBackend)
  • AegisClient retained as remote-mode adapter
  • All 24 MCP tools functional in both modes (interface-compatible)
  • Quality gate: tsc, build, 159 test files / 2814 tests pass

Aegis version

Developed with: v0.3.2-alpha

Closes #1697

- Define shared service interfaces (ISessionService, IServerService,
  IPipelineService, IMemoryService, IAuthService) in services/interfaces.ts
- Compose IAegisBackend as a union of all domain interfaces
- AegisClient implements IAegisBackend (remote HTTP adapter)
- Create EmbeddedBackend implementing IAegisBackend (in-process adapter)
- Update all MCP modules to accept IAegisBackend instead of AegisClient
- Add createMcpServerFromBackend factory for backend injection
- Fix createPipeline to map steps->stages matching API schema
- Keep AegisClient as default for CLI remote mode (startMcpServer)

Closes #1697
@OneStepAt4time OneStepAt4time merged commit 5c2f92d into develop Apr 12, 2026
11 checks passed
@OneStepAt4time OneStepAt4time deleted the refactor/1697-mcp-service branch April 12, 2026 15:10
@OneStepAt4time OneStepAt4time self-assigned this Apr 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant