Class: RosettAi::Init::McpRegistrar
- Inherits:
-
Object
- Object
- RosettAi::Init::McpRegistrar
- Defined in:
- lib/rosett_ai/init/mcp_registrar.rb
Overview
Registers the rosett-ai MCP server in Claude Code settings.json.
Called by raictl init --global to enable AI client auto-discovery
of rosett-ai tools via the MCP protocol (DES-RAI-MCP-002).
The registration is idempotent: if the rosett-ai entry already exists, no changes are made.
Constant Summary collapse
- MCP_SERVER_NAME =
'rosett-ai'
Instance Method Summary collapse
-
#initialize(settings_path: nil) ⇒ McpRegistrar
constructor
A new instance of McpRegistrar.
-
#register ⇒ Hash
Registers the rosett-ai MCP server in settings.json.
Constructor Details
#initialize(settings_path: nil) ⇒ McpRegistrar
Returns a new instance of McpRegistrar.
24 25 26 |
# File 'lib/rosett_ai/init/mcp_registrar.rb', line 24 def initialize(settings_path: nil) @settings_path = settings_path || default_settings_path end |
Instance Method Details
#register ⇒ Hash
Registers the rosett-ai MCP server in settings.json.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/rosett_ai/init/mcp_registrar.rb', line 32 def register return skip_result('Settings file not found') unless File.exist?(@settings_path) settings = read_settings return already_registered_result if registered?(settings) settings['mcpServers'] ||= {} settings['mcpServers'][MCP_SERVER_NAME] = server_entry write_settings(settings) { action: :registered, path: @settings_path } rescue JSON::ParserError => e skip_result("Invalid JSON in settings: #{e.}") end |