Class: LanguageOperator::Dsl::McpServerDefinition
- Inherits:
-
Object
- Object
- LanguageOperator::Dsl::McpServerDefinition
- Defined in:
- lib/language_operator/dsl/mcp_server_definition.rb
Overview
MCP server definition for agents
Allows agents to expose their own tools via the MCP protocol. Tools defined here can be called by other agents or MCP clients.
Instance Attribute Summary collapse
-
#server_name ⇒ Object
readonly
Returns the value of attribute server_name.
-
#tools ⇒ Object
readonly
Returns the value of attribute tools.
Instance Method Summary collapse
-
#all_tools ⇒ Array<ToolDefinition>
Get all tool definitions.
-
#initialize(agent_name) ⇒ McpServerDefinition
constructor
A new instance of McpServerDefinition.
-
#name(name = nil) ⇒ String
Set custom server name.
-
#tool(name) { ... } ⇒ ToolDefinition
Define a tool that this agent exposes.
-
#tools? ⇒ Boolean
Check if any tools are defined.
Constructor Details
#initialize(agent_name) ⇒ McpServerDefinition
Returns a new instance of McpServerDefinition.
30 31 32 33 34 |
# File 'lib/language_operator/dsl/mcp_server_definition.rb', line 30 def initialize(agent_name) @agent_name = agent_name @server_name = "#{agent_name}-mcp" @tools = {} end |
Instance Attribute Details
#server_name ⇒ Object (readonly)
Returns the value of attribute server_name.
28 29 30 |
# File 'lib/language_operator/dsl/mcp_server_definition.rb', line 28 def server_name @server_name end |
#tools ⇒ Object (readonly)
Returns the value of attribute tools.
28 29 30 |
# File 'lib/language_operator/dsl/mcp_server_definition.rb', line 28 def tools @tools end |
Instance Method Details
#all_tools ⇒ Array<ToolDefinition>
Get all tool definitions
61 62 63 |
# File 'lib/language_operator/dsl/mcp_server_definition.rb', line 61 def all_tools @tools.values end |
#name(name = nil) ⇒ String
Set custom server name
52 53 54 55 56 |
# File 'lib/language_operator/dsl/mcp_server_definition.rb', line 52 def name(name = nil) return @server_name if name.nil? @server_name = name end |
#tool(name) { ... } ⇒ ToolDefinition
Define a tool that this agent exposes
41 42 43 44 45 46 |
# File 'lib/language_operator/dsl/mcp_server_definition.rb', line 41 def tool(name, &block) tool_def = ToolDefinition.new(name) tool_def.instance_eval(&block) if block @tools[name] = tool_def tool_def end |
#tools? ⇒ Boolean
Check if any tools are defined
68 69 70 |
# File 'lib/language_operator/dsl/mcp_server_definition.rb', line 68 def tools? !@tools.empty? end |