actionmcp 0.111.0 → 0.200.0

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.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -18
  3. data/Rakefile +3 -0
  4. data/app/controllers/action_mcp/application_controller.rb +166 -109
  5. data/app/controllers/action_mcp/mcp_app_renderer.rb +1 -0
  6. data/app/helpers/action_mcp/apps_helper.rb +48 -0
  7. data/app/jobs/action_mcp/tool_execution_job.rb +67 -35
  8. data/app/models/action_mcp/session/message.rb +8 -3
  9. data/app/models/action_mcp/session/task.rb +15 -5
  10. data/app/models/action_mcp/session.rb +93 -19
  11. data/config/routes.rb +1 -1
  12. data/lib/action_mcp/apps/javascript/ext_apps.LICENSE +216 -0
  13. data/lib/action_mcp/apps/javascript/ext_apps.js +78 -0
  14. data/lib/action_mcp/apps/view_manifest.rb +170 -0
  15. data/lib/action_mcp/apps.rb +17 -2
  16. data/lib/action_mcp/configuration.rb +14 -30
  17. data/lib/action_mcp/content/audio.rb +4 -1
  18. data/lib/action_mcp/content/base.rb +3 -1
  19. data/lib/action_mcp/content/image.rb +4 -1
  20. data/lib/action_mcp/content/resource.rb +15 -14
  21. data/lib/action_mcp/content/resource_link.rb +15 -5
  22. data/lib/action_mcp/content/text.rb +2 -1
  23. data/lib/action_mcp/content/validation.rb +253 -0
  24. data/lib/action_mcp/content.rb +3 -1
  25. data/lib/action_mcp/dev/runner.rb +203 -0
  26. data/lib/action_mcp/engine.rb +24 -2
  27. data/lib/action_mcp/json_rpc_handler_base.rb +7 -12
  28. data/lib/action_mcp/logging/logger.rb +16 -11
  29. data/lib/action_mcp/logging.rb +34 -1
  30. data/lib/action_mcp/middleware/origin_validation.rb +9 -13
  31. data/lib/action_mcp/output_schema_builder.rb +2 -0
  32. data/lib/action_mcp/prompt_response.rb +12 -2
  33. data/lib/action_mcp/protocol_validator.rb +513 -0
  34. data/lib/action_mcp/renderable.rb +4 -4
  35. data/lib/action_mcp/resource.rb +15 -11
  36. data/lib/action_mcp/resource_template.rb +105 -90
  37. data/lib/action_mcp/resource_templates_registry.rb +31 -97
  38. data/lib/action_mcp/schema_validator.rb +43 -0
  39. data/lib/action_mcp/server/base_session.rb +134 -28
  40. data/lib/action_mcp/server/base_session_store.rb +1 -1
  41. data/lib/action_mcp/server/capabilities.rb +10 -30
  42. data/lib/action_mcp/server/client_notifications.rb +63 -0
  43. data/lib/action_mcp/server/completions.rb +68 -0
  44. data/lib/action_mcp/server/elicitation.rb +47 -25
  45. data/lib/action_mcp/server/elicitation_request.rb +136 -51
  46. data/lib/action_mcp/server/handlers/logging_handler.rb +7 -5
  47. data/lib/action_mcp/server/handlers/prompt_handler.rb +12 -1
  48. data/lib/action_mcp/server/handlers/resource_handler.rb +41 -7
  49. data/lib/action_mcp/server/handlers/task_handler.rb +26 -0
  50. data/lib/action_mcp/server/handlers/tool_handler.rb +8 -0
  51. data/lib/action_mcp/server/json_rpc_handler.rb +5 -21
  52. data/lib/action_mcp/server/messaging_service.rb +3 -1
  53. data/lib/action_mcp/server/prompts.rb +5 -3
  54. data/lib/action_mcp/server/resources.rb +35 -2
  55. data/lib/action_mcp/server/response_collector.rb +5 -1
  56. data/lib/action_mcp/server/roots.rb +15 -2
  57. data/lib/action_mcp/server/sampling.rb +36 -1
  58. data/lib/action_mcp/server/sampling_request.rb +317 -55
  59. data/lib/action_mcp/server/tasks.rb +27 -45
  60. data/lib/action_mcp/server/tool_result.rb +27 -0
  61. data/lib/action_mcp/server/tools.rb +13 -8
  62. data/lib/action_mcp/server/transport_handler.rb +3 -0
  63. data/lib/action_mcp/server/url_elicitation_request.rb +13 -0
  64. data/lib/action_mcp/tool.rb +133 -199
  65. data/lib/action_mcp/tool_response.rb +35 -4
  66. data/lib/action_mcp/tools_registry.rb +1 -1
  67. data/lib/action_mcp/version.rb +1 -1
  68. data/lib/action_mcp.rb +2 -5
  69. data/lib/generators/action_mcp/identifier/identifier_generator.rb +1 -1
  70. data/lib/generators/action_mcp/identifier/templates/identifier.rb.erb +1 -1
  71. data/lib/generators/action_mcp/install/templates/bin/mcp +16 -4
  72. data/lib/generators/action_mcp/install/templates/mcp/config.ru.tt +2 -2
  73. data/lib/generators/action_mcp/install/templates/mcp.yml +4 -0
  74. data/lib/generators/action_mcp/resource_template/resource_template_generator.rb +18 -1
  75. data/lib/generators/action_mcp/resource_template/templates/resource_template_ui.rb.erb +27 -0
  76. data/lib/generators/action_mcp/tool/templates/tool.rb.erb +6 -0
  77. data/lib/generators/action_mcp/tool/tool_generator.rb +2 -0
  78. data/lib/generators/action_mcp/view/templates/resource_template.rb.erb +16 -0
  79. data/lib/generators/action_mcp/view/templates/view.html.erb +27 -0
  80. data/lib/generators/action_mcp/view/view_generator.rb +57 -0
  81. data/lib/tasks/action_mcp_apps.rake +17 -0
  82. data/lib/tasks/action_mcp_tasks.rake +135 -74
  83. metadata +47 -17
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.111.0
4
+ version: 0.200.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdelkader Boudih
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: 8.1.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: addressable
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '2.8'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '2.8'
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: concurrent-ruby
42
56
  requirement: !ruby/object:Gem::Requirement
