{
  "manifest_version": "0.3",
  "name": "purple",
  "display_name": "purple",
  "version": "__VERSION__",
  "description": "Open-source terminal SSH manager and SSH config editor. Exposes purple's MCP server to Claude Desktop in read-only mode: list_hosts, get_host and list_containers. Reads ~/.ssh/config, syncs from 16 cloud providers.",
  "long_description": "An open-source terminal SSH manager and SSH config editor for macOS and Linux. A fast Rust TUI that searches hundreds of hosts, syncs from 16 clouds including AWS, GCP, Azure, Hetzner, Proxmox and OCI, transfers files, manages Docker and Podman over SSH, signs short-lived HashiCorp Vault SSH certificates and exposes an MCP server for AI agents. Edits ~/.ssh/config with round-trip fidelity. Single binary. MIT licensed.\n\nThis bundle exposes purple's MCP server to Claude Desktop in read-only mode. Three tools are available: list_hosts, get_host and list_containers. State-changing tools (run_command, container_action) are disabled. Every tool call is appended to ~/.purple/mcp-audit.log (mode 0o600, JSON Lines, run_command body redacted).\n\nFor shell access on remote hosts via Claude Desktop, install purple via Homebrew or cargo and configure claude_desktop_config.json directly without --read-only.",
  "author": {
    "name": "Eric Kochen",
    "email": "hello@getpurple.sh",
    "url": "https://www.linkedin.com/in/erickochen/"
  },
  "homepage": "https://getpurple.sh",
  "documentation": "https://github.com/erickochen/purple/wiki/MCP-Server",
  "support": "https://github.com/erickochen/purple/issues",
  "license": "MIT",
  "privacy_policies": [
    "https://github.com/erickochen/purple/blob/master/PRIVACY.md"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/erickochen/purple.git"
  },
  "icon": "icon.png",
  "keywords": [
    "ssh",
    "ssh-manager",
    "ssh-config",
    "ssh-client",
    "mcp",
    "model-context-protocol",
    "claude-desktop",
    "docker",
    "podman",
    "containers",
    "cloud",
    "vault",
    "audit-log",
    "read-only",
    "cli",
    "tui",
    "devops",
    "homelab"
  ],
  "server": {
    "type": "binary",
    "entry_point": "server/purple",
    "mcp_config": {
      "command": "${__dirname}/server/purple",
      "args": [
        "--config",
        "${user_config.ssh_config}",
        "mcp",
        "--read-only",
        "--audit-log",
        "${user_config.audit_log}"
      ]
    }
  },
  "tools": [
    {
      "name": "list_hosts",
      "description": "List every SSH host defined in the user's SSH config, including alias, hostname, user, port and tags."
    },
    {
      "name": "get_host",
      "description": "Return full details for a single SSH host by alias: hostname, user, port, identity files, ProxyJump and tags."
    },
    {
      "name": "list_containers",
      "description": "List Docker and Podman containers running on a remote SSH host. Requires container runtime on the target host."
    }
  ],
  "tools_generated": false,
  "user_config": {
    "ssh_config": {
      "type": "file",
      "title": "SSH config file",
      "description": "Path to your SSH config. purple reads hosts from this file.",
      "required": false,
      "default": "~/.ssh/config"
    },
    "audit_log": {
      "type": "file",
      "title": "Audit log path",
      "description": "Append-only JSON Lines log of every MCP tool call.",
      "required": false,
      "default": "~/.purple/mcp-audit.log"
    }
  },
  "compatibility": {
    "platforms": ["darwin", "linux"]
  }
}
