gemcp 0.0.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 +7 -0
- data/LICENSE +21 -0
- data/README.md +126 -0
- data/bin/gemcp +7 -0
- data/lib/gemcp/cache.rb +102 -0
- data/lib/gemcp/client.rb +180 -0
- data/lib/gemcp/config.rb +35 -0
- data/lib/gemcp/dependency_graph.rb +130 -0
- data/lib/gemcp/errors.rb +24 -0
- data/lib/gemcp/local_repository.rb +105 -0
- data/lib/gemcp/rate_limiter.rb +31 -0
- data/lib/gemcp/server.rb +46 -0
- data/lib/gemcp/tools/base.rb +57 -0
- data/lib/gemcp/tools/check_compatibility.rb +86 -0
- data/lib/gemcp/tools/compare_versions.rb +64 -0
- data/lib/gemcp/tools/dependency_graph.rb +40 -0
- data/lib/gemcp/tools/get_context.rb +39 -0
- data/lib/gemcp/tools/get_gem.rb +21 -0
- data/lib/gemcp/tools/get_owners.rb +21 -0
- data/lib/gemcp/tools/get_releases_between.rb +61 -0
- data/lib/gemcp/tools/get_version.rb +25 -0
- data/lib/gemcp/tools/list_versions.rb +31 -0
- data/lib/gemcp/tools/reverse_dependencies.rb +36 -0
- data/lib/gemcp/tools/search_gems.rb +27 -0
- data/lib/gemcp/version.rb +5 -0
- data/lib/gemcp.rb +16 -0
- metadata +128 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module GemCP
|
|
4
|
+
module Tools
|
|
5
|
+
# Search for gems by name or description. Prefers local results when available.
|
|
6
|
+
class SearchGems < Base
|
|
7
|
+
tool_name "search_gems"
|
|
8
|
+
description "Search RubyGems.org by package name and description. Returns authoritative registry metadata."
|
|
9
|
+
|
|
10
|
+
arguments do
|
|
11
|
+
required(:query).filled(:string).description("Search text")
|
|
12
|
+
optional(:limit).filled(:integer).description("Maximum results (1-50)")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @param query [String] search text
|
|
16
|
+
# @param limit [Integer] maximum results to return
|
|
17
|
+
# @return [Hash] MCP response
|
|
18
|
+
def call(query:, limit: 10)
|
|
19
|
+
result = with_errors do
|
|
20
|
+
results = client.search(query).first(limit)
|
|
21
|
+
{ query: query, count: results.length, gems: results }
|
|
22
|
+
end
|
|
23
|
+
render(result)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
data/lib/gemcp.rb
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "dry/monads"
|
|
4
|
+
|
|
5
|
+
require_relative "gemcp/version"
|
|
6
|
+
require_relative "gemcp/errors"
|
|
7
|
+
require_relative "gemcp/config"
|
|
8
|
+
require_relative "gemcp/cache"
|
|
9
|
+
require_relative "gemcp/rate_limiter"
|
|
10
|
+
require_relative "gemcp/local_repository"
|
|
11
|
+
require_relative "gemcp/client"
|
|
12
|
+
require_relative "gemcp/dependency_graph"
|
|
13
|
+
require_relative "gemcp/server"
|
|
14
|
+
|
|
15
|
+
module GemCP
|
|
16
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: gemcp
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Brandon Weaver
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: concurrent-ruby
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.3'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.3'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: dry-monads
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.10'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.10'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: fast-mcp
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.0'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '1.0'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: rack
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '3.0'
|
|
61
|
+
- - "<"
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: '4'
|
|
64
|
+
type: :runtime
|
|
65
|
+
prerelease: false
|
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
67
|
+
requirements:
|
|
68
|
+
- - ">="
|
|
69
|
+
- !ruby/object:Gem::Version
|
|
70
|
+
version: '3.0'
|
|
71
|
+
- - "<"
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: '4'
|
|
74
|
+
description: Read-only MCP tools for RubyGems package metadata, versions, owners,
|
|
75
|
+
search, and dependency graphs, with local gem lookup, caching, and rate limiting.
|
|
76
|
+
executables:
|
|
77
|
+
- gemcp
|
|
78
|
+
extensions: []
|
|
79
|
+
extra_rdoc_files: []
|
|
80
|
+
files:
|
|
81
|
+
- LICENSE
|
|
82
|
+
- README.md
|
|
83
|
+
- bin/gemcp
|
|
84
|
+
- lib/gemcp.rb
|
|
85
|
+
- lib/gemcp/cache.rb
|
|
86
|
+
- lib/gemcp/client.rb
|
|
87
|
+
- lib/gemcp/config.rb
|
|
88
|
+
- lib/gemcp/dependency_graph.rb
|
|
89
|
+
- lib/gemcp/errors.rb
|
|
90
|
+
- lib/gemcp/local_repository.rb
|
|
91
|
+
- lib/gemcp/rate_limiter.rb
|
|
92
|
+
- lib/gemcp/server.rb
|
|
93
|
+
- lib/gemcp/tools/base.rb
|
|
94
|
+
- lib/gemcp/tools/check_compatibility.rb
|
|
95
|
+
- lib/gemcp/tools/compare_versions.rb
|
|
96
|
+
- lib/gemcp/tools/dependency_graph.rb
|
|
97
|
+
- lib/gemcp/tools/get_context.rb
|
|
98
|
+
- lib/gemcp/tools/get_gem.rb
|
|
99
|
+
- lib/gemcp/tools/get_owners.rb
|
|
100
|
+
- lib/gemcp/tools/get_releases_between.rb
|
|
101
|
+
- lib/gemcp/tools/get_version.rb
|
|
102
|
+
- lib/gemcp/tools/list_versions.rb
|
|
103
|
+
- lib/gemcp/tools/reverse_dependencies.rb
|
|
104
|
+
- lib/gemcp/tools/search_gems.rb
|
|
105
|
+
- lib/gemcp/version.rb
|
|
106
|
+
homepage: https://github.com/baweaver/gemcp
|
|
107
|
+
licenses:
|
|
108
|
+
- MIT
|
|
109
|
+
metadata:
|
|
110
|
+
rubygems_mfa_required: 'true'
|
|
111
|
+
rdoc_options: []
|
|
112
|
+
require_paths:
|
|
113
|
+
- lib
|
|
114
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
|
+
requirements:
|
|
116
|
+
- - ">="
|
|
117
|
+
- !ruby/object:Gem::Version
|
|
118
|
+
version: '3.2'
|
|
119
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0'
|
|
124
|
+
requirements: []
|
|
125
|
+
rubygems_version: 4.0.16
|
|
126
|
+
specification_version: 4
|
|
127
|
+
summary: MCP tools for RubyGems package intelligence
|
|
128
|
+
test_files: []
|