@@ -51,20 +65,34 @@ dependencies:
51
65
  - - ">="
52
66
  - !ruby/object:Gem::Version
53
67
  version: 1.3.1
68
+ - !ruby/object:Gem::Dependency
69
+ name: json_schemer
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '2.4'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '2.4'
54
82
  - !ruby/object:Gem::Dependency
55
83
  name: jsonrpc-rails
56
84
  requirement: !ruby/object:Gem::Requirement
57
85
  requirements:
58
86
  - - ">="
59
87
  - !ruby/object:Gem::Version
60
- version: 0.5.3
88
+ version: 0.6.0
61
89
  type: :runtime
62
90
  prerelease: false
63
91
  version_requirements: !ruby/object:Gem::Requirement
64
92
  requirements:
65
93
  - - ">="
66
94
  - !ruby/object:Gem::Version
67
- version: 0.5.3
95
+ version: 0.6.0
68
96
  - !ruby/object:Gem::Dependency
69
97
  name: multi_json
70
98
  requirement: !ruby/object:Gem::Requirement
@@ -127,20 +155,6 @@ dependencies:
127
155
  - - ">="
128
156
  - !ruby/object:Gem::Version
129
157
  version: 0.100.0
130
- - !ruby/object:Gem::Dependency
131
- name: json_schemer
132
- requirement: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: '2.4'
137
- type: :development
138
- prerelease: false
139
- version_requirements: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: '2.4'
144
158
  description: A streamlined, production-focused toolkit for building MCP servers in
145
159
  Rails applications. Provides essential base classes, authentication gateways, and
146
160
  HTTP transport with minimal dependencies.
@@ -156,6 +170,7 @@ files:
156
170
  - Rakefile
157
171
  - app/controllers/action_mcp/application_controller.rb
158
172
  - app/controllers/action_mcp/mcp_app_renderer.rb
173
+ - app/helpers/action_mcp/apps_helper.rb
159
174
  - app/jobs/action_mcp/tool_execution_job.rb
160
175
  - app/models/action_mcp.rb
