airbrake_mcp 1.0.4 → 1.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ed4e827382daeb7329a9b383855ae55ab2c26e337585c753d80aaddeebf5179
4
- data.tar.gz: 4b96efeffd6206d6cee8f5459f32e8a61cdba1b2ba03985a2b1767c51ef6c689
3
+ metadata.gz: e285107444c59dad9e1bf190b5533358d3b31d2d87555ab5b95e1973dce12bd9
4
+ data.tar.gz: d292168104b253d786fd1a735da199b77debbcfcbf8bb147f730d09daff28ff1
5
5
  SHA512:
6
- metadata.gz: 21e39e8a19ba4f93d450cb6029cc42075ae270ed86bedae141ca59bd62c7ca34aa7ab4e051e2d86a19e7f0342440a4e389481657aa733ff49ae8e789a12e0775
7
- data.tar.gz: 795083e21d0151602d6bbefc6a28c3b33659594370497e574e3c2f8c66721312d069c4824828ebf4c63c863ac05532793ccb8ac277020b8c42c4f20a019d2899
6
+ metadata.gz: fe0f6286ba31d60bd4db9d2597b9f30bed32cb9b4e1a113d9fcb46c906b51e8e3b8e9eab93ce7edfcd39486b8c5171724f8d1079e94a4d20d6e486b1db76ffc9
7
+ data.tar.gz: 43264b5a7a02d0d033fa3b25a97e59c3273ed473133107431639747a33be0922290911a29abd07b1d9050915c3df46b3f9dff54019cabe57f342844b75d382c2
data/README.md CHANGED
@@ -142,12 +142,82 @@ Parameters:
142
142
  bundle exec rspec
143
143
  ```
144
144
 
145
- ### Building the Gem
145
+ ### Building and Installing from Source
146
146
 
147
147
  ```bash
148
+ # Build the gem
148
149
  gem build airbrake_mcp.gemspec
150
+
151
+ # Install locally
152
+ gem install ./airbrake_mcp-*.gem --no-document
153
+
154
+ # If using rbenv, rehash to update shims
155
+ rbenv rehash
156
+ ```
157
+
158
+ ### Updating an Installed Gem
159
+
160
+ When updating the gem after code changes:
161
+
162
+ ```bash
163
+ # 1. Remove ALL old versions
164
+ gem uninstall airbrake_mcp --all --executables --ignore-dependencies
165
+
166
+ # 2. Remove old gem files
167
+ rm -f *.gem
168
+
169
+ # 3. Build fresh gem
170
+ gem build airbrake_mcp.gemspec
171
+
172
+ # 4. Install with force flag
173
+ gem install ./airbrake_mcp-*.gem --no-document --force
174
+
175
+ # 5. Rehash rbenv shims
176
+ rbenv rehash
177
+
178
+ # 6. Verify installation
179
+ gem which airbrake_mcp
149
180
  ```
150
181
 
182
+ ## Troubleshooting
183
+
184
+ ### "command not found" after installation
185
+
186
+ If you see `rbenv: airbrake_mcp: command not found`, the gem was installed for a different Ruby version.
187
+
188
+ ```bash
189
+ # Check which Ruby versions have the gem
190
+ rbenv versions # shows available versions
191
+ gem list airbrake_mcp # shows if installed for current Ruby
192
+
193
+ # Install for the correct Ruby version
194
+ RBENV_VERSION=3.4.4 gem install ./airbrake_mcp-*.gem --no-document
195
+ rbenv rehash
196
+ ```
197
+
198
+ ### MCP fails to connect after gem update
199
+
200
+ 1. Ensure the gem is completely uninstalled before reinstalling:
201
+ ```bash
202
+ gem uninstall airbrake_mcp --all --executables --ignore-dependencies
203
+ ```
204
+
205
+ 2. Verify the new code is in the built gem:
206
+ ```bash
207
+ gem unpack airbrake_mcp-*.gem --target=/tmp/check
208
+ cat /tmp/check/airbrake_mcp-*/lib/airbrake_mcp/client.rb
209
+ rm -rf /tmp/check
210
+ ```
211
+
212
+ 3. After installation, verify the installed code:
213
+ ```bash
214
+ cat $(dirname $(gem which airbrake_mcp))/airbrake_mcp/client.rb
215
+ ```
216
+
217
+ ### Large Error Group IDs
218
+
219
+ Airbrake uses very large integers for error group IDs (e.g., `4235892606830408977`). These IDs are passed as strings to avoid JavaScript precision loss issues. When using tools like `get_error` or `list_notices`, provide the `group_id` exactly as shown in `list_errors` output.
220
+
151
221
  ## License
152
222
 
153
223
  MIT
@@ -23,7 +23,7 @@ module AirbrakeMcp
23
23
  end
24
24
 
25
25
  def group(group_id, project_id: @project_id)
26
- get("projects/#{project_id}/groups/#{group_id}")
26
+ get("projects/#{project_id}/groups/#{group_id}")['group']
27
27
  end
28
28
 
29
29
  def notices(group_id, project_id: @project_id, page: 1, limit: 10)
@@ -29,7 +29,7 @@ module AirbrakeMcp
29
29
  muted = group['muted'] ? ' (muted)' : ''
30
30
  error = group['errors']&.first || {}
31
31
 
32
- output += "#{status}#{muted} ##{group['id']}\n"
32
+ output += "#{status}#{muted} id:#{group['id']}\n"
33
33
  output += " Type: #{error['type']}\n"
34
34
  output += " Message: #{truncate(error['message'], 100)}\n"
35
35
  output += " Count: #{group['noticeCount']} occurrences\n"
@@ -8,7 +8,7 @@ module AirbrakeMcp
8
8
 
9
9
  input_schema(
10
10
  properties: {
11
- group_id: { type: "integer", description: "Error group ID" },
11
+ group_id: { type: "string", description: "Error group ID" },
12
12
  project_id: { type: "integer", description: "Project ID (uses default if not specified)" }
13
13
  },
14
14
  required: ["group_id"]
@@ -8,7 +8,7 @@ module AirbrakeMcp
8
8
 
9
9
  input_schema(
10
10
  properties: {
11
- group_id: { type: "integer", description: "Error group ID" },
11
+ group_id: { type: "string", description: "Error group ID" },
12
12
  project_id: { type: "integer", description: "Project ID (uses default if not specified)" },
13
13
  page: { type: "integer", description: "Page number (default: 1)" },
14
14
  limit: { type: "integer", description: "Results per page (default: 10)" }
@@ -8,7 +8,7 @@ module AirbrakeMcp
8
8
 
9
9
  input_schema(
10
10
  properties: {
11
- group_id: { type: "integer", description: "Error group ID" },
11
+ group_id: { type: "string", description: "Error group ID" },
12
12
  project_id: { type: "integer", description: "Project ID (uses default if not specified)" },
13
13
  mute: { type: "boolean", description: "true to mute, false to unmute (default: true)" }
14
14
  },
@@ -8,7 +8,7 @@ module AirbrakeMcp
8
8
 
9
9
  input_schema(
10
10
  properties: {
11
- group_id: { type: "integer", description: "Error group ID" },
11
+ group_id: { type: "string", description: "Error group ID" },
12
12
  project_id: { type: "integer", description: "Project ID (uses default if not specified)" },
13
13
  resolved: { type: "boolean", description: "true to resolve, false to unresolve (default: true)" }
14
14
  },
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AirbrakeMcp
4
- VERSION = '1.0.4'
4
+ VERSION = '1.0.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airbrake_mcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - httplab