Class: Anima::CLI::Mcp

Inherits:
Thor
  • Object
show all
Defined in:
lib/anima/cli/mcp.rb,
lib/anima/cli/mcp/secrets.rb

Overview

CLI commands for managing MCP server configuration in ~/.anima/mcp.toml. Mirrors the UX of claude mcp commands.

Defined Under Namespace

Classes: Secrets

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/anima/cli/mcp.rb', line 11

def self.exit_on_failure?
  true
end

Instance Method Details

#add(name, *rest) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/anima/cli/mcp.rb', line 51

def add(name, *rest)
  if rest.empty?
    say "Error: missing server URL or command.", :red
    say ""
    say "Usage:"
    say "  anima mcp add <name> <url>                  # HTTP server"
    say "  anima mcp add <name> -- <command> [args...]  # stdio server"
    abort_command
  end

  store_secrets(options[:secret])
  settings = build_settings(rest)
  build_config.add_server(name, settings)
  say "Added #{settings["transport"]} server '#{name}' (#{settings_target(settings)}).", :green
rescue ArgumentError => argument_error
  say "Error: #{argument_error.message}", :red
  abort_command
end

#listObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/anima/cli/mcp.rb', line 19

def list
  config = build_config
  raw_servers = config.all_servers

  if raw_servers.empty?
    say "No MCP servers configured.", :yellow
    say "Add one with: anima mcp add <name> <url>"
    return
  end

  interpolated = interpolated_lookup(config)
  raw_servers.each { |server| display_server(server, interpolated[server["name"]]) }
  config.warnings.each { |warning| say "  warning: #{warning}", :yellow }
end

#remove(name) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/anima/cli/mcp.rb', line 71

def remove(name)
  build_config.remove_server(name)
  say "Removed server '#{name}'.", :green
rescue ArgumentError => argument_error
  say "Error: #{argument_error.message}", :red
  abort_command
end