Class: Anima::CLI::Mcp
- Inherits:
-
Thor
- Object
- Thor
- Anima::CLI::Mcp
- 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
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([: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.}", :red abort_command end |
#list ⇒ Object
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.}", :red abort_command end |