mcp_manager 0.1.2 → 0.1.3

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: 99c163e9ae4ab4b459a813230db09f6f931a2f74a72a1ec81b0ab58e85d02768
4
- data.tar.gz: 8593be1218697eb66d64efb31bd1a24573d55f0d2ba00a44f1fede6702c680bc
3
+ metadata.gz: 025bef75bea22791d7afcd5efaa8f24a79910c00bf5405f51b42484fe7e4792a
4
+ data.tar.gz: 12983bf7d1e27a29c09bbe34d24bcac4f47626b864e8b688b7d402f17154c27e
5
5
  SHA512:
6
- metadata.gz: 5da46f38f27145fe5a8a762f9980bde84ae67a093bb38099afc24b6b9e1aa13a06c76d7202b013da9e798ab95d50a719b7d826398e5057aecb2151232db2ec0a
7
- data.tar.gz: fa0d61c8fb944b06452296382783510826d70a4bfb8211ed95739a50fe3035045092840cd6c7ec6a0a4af29a97e5aaec03614c835a8f3fdaacff74cca129874e
6
+ metadata.gz: df71c657a2bfb64058db3a89cfe21ecf5ec2b06f07991763769b62390f70f55917c4daaaa57e70c29d5a13739e11842c099cb17c7b32c9966cb83ac4b5ffd378
7
+ data.tar.gz: 0dbc41a2a3a49aeec0b11e6d985bbfcd5d800e596e4280d03fd5102482df9bbff82f4c4192c5375c17f981fbdfe898115802b8728265eb1a831312c24ab501ef
data/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.3] - 2025-09-04
9
+
10
+ ### Fixed
11
+ - Fixed "process status unavailable" errors during install/uninstall operations
12
+
8
13
  ## [0.1.2] - 2025-08-28
9
14
 
10
15
  ### Fixed
@@ -39,6 +44,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
39
44
  - Command aliases: `add`, `remove`, `rm`
40
45
  - Help and version flags
41
46
 
47
+ [0.1.3]: https://github.com/benjaminjackson/mcp-manager/releases/tag/v0.1.3
42
48
  [0.1.2]: https://github.com/benjaminjackson/mcp-manager/releases/tag/v0.1.2
43
49
  [0.1.1]: https://github.com/benjaminjackson/mcp-manager/releases/tag/v0.1.1
44
50
  [0.1.0]: https://github.com/benjaminjackson/mcp-manager/releases/tag/v0.1.0
@@ -1,4 +1,4 @@
1
- require 'stringio'
1
+ require 'open3'
2
2
 
3
3
  module McpManager
4
4
  class Server
@@ -26,15 +26,13 @@ module McpManager
26
26
  puts "ℹ️ Description: #{description}"
27
27
  puts "ℹ️ Executing: #{command}"
28
28
 
29
- stderr_output = capture_stderr do
30
- system(command, out: File::NULL)
31
- end
29
+ stdout, stderr_output, exit_status = Open3.capture3(command)
32
30
 
33
- if $CHILD_STATUS&.success?
31
+ if exit_status&.success?
34
32
  puts "✅ Successfully installed #{@name}"
35
33
  true
36
34
  else
37
- error_message = build_error_message("install", stderr_output)
35
+ error_message = build_error_message("install", stderr_output, exit_status)
38
36
  puts "❌ Failed to install #{@name}: #{error_message}"
39
37
  false
40
38
  end
@@ -46,15 +44,13 @@ module McpManager
46
44
  uninstall_command = "claude mcp remove #{@name}"
47
45
  puts "ℹ️ Executing: #{uninstall_command}"
48
46
 
49
- stderr_output = capture_stderr do
50
- system(uninstall_command, out: File::NULL)
51
- end
47
+ stdout, stderr_output, exit_status = Open3.capture3(uninstall_command)
52
48
 
53
- if $CHILD_STATUS&.success?
49
+ if exit_status&.success?
54
50
  puts "✅ Successfully uninstalled #{@name}"
55
51
  true
56
52
  else
57
- error_message = build_error_message("uninstall", stderr_output)
53
+ error_message = build_error_message("uninstall", stderr_output, exit_status)
58
54
  puts "❌ Failed to uninstall #{@name}: #{error_message}"
59
55
  false
60
56
  end
@@ -66,20 +62,12 @@ module McpManager
66
62
 
67
63
  private
68
64
 
69
- def capture_stderr
70
- original_stderr = $stderr
71
- $stderr = StringIO.new
72
- yield
73
- $stderr.string
74
- ensure
75
- $stderr = original_stderr
76
- end
77
65
 
78
- def build_error_message(operation, stderr_output)
79
- if $CHILD_STATUS.nil?
66
+ def build_error_message(operation, stderr_output, exit_status = nil)
67
+ if exit_status.nil?
80
68
  "process status unavailable"
81
- elsif $CHILD_STATUS.respond_to?(:exitstatus) && $CHILD_STATUS.exitstatus
82
- message = "command failed with exit code #{$CHILD_STATUS.exitstatus}"
69
+ elsif exit_status.respond_to?(:exitstatus) && exit_status.exitstatus
70
+ message = "command failed with exit code #{exit_status.exitstatus}"
83
71
  if stderr_output && !stderr_output.strip.empty?
84
72
  message += " (#{stderr_output.strip})"
85
73
  end
@@ -1,3 +1,3 @@
1
1
  module McpManager
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mcp_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Jackson