161
176
  - app/models/action_mcp/application_record.rb
@@ -170,6 +185,9 @@ files:
170
185
  - exe/actionmcp_cli
171
186
  - lib/action_mcp.rb
172
187
  - lib/action_mcp/apps.rb
188
+ - lib/action_mcp/apps/javascript/ext_apps.LICENSE
189
+ - lib/action_mcp/apps/javascript/ext_apps.js
190
+ - lib/action_mcp/apps/view_manifest.rb
173
191
  - lib/action_mcp/base_response.rb
174
192
  - lib/action_mcp/callbacks.rb
175
193
  - lib/action_mcp/capability.rb
@@ -182,8 +200,10 @@ files:
182
200
  - lib/action_mcp/content/resource.rb
183
201
  - lib/action_mcp/content/resource_link.rb
184
202
  - lib/action_mcp/content/text.rb
203
+ - lib/action_mcp/content/validation.rb
185
204
  - lib/action_mcp/current.rb
186
205
  - lib/action_mcp/current_helpers.rb
206
+ - lib/action_mcp/dev/runner.rb
187
207
  - lib/action_mcp/engine.rb
188
208
  - lib/action_mcp/filtered_logger.rb
189
209
  - lib/action_mcp/gateway.rb
@@ -212,6 +232,7 @@ files:
212
232
  - lib/action_mcp/prompt.rb
213
233
  - lib/action_mcp/prompt_response.rb
214
234
  - lib/action_mcp/prompts_registry.rb
235
+ - lib/action_mcp/protocol_validator.rb
215
236
  - lib/action_mcp/registry_base.rb
216
237
  - lib/action_mcp/renderable.rb
217
238
  - lib/action_mcp/resource.rb
@@ -220,12 +241,15 @@ files:
220
241
  - lib/action_mcp/resource_template.rb
221
242
  - lib/action_mcp/resource_templates_registry.rb
222
243
  - lib/action_mcp/schema_helpers.rb
244
+ - lib/action_mcp/schema_validator.rb
223
245
  - lib/action_mcp/server.rb
224
246
  - lib/action_mcp/server/active_record_session_store.rb
225
247
  - lib/action_mcp/server/base_messaging.rb
226
248
  - lib/action_mcp/server/base_session.rb
227
249
  - lib/action_mcp/server/base_session_store.rb
228
250
  - lib/action_mcp/server/capabilities.rb
251
+ - lib/action_mcp/server/client_notifications.rb
252
+ - lib/action_mcp/server/completions.rb
229
253
  - lib/action_mcp/server/elicitation.rb
230
254
  - lib/action_mcp/server/elicitation_request.rb
231
255
  - lib/action_mcp/server/error_aware.rb
@@ -250,6 +274,7 @@ files:
250
274
  - lib/action_mcp/server/session_store_factory.rb
251
275
  - lib/action_mcp/server/tasks.rb
252
276
  - lib/action_mcp/server/test_session_store.rb
277
+ - lib/action_mcp/server/tool_result.rb
253
278
  - lib/action_mcp/server/tools.rb
254
279
  - lib/action_mcp/server/transport_handler.rb
255
280
  - lib/action_mcp/server/url_elicitation_request.rb
@@ -282,8 +307,13 @@ files:
282
307
  - lib/generators/action_mcp/prompt/templates/prompt.rb.erb
283
308
  - lib/generators/action_mcp/resource_template/resource_template_generator.rb
284
309
  - lib/generators/action_mcp/resource_template/templates/resource_template.rb.erb
310
+ - lib/generators/action_mcp/resource_template/templates/resource_template_ui.rb.erb
285
311
  - lib/generators/action_mcp/tool/templates/tool.rb.erb
286
312
  - lib/generators/action_mcp/tool/tool_generator.rb
313
+ - lib/generators/action_mcp/view/templates/resource_template.rb.erb
314
+ - lib/generators/action_mcp/view/templates/view.html.erb
315
+ - lib/generators/action_mcp/view/view_generator.rb
316
+ - lib/tasks/action_mcp_apps.rake
287
317
  - lib/tasks/action_mcp_tasks.rake
288
318
  homepage: https://github.com/seuros/action_mcp
289
319
  licenses: