model-context-protocol-rb 0.2.0 → 0.3.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/.solargraph.yml +13 -0
- data/CHANGELOG.md +26 -1
- data/README.md +275 -19
- data/Rakefile +2 -0
- data/lib/model_context_protocol/server/configuration.rb +78 -0
- data/lib/model_context_protocol/server/prompt.rb +72 -0
- data/lib/model_context_protocol/server/registry.rb +102 -0
- data/lib/model_context_protocol/server/resource.rb +67 -0
- data/lib/model_context_protocol/server/router.rb +25 -106
- data/lib/model_context_protocol/server/stdio_transport.rb +65 -0
- data/lib/model_context_protocol/server/tool.rb +107 -0
- data/lib/model_context_protocol/server.rb +89 -55
- data/lib/model_context_protocol/version.rb +1 -1
- data/tasks/mcp.rake +62 -0
- data/tasks/templates/dev.erb +33 -0
- metadata +26 -8
- data/lib/model_context_protocol/server/router/base_map.rb +0 -22
- data/lib/model_context_protocol/server/router/prompts_map.rb +0 -17
- data/lib/model_context_protocol/server/router/protocol_map.rb +0 -0
- data/lib/model_context_protocol/server/router/resources_map.rb +0 -17
- data/lib/model_context_protocol/server/router/tools_map.rb +0 -17
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: model-context-protocol-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dick Davis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
12
|
-
dependencies:
|
11
|
+
date: 2025-04-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json-schema
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.1'
|
13
27
|
description:
|
14
28
|
email:
|
15
29
|
- dick@hey.com
|
@@ -19,6 +33,7 @@ extra_rdoc_files: []
|
|
19
33
|
files:
|
20
34
|
- ".reek.yml"
|
21
35
|
- ".rspec"
|
36
|
+
- ".solargraph.yml"
|
22
37
|
- ".standard.yml"
|
23
38
|
- ".tool-versions"
|
24
39
|
- CHANGELOG.md
|
@@ -27,13 +42,16 @@ files:
|
|
27
42
|
- Rakefile
|
28
43
|
- lib/model_context_protocol.rb
|
29
44
|
- lib/model_context_protocol/server.rb
|
45
|
+
- lib/model_context_protocol/server/configuration.rb
|
46
|
+
- lib/model_context_protocol/server/prompt.rb
|
47
|
+
- lib/model_context_protocol/server/registry.rb
|
48
|
+
- lib/model_context_protocol/server/resource.rb
|
30
49
|
- lib/model_context_protocol/server/router.rb
|
31
|
-
- lib/model_context_protocol/server/
|
32
|
-
- lib/model_context_protocol/server/
|
33
|
-
- lib/model_context_protocol/server/router/protocol_map.rb
|
34
|
-
- lib/model_context_protocol/server/router/resources_map.rb
|
35
|
-
- lib/model_context_protocol/server/router/tools_map.rb
|
50
|
+
- lib/model_context_protocol/server/stdio_transport.rb
|
51
|
+
- lib/model_context_protocol/server/tool.rb
|
36
52
|
- lib/model_context_protocol/version.rb
|
53
|
+
- tasks/mcp.rake
|
54
|
+
- tasks/templates/dev.erb
|
37
55
|
homepage: https://github.com/dickdavis/model-context-protocol-rb
|
38
56
|
licenses:
|
39
57
|
- MIT
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module ModelContextProtocol
|
2
|
-
class Server
|
3
|
-
class Router
|
4
|
-
##
|
5
|
-
# Base class for route maps.
|
6
|
-
class BaseMap
|
7
|
-
def initialize(routes)
|
8
|
-
@routes = routes
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def register(method, handler, **options)
|
14
|
-
@routes[method] = {
|
15
|
-
handler: handler,
|
16
|
-
options: options
|
17
|
-
}
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module ModelContextProtocol
|
2
|
-
class Server
|
3
|
-
class Router
|
4
|
-
##
|
5
|
-
# Maps prompt operations to handlers.
|
6
|
-
class PromptsMap < BaseMap
|
7
|
-
def list(handler, broadcast_changes: false)
|
8
|
-
register("prompts/list", handler, broadcast_changes:)
|
9
|
-
end
|
10
|
-
|
11
|
-
def get(handler)
|
12
|
-
register("prompts/get", handler)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
File without changes
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module ModelContextProtocol
|
2
|
-
class Server
|
3
|
-
class Router
|
4
|
-
##
|
5
|
-
# Maps resource operations to handlers.
|
6
|
-
class ResourcesMap < BaseMap
|
7
|
-
def list(handler, broadcast_changes: false)
|
8
|
-
register("resources/list", handler, broadcast_changes:)
|
9
|
-
end
|
10
|
-
|
11
|
-
def read(handler, allow_subscriptions: false)
|
12
|
-
register("resources/read", handler, allow_subscriptions:)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module ModelContextProtocol
|
2
|
-
class Server
|
3
|
-
class Router
|
4
|
-
##
|
5
|
-
# Maps tool operations to handlers.
|
6
|
-
class ToolsMap < BaseMap
|
7
|
-
def list(handler, broadcast_changes: false)
|
8
|
-
register("tools/list", handler, broadcast_changes:)
|
9
|
-
end
|
10
|
-
|
11
|
-
def call(handler)
|
12
|
-
register("tools/call", handler)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|