mcp-cli-skill 0.6.2__tar.gz → 0.6.3__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-cli-skill
3
- Version: 0.6.2
3
+ Version: 0.6.3
4
4
  Summary: Call any MCP server tool from the command line with shell composition support
5
5
  Project-URL: Homepage, https://github.com/wise-toddler/mcp-cli-skill
6
6
  Project-URL: Repository, https://github.com/wise-toddler/mcp-cli-skill
@@ -21,7 +21,7 @@ mcp-call <server> <tool> --key=value ... # call a tool
21
21
  mcp-call <server> <tool> --input-json '{"key":"val"}' # call with JSON args
22
22
  echo '{}' | mcp-call <server> <tool> # call with stdin JSON
23
23
  mcp-call --add <name> <cmd> [args] [--env K=V ...] # add stdio server
24
- mcp-call --add-http <name> <url> # add HTTP server
24
+ mcp-call --add-http <name> <url> [--header 'K: V' ...] # add HTTP server (auth via --header/-H)
25
25
  mcp-call --remove <name> # remove server
26
26
  mcp-call --sync # re-sync from Claude configs
27
27
  mcp-call --completion <bash|zsh|fish> # print shell completion hook
@@ -292,7 +292,10 @@ class HttpSession:
292
292
  self.session_id = None
293
293
  self.extra_headers = {k: _expand_env(v) for k, v in (extra_headers or {}).items()}
294
294
 
295
- def _send(self, data, headers, timeout=30, max_redirects=3):
295
+ def _send(self, data, headers, timeout=None, max_redirects=3):
296
+ # Long-running tool calls (bash, LLM, etc) can exceed 30s; make it tunable.
297
+ if timeout is None:
298
+ timeout = int(os.environ.get("MCP_CALL_HTTP_TIMEOUT", "300"))
296
299
  """POST data and follow 307/308 redirects preserving method+body.
297
300
 
298
301
  urllib's default HTTPRedirectHandler does NOT follow 307/308 on POST,
@@ -354,6 +357,10 @@ class HttpSession:
354
357
  except urllib.error.URLError as e:
355
358
  print(f"Error: cannot connect to {self.url}: {e.reason}", file=sys.stderr)
356
359
  sys.exit(1)
360
+ except TimeoutError:
361
+ # urlopen raises bare TimeoutError in Python 3.10+, not URLError.
362
+ print(f"Error: request to {self.url} timed out. Set MCP_CALL_HTTP_TIMEOUT=<sec> for longer.", file=sys.stderr)
363
+ sys.exit(1)
357
364
 
358
365
  def notify(self, method, params=None):
359
366
  """Send JSON-RPC notification (no id, ignore response)."""
@@ -1,2 +1,2 @@
1
1
  """MCP CLI - Call any MCP server tool from the command line."""
2
- __version__ = "0.6.2"
2
+ __version__ = "0.6.3"
@@ -292,7 +292,10 @@ class HttpSession:
292
292
  self.session_id = None
293
293
  self.extra_headers = {k: _expand_env(v) for k, v in (extra_headers or {}).items()}
294
294
 
295
- def _send(self, data, headers, timeout=30, max_redirects=3):
295
+ def _send(self, data, headers, timeout=None, max_redirects=3):
296
+ # Long-running tool calls (bash, LLM, etc) can exceed 30s; make it tunable.
297
+ if timeout is None:
298
+ timeout = int(os.environ.get("MCP_CALL_HTTP_TIMEOUT", "300"))
296
299
  """POST data and follow 307/308 redirects preserving method+body.
297
300
 
298
301
  urllib's default HTTPRedirectHandler does NOT follow 307/308 on POST,
@@ -354,6 +357,10 @@ class HttpSession:
354
357
  except urllib.error.URLError as e:
355
358
  print(f"Error: cannot connect to {self.url}: {e.reason}", file=sys.stderr)
356
359
  sys.exit(1)
360
+ except TimeoutError:
361
+ # urlopen raises bare TimeoutError in Python 3.10+, not URLError.
362
+ print(f"Error: request to {self.url} timed out. Set MCP_CALL_HTTP_TIMEOUT=<sec> for longer.", file=sys.stderr)
363
+ sys.exit(1)
357
364
 
358
365
  def notify(self, method, params=None):
359
366
  """Send JSON-RPC notification (no id, ignore response)."""
File without changes
File without changes