Method: Explicit::MCPServer#new

Defined in:
lib/explicit/mcp_server.rb

#new(&block) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/explicit/mcp_server.rb', line 6

def new(&block)
  engine = ::Class.new(::Rails::Engine)

  builder = Builder.new.tap { _1.instance_eval(&block) }

  if builder.get_name.blank?
    raise "      MCP servers must have a name. For example:\n\n      Explicit::MCPServer.new do\n        name \"My app\"\n      end\n    TEXT\n  end\n\n  if builder.get_version.blank?\n    raise <<~TEXT\n      MCP servers must have a version. For example:\n\n      Explicit::MCPServer.new do\n        version \"1.0.0\"\n      end\n    TEXT\n  end\n\n  engine.routes.draw do\n    match \"/\", to: builder, as: :explicit_mcp, via: :all\n  end\n\n  engine\nend\n"