scout_apm_mcp 0.1.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 +7 -0
- data/CHANGELOG.md +13 -0
- data/LICENSE.md +22 -0
- data/README.md +322 -0
- data/bin/scout_apm_mcp +18 -0
- data/lib/scout_apm_mcp/client.rb +302 -0
- data/lib/scout_apm_mcp/helpers.rb +130 -0
- data/lib/scout_apm_mcp/server.rb +502 -0
- data/lib/scout_apm_mcp/version.rb +3 -0
- data/lib/scout_apm_mcp.rb +36 -0
- data/sig/scout_apm_mcp.rbs +33 -0
- metadata +264 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module ScoutApmMcp
|
|
2
|
+
VERSION: String
|
|
3
|
+
|
|
4
|
+
module Helpers
|
|
5
|
+
def self.get_api_key: (?api_key: String?, ?op_vault: String, ?op_item: String, ?op_field: String) -> String
|
|
6
|
+
def self.parse_scout_url: (String url) -> Hash[Symbol, untyped]
|
|
7
|
+
def self.decode_endpoint_id: (String endpoint_id) -> String
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class Client
|
|
11
|
+
def initialize: (api_key: String, ?api_base: String) -> void
|
|
12
|
+
def build_http_client: (URI uri) -> Net::HTTP
|
|
13
|
+
|
|
14
|
+
def list_apps: () -> Hash[String, untyped]
|
|
15
|
+
def get_app: (Integer app_id) -> Hash[String, untyped]
|
|
16
|
+
def list_metrics: (Integer app_id) -> Hash[String, untyped]
|
|
17
|
+
def get_metric: (Integer app_id, String metric_type, ?from: String?, ?to: String?) -> Hash[String, untyped]
|
|
18
|
+
def list_endpoints: (Integer app_id, ?from: String?, ?to: String?) -> Hash[String, untyped]
|
|
19
|
+
def get_endpoint: (Integer app_id, String endpoint_id) -> Hash[String, untyped]
|
|
20
|
+
def get_endpoint_metrics: (Integer app_id, String endpoint_id, String metric_type, ?from: String?, ?to: String?) -> Hash[String, untyped]
|
|
21
|
+
def list_endpoint_traces: (Integer app_id, String endpoint_id, ?from: String?, ?to: String?) -> Hash[String, untyped]
|
|
22
|
+
def fetch_trace: (Integer app_id, Integer trace_id) -> Hash[String, untyped]
|
|
23
|
+
def list_error_groups: (Integer app_id, ?from: String?, ?to: String?, ?endpoint: String?) -> Hash[String, untyped]
|
|
24
|
+
def get_error_group: (Integer app_id, Integer error_id) -> Hash[String, untyped]
|
|
25
|
+
def get_error_group_errors: (Integer app_id, Integer error_id) -> Hash[String, untyped]
|
|
26
|
+
def get_all_insights: (Integer app_id, ?limit: Integer?) -> Hash[String, untyped]
|
|
27
|
+
def get_insight_by_type: (Integer app_id, String insight_type, ?limit: Integer?) -> Hash[String, untyped]
|
|
28
|
+
def get_insights_history: (Integer app_id, ?from: String?, ?to: String?, ?limit: Integer?, ?pagination_cursor: Integer?, ?pagination_direction: String?, ?pagination_page: Integer?) -> Hash[String, untyped]
|
|
29
|
+
def get_insights_history_by_type: (Integer app_id, String insight_type, ?from: String?, ?to: String?, ?limit: Integer?, ?pagination_cursor: Integer?, ?pagination_direction: String?, ?pagination_page: Integer?) -> Hash[String, untyped]
|
|
30
|
+
def fetch_openapi_schema: () -> Hash[Symbol, untyped]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
metadata
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: scout_apm_mcp
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Andrei Makarov
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2025-11-20 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: fast-mcp
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0.1'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0.1'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: base64
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0.3'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0.3'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rack
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '2.2'
|
|
48
|
+
- - ">="
|
|
49
|
+
- !ruby/object:Gem::Version
|
|
50
|
+
version: 2.2.0
|
|
51
|
+
type: :runtime
|
|
52
|
+
prerelease: false
|
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
54
|
+
requirements:
|
|
55
|
+
- - "~>"
|
|
56
|
+
- !ruby/object:Gem::Version
|
|
57
|
+
version: '2.2'
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 2.2.0
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: opdotenv
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '1.0'
|
|
68
|
+
type: :runtime
|
|
69
|
+
prerelease: false
|
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '1.0'
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: rspec
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '3.13'
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '3.13'
|
|
89
|
+
- !ruby/object:Gem::Dependency
|
|
90
|
+
name: webmock
|
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - "~>"
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '3.26'
|
|
96
|
+
type: :development
|
|
97
|
+
prerelease: false
|
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - "~>"
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '3.26'
|
|
103
|
+
- !ruby/object:Gem::Dependency
|
|
104
|
+
name: rake
|
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - "~>"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '13.3'
|
|
110
|
+
type: :development
|
|
111
|
+
prerelease: false
|
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - "~>"
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '13.3'
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: simplecov
|
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - "~>"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0.22'
|
|
124
|
+
type: :development
|
|
125
|
+
prerelease: false
|
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - "~>"
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0.22'
|
|
131
|
+
- !ruby/object:Gem::Dependency
|
|
132
|
+
name: rspec_junit_formatter
|
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - "~>"
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: '0.6'
|
|
138
|
+
type: :development
|
|
139
|
+
prerelease: false
|
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - "~>"
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '0.6'
|
|
145
|
+
- !ruby/object:Gem::Dependency
|
|
146
|
+
name: simplecov-cobertura
|
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "~>"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '3.1'
|
|
152
|
+
type: :development
|
|
153
|
+
prerelease: false
|
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - "~>"
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '3.1'
|
|
159
|
+
- !ruby/object:Gem::Dependency
|
|
160
|
+
name: standard
|
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
|
162
|
+
requirements:
|
|
163
|
+
- - "~>"
|
|
164
|
+
- !ruby/object:Gem::Version
|
|
165
|
+
version: '1.52'
|
|
166
|
+
type: :development
|
|
167
|
+
prerelease: false
|
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
+
requirements:
|
|
170
|
+
- - "~>"
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: '1.52'
|
|
173
|
+
- !ruby/object:Gem::Dependency
|
|
174
|
+
name: appraisal
|
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
|
176
|
+
requirements:
|
|
177
|
+
- - "~>"
|
|
178
|
+
- !ruby/object:Gem::Version
|
|
179
|
+
version: '2.5'
|
|
180
|
+
type: :development
|
|
181
|
+
prerelease: false
|
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
183
|
+
requirements:
|
|
184
|
+
- - "~>"
|
|
185
|
+
- !ruby/object:Gem::Version
|
|
186
|
+
version: '2.5'
|
|
187
|
+
- !ruby/object:Gem::Dependency
|
|
188
|
+
name: memory_profiler
|
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
|
190
|
+
requirements:
|
|
191
|
+
- - "~>"
|
|
192
|
+
- !ruby/object:Gem::Version
|
|
193
|
+
version: '1.1'
|
|
194
|
+
type: :development
|
|
195
|
+
prerelease: false
|
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
197
|
+
requirements:
|
|
198
|
+
- - "~>"
|
|
199
|
+
- !ruby/object:Gem::Version
|
|
200
|
+
version: '1.1'
|
|
201
|
+
- !ruby/object:Gem::Dependency
|
|
202
|
+
name: rbs
|
|
203
|
+
requirement: !ruby/object:Gem::Requirement
|
|
204
|
+
requirements:
|
|
205
|
+
- - "~>"
|
|
206
|
+
- !ruby/object:Gem::Version
|
|
207
|
+
version: '3.9'
|
|
208
|
+
type: :development
|
|
209
|
+
prerelease: false
|
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
211
|
+
requirements:
|
|
212
|
+
- - "~>"
|
|
213
|
+
- !ruby/object:Gem::Version
|
|
214
|
+
version: '3.9'
|
|
215
|
+
description: Ruby gem providing ScoutAPM API client and MCP server tools for fetching
|
|
216
|
+
traces, endpoints, metrics, errors, and insights. Integrates with Cursor IDE via
|
|
217
|
+
Model Context Protocol.
|
|
218
|
+
email:
|
|
219
|
+
- contact@kiskolabs.com
|
|
220
|
+
executables:
|
|
221
|
+
- scout_apm_mcp
|
|
222
|
+
extensions: []
|
|
223
|
+
extra_rdoc_files: []
|
|
224
|
+
files:
|
|
225
|
+
- CHANGELOG.md
|
|
226
|
+
- LICENSE.md
|
|
227
|
+
- README.md
|
|
228
|
+
- bin/scout_apm_mcp
|
|
229
|
+
- lib/scout_apm_mcp.rb
|
|
230
|
+
- lib/scout_apm_mcp/client.rb
|
|
231
|
+
- lib/scout_apm_mcp/helpers.rb
|
|
232
|
+
- lib/scout_apm_mcp/server.rb
|
|
233
|
+
- lib/scout_apm_mcp/version.rb
|
|
234
|
+
- sig/scout_apm_mcp.rbs
|
|
235
|
+
homepage: https://github.com/amkisko/scout_apm_mcp.rb
|
|
236
|
+
licenses:
|
|
237
|
+
- MIT
|
|
238
|
+
metadata:
|
|
239
|
+
source_code_uri: https://github.com/amkisko/scout_apm_mcp.rb
|
|
240
|
+
changelog_uri: https://github.com/amkisko/scout_apm_mcp.rb/blob/main/CHANGELOG.md
|
|
241
|
+
bug_tracker_uri: https://github.com/amkisko/scout_apm_mcp.rb/issues
|
|
242
|
+
homepage_uri: https://github.com/amkisko/scout_apm_mcp.rb
|
|
243
|
+
documentation_uri: https://github.com/amkisko/scout_apm_mcp.rb#readme
|
|
244
|
+
rubygems_mfa_required: 'true'
|
|
245
|
+
post_install_message:
|
|
246
|
+
rdoc_options: []
|
|
247
|
+
require_paths:
|
|
248
|
+
- lib
|
|
249
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
250
|
+
requirements:
|
|
251
|
+
- - ">="
|
|
252
|
+
- !ruby/object:Gem::Version
|
|
253
|
+
version: '3.1'
|
|
254
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
|
+
requirements:
|
|
256
|
+
- - ">="
|
|
257
|
+
- !ruby/object:Gem::Version
|
|
258
|
+
version: '0'
|
|
259
|
+
requirements: []
|
|
260
|
+
rubygems_version: 3.5.9
|
|
261
|
+
signing_key:
|
|
262
|
+
specification_version: 4
|
|
263
|
+
summary: ScoutAPM MCP (Model Context Protocol) server for Cursor IDE integration
|
|
264
|
+
test_files: []
|