Class: MCP::Rails::Configuration
- Inherits:
-
Object
- Object
- MCP::Rails::Configuration
- Defined in:
- lib/mcp/rails/configuration.rb
Instance Attribute Summary collapse
- #bypass_key_path ⇒ Object
-
#engine_configurations ⇒ Object
readonly
Engine configurations.
-
#env_vars ⇒ Object
Environment variables to include in tool calls.
- #output_directory ⇒ Object
-
#server_name ⇒ Object
Server configuration.
-
#server_version ⇒ Object
Server configuration.
Instance Method Summary collapse
- #base_url ⇒ Object
- #base_url=(url) ⇒ Object
-
#for_engine(engine) ⇒ Object
Get configuration for a specific engine.
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
-
#register_engine(engine, settings = {}) ⇒ Object
Register an engine’s configuration.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/mcp/rails/configuration.rb', line 18 def initialize # Server defaults @server_name = "mcp-server" @server_version = "1.0.0" # Output defaults @output_directory = ::Rails.root.join("tmp", "mcp") if defined?(::Rails) @bypass_key_path = ::Rails.root.join("tmp", "mcp", "bypass_key.txt") if defined?(::Rails) # Environment variables to include in tool calls @env_vars = [] # Initialize engine configurations hash @engine_configurations = {} end |
Instance Attribute Details
#bypass_key_path ⇒ Object
52 53 54 |
# File 'lib/mcp/rails/configuration.rb', line 52 def bypass_key_path Pathname.new(@bypass_key_path || ::Rails.root.join("tmp", "mcp", "bypass_key.txt")) end |
#engine_configurations ⇒ Object (readonly)
Engine configurations
16 17 18 |
# File 'lib/mcp/rails/configuration.rb', line 16 def engine_configurations @engine_configurations end |
#env_vars ⇒ Object
Environment variables to include in tool calls
13 14 15 |
# File 'lib/mcp/rails/configuration.rb', line 13 def env_vars @env_vars end |
#output_directory ⇒ Object
56 57 58 |
# File 'lib/mcp/rails/configuration.rb', line 56 def output_directory Pathname.new(@output_directory || ::Rails.root.join("tmp", "mcp")) end |
#server_name ⇒ Object
Server configuration
7 8 9 |
# File 'lib/mcp/rails/configuration.rb', line 7 def server_name @server_name end |
#server_version ⇒ Object
Server configuration
7 8 9 |
# File 'lib/mcp/rails/configuration.rb', line 7 def server_version @server_version end |
Instance Method Details
#base_url ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/mcp/rails/configuration.rb', line 34 def base_url return @base_url if defined?(@base_url) if defined?(::Rails) = ::Rails.application.config.action_mailer. || {} host = [:host] || "localhost" port = [:port] || "3000" protocol = [:protocol] || "http" "#{protocol}://#{host}:#{port}" else "http://localhost:3000" end end |
#base_url=(url) ⇒ Object
48 49 50 |
# File 'lib/mcp/rails/configuration.rb', line 48 def base_url=(url) @base_url = url end |
#for_engine(engine) ⇒ Object
Get configuration for a specific engine
67 68 69 70 71 72 73 74 75 |
# File 'lib/mcp/rails/configuration.rb', line 67 def for_engine(engine) return self unless engine engine_config = @engine_configurations[engine.engine_name] dup.tap do |config| config.server_name = engine.engine_name config.instance_variable_set(:@env_vars, (self.env_vars + engine_config.env_vars).uniq) end end |
#register_engine(engine, settings = {}) ⇒ Object
Register an engine’s configuration
61 62 63 64 |
# File 'lib/mcp/rails/configuration.rb', line 61 def register_engine(engine, settings = {}) engine_name = engine.respond_to?(:engine_name) ? engine.engine_name : engine @engine_configurations[engine_name] = EngineConfiguration.new(settings) end |