mcp_toolkit 0.3.0 → 0.5.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +432 -2
- data/README.md +315 -34
- data/config/routes.rb +20 -5
- data/lib/mcp_toolkit/auth/authority.rb +2 -2
- data/lib/mcp_toolkit/authority/composite_tool_provider.rb +32 -0
- data/lib/mcp_toolkit/authority/context.rb +45 -0
- data/lib/mcp_toolkit/authority/controller_methods.rb +423 -0
- data/lib/mcp_toolkit/authority/registry_tool_provider.rb +69 -0
- data/lib/mcp_toolkit/authority/single_tool_provider.rb +25 -0
- data/lib/mcp_toolkit/authority/token.rb +124 -0
- data/lib/mcp_toolkit/authority/tools/base.rb +150 -0
- data/lib/mcp_toolkit/authority/tools/get.rb +59 -0
- data/lib/mcp_toolkit/authority/tools/list.rb +132 -0
- data/lib/mcp_toolkit/authority/tools/resource_schema.rb +52 -0
- data/lib/mcp_toolkit/authority/tools/resources.rb +55 -0
- data/lib/mcp_toolkit/authority.rb +24 -0
- data/lib/mcp_toolkit/configuration.rb +362 -5
- data/lib/mcp_toolkit/dispatcher.rb +248 -0
- data/lib/mcp_toolkit/engine.rb +26 -8
- data/lib/mcp_toolkit/engine_controllers.rb +124 -0
- data/lib/mcp_toolkit/filtering.rb +168 -23
- data/lib/mcp_toolkit/gateway/aggregator.rb +142 -0
- data/lib/mcp_toolkit/gateway/client.rb +305 -0
- data/lib/mcp_toolkit/gateway/proxy.rb +70 -0
- data/lib/mcp_toolkit/gateway/unknown_upstream.rb +8 -0
- data/lib/mcp_toolkit/gateway/upstream_call_error.rb +23 -0
- data/lib/mcp_toolkit/gateway/upstream_registry.rb +79 -0
- data/lib/mcp_toolkit/list_executor.rb +65 -4
- data/lib/mcp_toolkit/protocol.rb +106 -0
- data/lib/mcp_toolkit/rate_limiter.rb +73 -0
- data/lib/mcp_toolkit/registry.rb +30 -2
- data/lib/mcp_toolkit/resource.rb +173 -6
- data/lib/mcp_toolkit/resource_schema.rb +135 -13
- data/lib/mcp_toolkit/serializer/association_descriptor.rb +11 -0
- data/lib/mcp_toolkit/serializer/base.rb +2 -2
- data/lib/mcp_toolkit/serializer/target_ref.rb +7 -0
- data/lib/mcp_toolkit/session.rb +18 -10
- data/lib/mcp_toolkit/tool_reference_rewriter.rb +33 -0
- data/lib/mcp_toolkit/tools/authority_base.rb +148 -0
- data/lib/mcp_toolkit/tools/base.rb +23 -3
- data/lib/mcp_toolkit/tools/get.rb +1 -1
- data/lib/mcp_toolkit/tools/list.rb +27 -9
- data/lib/mcp_toolkit/tools/resource_schema.rb +12 -3
- data/lib/mcp_toolkit/tools/resources.rb +30 -7
- data/lib/mcp_toolkit/transport/controller_methods.rb +2 -2
- data/lib/mcp_toolkit/usage_metering/recorder.rb +121 -0
- data/lib/mcp_toolkit/version.rb +1 -1
- data/lib/mcp_toolkit.rb +16 -3
- metadata +42 -2
- data/app/controllers/mcp_toolkit/server_controller.rb +0 -19
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mcp_toolkit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Karol Galanciak
|
|
@@ -65,6 +65,20 @@ dependencies:
|
|
|
65
65
|
- - ">="
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
67
|
version: '1.0'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: concurrent-ruby
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '1.1'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '1.1'
|
|
68
82
|
description: |
|
|
69
83
|
mcp_toolkit extracts the shared MCP-server framework that Smily's apps grew
|
|
70
84
|
independently: a Streamable-HTTP transport, cache-backed sessions, central-app
|
|
@@ -84,32 +98,57 @@ files:
|
|
|
84
98
|
- LICENSE.txt
|
|
85
99
|
- README.md
|
|
86
100
|
- Rakefile
|
|
87
|
-
- app/controllers/mcp_toolkit/server_controller.rb
|
|
88
101
|
- config/routes.rb
|
|
89
102
|
- lib/mcp_toolkit.rb
|
|
90
103
|
- lib/mcp_toolkit/auth/authenticator.rb
|
|
91
104
|
- lib/mcp_toolkit/auth/authority.rb
|
|
92
105
|
- lib/mcp_toolkit/auth/authority_server_client.rb
|
|
93
106
|
- lib/mcp_toolkit/auth/introspection.rb
|
|
107
|
+
- lib/mcp_toolkit/authority.rb
|
|
108
|
+
- lib/mcp_toolkit/authority/composite_tool_provider.rb
|
|
109
|
+
- lib/mcp_toolkit/authority/context.rb
|
|
110
|
+
- lib/mcp_toolkit/authority/controller_methods.rb
|
|
111
|
+
- lib/mcp_toolkit/authority/registry_tool_provider.rb
|
|
112
|
+
- lib/mcp_toolkit/authority/single_tool_provider.rb
|
|
113
|
+
- lib/mcp_toolkit/authority/token.rb
|
|
114
|
+
- lib/mcp_toolkit/authority/tools/base.rb
|
|
115
|
+
- lib/mcp_toolkit/authority/tools/get.rb
|
|
116
|
+
- lib/mcp_toolkit/authority/tools/list.rb
|
|
117
|
+
- lib/mcp_toolkit/authority/tools/resource_schema.rb
|
|
118
|
+
- lib/mcp_toolkit/authority/tools/resources.rb
|
|
94
119
|
- lib/mcp_toolkit/configuration.rb
|
|
120
|
+
- lib/mcp_toolkit/dispatcher.rb
|
|
95
121
|
- lib/mcp_toolkit/engine.rb
|
|
122
|
+
- lib/mcp_toolkit/engine_controllers.rb
|
|
96
123
|
- lib/mcp_toolkit/errors/base.rb
|
|
97
124
|
- lib/mcp_toolkit/errors/configuration_error.rb
|
|
98
125
|
- lib/mcp_toolkit/errors/invalid_params.rb
|
|
99
126
|
- lib/mcp_toolkit/errors/unauthorized.rb
|
|
100
127
|
- lib/mcp_toolkit/field_selection.rb
|
|
101
128
|
- lib/mcp_toolkit/filtering.rb
|
|
129
|
+
- lib/mcp_toolkit/gateway/aggregator.rb
|
|
130
|
+
- lib/mcp_toolkit/gateway/client.rb
|
|
131
|
+
- lib/mcp_toolkit/gateway/proxy.rb
|
|
132
|
+
- lib/mcp_toolkit/gateway/unknown_upstream.rb
|
|
133
|
+
- lib/mcp_toolkit/gateway/upstream_call_error.rb
|
|
134
|
+
- lib/mcp_toolkit/gateway/upstream_registry.rb
|
|
102
135
|
- lib/mcp_toolkit/get_executor.rb
|
|
103
136
|
- lib/mcp_toolkit/list_executor.rb
|
|
137
|
+
- lib/mcp_toolkit/protocol.rb
|
|
138
|
+
- lib/mcp_toolkit/rate_limiter.rb
|
|
104
139
|
- lib/mcp_toolkit/registry.rb
|
|
105
140
|
- lib/mcp_toolkit/resource.rb
|
|
106
141
|
- lib/mcp_toolkit/resource_schema.rb
|
|
107
142
|
- lib/mcp_toolkit/serialization.rb
|
|
143
|
+
- lib/mcp_toolkit/serializer/association_descriptor.rb
|
|
108
144
|
- lib/mcp_toolkit/serializer/base.rb
|
|
145
|
+
- lib/mcp_toolkit/serializer/target_ref.rb
|
|
109
146
|
- lib/mcp_toolkit/server.rb
|
|
110
147
|
- lib/mcp_toolkit/session.rb
|
|
111
148
|
- lib/mcp_toolkit/sql_sanitizer.rb
|
|
112
149
|
- lib/mcp_toolkit/token_kinds.rb
|
|
150
|
+
- lib/mcp_toolkit/tool_reference_rewriter.rb
|
|
151
|
+
- lib/mcp_toolkit/tools/authority_base.rb
|
|
113
152
|
- lib/mcp_toolkit/tools/base.rb
|
|
114
153
|
- lib/mcp_toolkit/tools/get.rb
|
|
115
154
|
- lib/mcp_toolkit/tools/list.rb
|
|
@@ -117,6 +156,7 @@ files:
|
|
|
117
156
|
- lib/mcp_toolkit/tools/resources.rb
|
|
118
157
|
- lib/mcp_toolkit/transport/controller_methods.rb
|
|
119
158
|
- lib/mcp_toolkit/unknown_resource_message.rb
|
|
159
|
+
- lib/mcp_toolkit/usage_metering/recorder.rb
|
|
120
160
|
- lib/mcp_toolkit/version.rb
|
|
121
161
|
- sig/mcp_toolkit.rbs
|
|
122
162
|
homepage: https://github.com/BookingSync/mcp_toolkit
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# The MCP transport controller, provided BY the gem so a satellite mounting
|
|
4
|
-
# McpToolkit::Engine writes no controller of its own. It is the standalone
|
|
5
|
-
# McpToolkit::Transport::ControllerMethods concern wired into a controller.
|
|
6
|
-
#
|
|
7
|
-
# Its parent class is configurable (Doorkeeper-style) via
|
|
8
|
-
# `McpToolkit.config.parent_controller` (default "ActionController::Base"), so a
|
|
9
|
-
# satellite can keep ActionController::Base (NOT ::API) for its logstasher
|
|
10
|
-
# `helper_method` hook:
|
|
11
|
-
#
|
|
12
|
-
# c.parent_controller = "ApplicationController"
|
|
13
|
-
#
|
|
14
|
-
# Lives under the gem's app/controllers (an engine path), so it's loaded by Rails'
|
|
15
|
-
# autoloader via the engine — never by the gem's own Zeitwerk loader, which only
|
|
16
|
-
# manages lib/. Non-Rails consumers never see it.
|
|
17
|
-
class McpToolkit::ServerController < McpToolkit.config.parent_controller.constantize
|
|
18
|
-
include McpToolkit::Transport::ControllerMethods
|
|
19
|
-
end
|