Skip to content

MCP backend abstraction#34

Merged
guess merged 22 commits intomainfrom
feature/mcp-backend-abstraction
Mar 15, 2026
Merged

MCP backend abstraction#34
guess merged 22 commits intomainfrom
feature/mcp-backend-abstraction

Conversation

@guess
Copy link
Owner

@guess guess commented Mar 15, 2026

No description provided.

guess added 22 commits March 15, 2026 00:00
The Router no longer imports any Hermes modules directly. All
tool listing, calling, validation, and execution is delegated
to ClaudeCode.MCP.Backend.Hermes.
Replace the fallback-to-Hermes approach in expand_mcp_module/3 with an
explicit compatibility check. Unrecognized modules now raise an
ArgumentError instead of silently assuming Hermes compatibility.
Move detection logic from CLI.Command into ClaudeCode.MCP so both
Router and Command use a single entry point. Drop Hermes branding
from MCP moduledoc.
Remove Hermes.Server.Component dependency from generated tool modules.
Tools now use execute/2 with (params, assigns) instead of Hermes frame.
Schema generation uses our own field macro and type_to_json_schema/1.
Add input_schema validation to Backend.Anubis (required fields + type checks).
Fix router and hermes test assigns to use direct map instead of frame.assigns.
Anubis is checked first in backend_for/1 for subprocess detection.
Backend.Hermes tests reduced to compatible?/1 only since the macro
no longer generates Hermes-compatible modules.
Both backends now check if their respective library (Anubis.Server
or Hermes.Server) is loaded before claiming compatibility. This
allows either dep to be absent without errors.
Backend.Anubis only compiles if Anubis.Server is loaded.
Backend.Hermes only compiles if Hermes.Server is loaded.
backend_for/1 guards with Code.ensure_loaded? before calling.
@guess guess merged commit 4c69cbb into main Mar 15, 2026
4 checks passed
@guess guess deleted the feature/mcp-backend-abstraction branch March 15, 2026 06:04
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