Module: MCP::Server
- Defined in:
- lib/mcp/server.rb,
lib/mcp/server/http.rb,
lib/mcp/server/tool.rb,
lib/mcp/server/stdio/reader.rb,
lib/mcp/server/stdio/writer.rb,
lib/mcp/server/request_handler.rb,
lib/mcp/server/resource_template.rb
Defined Under Namespace
Modules: Stdio
Classes: Http, RequestHandler, ResourceTemplate, Tool
Class Method Summary
collapse
Class Method Details
7
8
9
|
# File 'lib/mcp/server.rb', line 7
def configure(&block)
self.instance_eval(&block) if block_given?
end
|
.http ⇒ Object
48
49
50
|
# File 'lib/mcp/server.rb', line 48
def http
Http.new
end
|
44
45
46
|
# File 'lib/mcp/server.rb', line 44
def list_tools(&block)
request_handlers["tools/list"] = block
end
|
.request_handlers ⇒ Object
28
29
30
|
# File 'lib/mcp/server.rb', line 28
def request_handlers
@request_handlers ||= {}
end
|
.resource(uri, &block) ⇒ Object
38
39
40
41
42
|
# File 'lib/mcp/server.rb', line 38
def resource(uri, &block)
resource_template = ResourceTemplate.new(uri)
resource_template.instance_eval(&block)
resource_templates[uri] = resource_template
end
|
.resource_templates ⇒ Object
24
25
26
|
# File 'lib/mcp/server.rb', line 24
def resource_templates
@resource_templates ||= {}
end
|
.stdio ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/mcp/server.rb', line 52
def stdio
reader = Stdio::Reader.new
writer = Stdio::Writer.new
request_handler = RequestHandler.new
loop do
reader.read do |request|
response = request_handler.handle_request(request)
writer.write(response)
end
end
end
|
32
33
34
35
36
|
# File 'lib/mcp/server.rb', line 32
def tool(name, &block)
tool = Tool.new(name)
tool.instance_eval(&block)
tools[name] = tool
end
|
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/mcp/server.rb', line 11
def tools(tool_list = nil)
if tool_list.nil?
@tools ||= {}
elsif tool_list.is_a?(Array)
@tools ||= {}
tool_list.each do |tool|
@tools[tool.name] = tool
end
else
raise ArgumentError, "Expected an array of tools"
end
end
|