zeromcp 0.2.0 → 0.2.2

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: da354f1e655ec8a11fdab32fe614424855447046b47087bcfe06708f9a7fedcd
4
- data.tar.gz: c6ec0cf498da41c890302f96fbfa337b23c081ec81185595e9c5a1926832f5a4
3
+ metadata.gz: b2e5b203cdc7f03afff0cf6ce507e9480455b3f16e469222d5934af9351ffa9a
4
+ data.tar.gz: 8e968d22d810a2f25962eb5de0f242438f3ea4359c40cee4616398280695c6f8
5
5
  SHA512:
6
- metadata.gz: a623e6e4be5051688e21f6b4d5d3633305b8ce8666778634348d0edc3e1012afe0633fdce2b3f9a22fce625d19a98fdfb2fb1592fd06743e1db1b8cfa6332096
7
- data.tar.gz: 79182a97581d16e9f5c75607641326db7cb01abc28a6683aee36ae27f2f028324298674bd903a800678b21d0b726174b4e63ff48fd346987bc5f15cc7f599989
6
+ metadata.gz: b5af7807f278f6430cd65fad75104d90536fbe5c840a2dfce3b7c125415940d65f4166e420f06b085c1ff6fe60c90a525773956e4e341c3b20098258227296a5
7
+ data.tar.gz: 3c0c7c8350efedaf3bf7ec4342e85f817b6da45e6668d6aace1553ef98edc478143db42acc4652b119a179c7b4580ddef29c54226457d03b3ed88d4582e6bd09
@@ -24,12 +24,13 @@ module ZeroMcp
24
24
  @bypass_permissions = opts[:bypass_permissions] || opts['bypass_permissions'] || false
25
25
  @execute_timeout = opts[:execute_timeout] || opts['execute_timeout'] || 30 # seconds
26
26
  @credentials = opts[:credentials] || opts['credentials'] || {}
27
+ @cache_credentials = opts.key?(:cache_credentials) ? opts[:cache_credentials] : (opts.key?('cache_credentials') ? opts['cache_credentials'] : true)
27
28
  @namespacing = opts[:namespacing] || opts['namespacing'] || {}
28
29
  @page_size = opts[:page_size] || opts['page_size'] || 0
29
30
  @icon = opts[:icon] || opts['icon']
30
31
  end
31
32
 
32
- attr_reader :credentials, :namespacing
33
+ attr_reader :credentials, :cache_credentials, :namespacing
33
34
 
34
35
  def self.load(path = nil)
35
36
  path ||= File.join(Dir.pwd, 'zeromcp.config.json')
@@ -23,6 +23,7 @@ module ZeroMcp
23
23
  @subscriptions = {}
24
24
  @log_level = 'info'
25
25
  @icon = nil
26
+ @credential_cache = {}
26
27
  end
27
28
 
28
29
  # Load tools (and resources/prompts) from the configured directories.
@@ -441,15 +442,22 @@ module ZeroMcp
441
442
 
442
443
  def _resolve_credentials(tool_name)
443
444
  return nil if @config.credentials.empty?
444
- # Match credential namespace from tool name prefix
445
445
  @config.credentials.each do |ns, source|
446
446
  if tool_name.start_with?("#{ns}_") || tool_name.start_with?("#{ns}#{@config.separator}")
447
- return _resolve_credential_source(source)
447
+ return _resolve_credentials_for_ns(ns.to_s, source)
448
448
  end
449
449
  end
450
450
  nil
451
451
  end
452
452
 
453
+ def _resolve_credentials_for_ns(ns, source)
454
+ return _resolve_credential_source(source) unless @config.cache_credentials
455
+ return @credential_cache[ns] if @credential_cache.key?(ns)
456
+ creds = _resolve_credential_source(source)
457
+ @credential_cache[ns] = creds
458
+ creds
459
+ end
460
+
453
461
  def _resolve_credential_source(source)
454
462
  source = source.transform_keys(&:to_s) if source.is_a?(Hash)
455
463
  if source['env']
data/zeromcp.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'zeromcp'
5
- s.version = '0.2.0'
5
+ s.version = '0.2.2'
6
6
  s.summary = 'Zero-config MCP runtime'
7
7
  s.description = 'Drop tool files in a directory, get a working MCP server. Zero boilerplate.'
8
8
  s.authors = ['Antidrift']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zeromcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antidrift
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-08 00:00:00.000000000 Z
11
+ date: 2026-04-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Drop tool files in a directory, get a working MCP server. Zero boilerplate.
14
14
  email: hello@probeo.io