actionmcp 0.55.0 → 0.55.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/action_mcp/client/json_rpc_handler.rb +33 -0
- data/lib/action_mcp/client/{sse_client.rb → streamable_client.rb} +1 -1
- data/lib/action_mcp/client/transport.rb +31 -0
- data/lib/action_mcp/client.rb +1 -1
- data/lib/action_mcp/version.rb +1 -1
- data/lib/action_mcp.rb +0 -1
- data/lib/generators/action_mcp/install/install_generator.rb +1 -1
- data/lib/generators/action_mcp/prompt/prompt_generator.rb +4 -0
- data/lib/generators/action_mcp/resource_template/resource_template_generator.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf09101b39d54989921b8d3969dda8c5233843b95ee824fb83b39d6cd34f2944
|
4
|
+
data.tar.gz: 779085c0b7669076f55474fa3f80f528776930667206fe364834b6f67ccb38d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d6eed8dbf0f7fad93fc9f1c2eb1264f3e216c9a83717c0f1af62624e0b9ff848fe8f867b738252734fdb39d46e45f8b33f88587c1d458e4f866ab88c8e16802
|
7
|
+
data.tar.gz: 4563e80b5d9a69d12868091535b1b6e62500f4f233307b9b623a1f333573742e82c739ea06d51e14fca3c7d3e013dc4475cb0791b1e001c9dc56dfac6f77ef3d
|
@@ -10,6 +10,39 @@ module ActionMCP
|
|
10
10
|
@client = client
|
11
11
|
end
|
12
12
|
|
13
|
+
# Handle client-side JSON-RPC requests/responses
|
14
|
+
# @param request [JSON_RPC::Request, JSON_RPC::Notification, JSON_RPC::Response]
|
15
|
+
def call(request)
|
16
|
+
case request
|
17
|
+
when JSON_RPC::Request
|
18
|
+
handle_request(request)
|
19
|
+
when JSON_RPC::Notification
|
20
|
+
handle_notification(request)
|
21
|
+
when JSON_RPC::Response
|
22
|
+
handle_response(request)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def handle_request(request)
|
29
|
+
id = request.id
|
30
|
+
rpc_method = request.method
|
31
|
+
params = request.params
|
32
|
+
|
33
|
+
handle_method(rpc_method, id, params)
|
34
|
+
end
|
35
|
+
|
36
|
+
def handle_notification(notification)
|
37
|
+
# Handle server notifications to client
|
38
|
+
puts "\e[33mReceived notification: #{notification.method}\e[0m"
|
39
|
+
end
|
40
|
+
|
41
|
+
def handle_response(response)
|
42
|
+
# Handle server responses to client requests
|
43
|
+
puts "\e[32mReceived response: #{response.id} - #{response.result ? 'success' : 'error'}\e[0m"
|
44
|
+
end
|
45
|
+
|
13
46
|
protected
|
14
47
|
|
15
48
|
# Handle client-specific methods
|
@@ -102,6 +102,37 @@ module ActionMCP
|
|
102
102
|
def set_ready(state)
|
103
103
|
@ready = state
|
104
104
|
end
|
105
|
+
|
106
|
+
# Logging methods for transport classes
|
107
|
+
def log_debug(message)
|
108
|
+
@logger.debug("[ActionMCP::#{self.class.name.split('::').last}] #{message}")
|
109
|
+
end
|
110
|
+
|
111
|
+
def log_info(message)
|
112
|
+
@logger.info("[ActionMCP::#{self.class.name.split('::').last}] #{message}")
|
113
|
+
end
|
114
|
+
|
115
|
+
def log_error(message)
|
116
|
+
@logger.error("[ActionMCP::#{self.class.name.split('::').last}] #{message}")
|
117
|
+
end
|
118
|
+
|
119
|
+
private
|
120
|
+
|
121
|
+
def handle_connect
|
122
|
+
@connect_callback&.call
|
123
|
+
end
|
124
|
+
|
125
|
+
def handle_disconnect
|
126
|
+
@disconnect_callback&.call
|
127
|
+
end
|
128
|
+
|
129
|
+
def handle_error(error)
|
130
|
+
@error_callback&.call(error)
|
131
|
+
end
|
132
|
+
|
133
|
+
def handle_message(message)
|
134
|
+
@message_callback&.call(message)
|
135
|
+
end
|
105
136
|
end
|
106
137
|
end
|
107
138
|
end
|
data/lib/action_mcp/client.rb
CHANGED
@@ -68,7 +68,7 @@ module ActionMCP
|
|
68
68
|
Client::StreamableHttpTransport.new(endpoint, **options)
|
69
69
|
when :sse
|
70
70
|
# Legacy SSE transport (wrapped for compatibility)
|
71
|
-
Client::
|
71
|
+
Client::StreamableClient.new(endpoint, **options)
|
72
72
|
else
|
73
73
|
raise ArgumentError, "Unknown transport type: #{type}"
|
74
74
|
end
|
data/lib/action_mcp/version.rb
CHANGED
data/lib/action_mcp.rb
CHANGED
@@ -28,7 +28,6 @@ Zeitwerk::Loader.for_gem.tap do |loader|
|
|
28
28
|
)
|
29
29
|
|
30
30
|
loader.inflector.inflect("action_mcp" => "ActionMCP")
|
31
|
-
loader.inflector.inflect("sse_client" => "SSEClient")
|
32
31
|
loader.inflector.inflect("sse_listener" => "SSEListener")
|
33
32
|
loader.inflector.inflect("oauth" => "OAuth")
|
34
33
|
loader.inflector.inflect("mcp_strategy" => "MCPStrategy")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionmcp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.55.
|
4
|
+
version: 0.55.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdelkader Boudih
|
@@ -228,7 +228,7 @@ files:
|
|
228
228
|
- lib/action_mcp/client/server.rb
|
229
229
|
- lib/action_mcp/client/session_store.rb
|
230
230
|
- lib/action_mcp/client/session_store_factory.rb
|
231
|
-
- lib/action_mcp/client/
|
231
|
+
- lib/action_mcp/client/streamable_client.rb
|
232
232
|
- lib/action_mcp/client/streamable_http_transport.rb
|
233
233
|
- lib/action_mcp/client/test_session_store.rb
|
234
234
|
- lib/action_mcp/client/toolbox.rb
|