{
  "schema": "pm7-tool-manifest/v1",
  "name": "pm7-mobbin",
  "version": "0.1.0",
  "summary": "Command-line client for the official Mobbin MCP server, for humans and AI agents.",
  "service": "Mobbin",
  "commands": [
    {
      "name": "help",
      "usage": "pm7-mobbin help",
      "summary": "Show a short usage overview.",
      "network": false,
      "examples": []
    },
    {
      "name": "version",
      "usage": "pm7-mobbin version",
      "summary": "Print the version.",
      "network": false,
      "examples": []
    },
    {
      "name": "docs",
      "usage": "pm7-mobbin docs [--json]",
      "summary": "Print the full command reference, or the machine-readable manifest with --json.",
      "network": false,
      "examples": [
        {
          "command": "pm7-mobbin docs --json",
          "summary": "Emit the manifest that tools.pm7.dev renders."
        }
      ]
    },
    {
      "name": "status",
      "usage": "pm7-mobbin status",
      "summary": "Show login state and configuration without touching the network.",
      "network": false,
      "examples": [
        {
          "command": "pm7-mobbin status --json",
          "summary": "Check whether a login exists before doing work."
        }
      ]
    },
    {
      "name": "login",
      "usage": "pm7-mobbin login [--manual]",
      "summary": "Authorize this machine against Mobbin.",
      "network": true,
      "examples": [
        {
          "command": "pm7-mobbin login --manual",
          "summary": "Paste the redirect URL back instead of using a callback listener."
        }
      ]
    },
    {
      "name": "logout",
      "usage": "pm7-mobbin logout",
      "summary": "Remove the stored credentials.",
      "network": false,
      "examples": []
    },
    {
      "name": "tools",
      "usage": "pm7-mobbin tools",
      "summary": "List the tools Mobbin currently offers. Nothing is hardcoded; the server is asked.",
      "network": true,
      "examples": [
        {
          "command": "pm7-mobbin tools --json",
          "summary": "Discover the available tool names and their input schemas."
        }
      ]
    },
    {
      "name": "call",
      "usage": "pm7-mobbin call <tool-name> --args '<json>'",
      "summary": "Invoke any Mobbin tool by name. The generic escape hatch.",
      "network": true,
      "examples": [
        {
          "command": "pm7-mobbin call <tool-name> --args '{\"query\":\"onboarding\"}' --json",
          "summary": "Call a tool reported by the tools command."
        }
      ]
    }
  ],
  "options": [
    {
      "flag": "--json",
      "summary": "Emit machine-readable JSON on stdout."
    },
    {
      "flag": "--verbose",
      "summary": "Print progress to stderr."
    },
    {
      "flag": "-h, --help",
      "summary": "Show the usage overview."
    },
    {
      "flag": "-V, --version",
      "summary": "Print the version."
    },
    {
      "flag": "--args '<json>'",
      "summary": "Tool input as a JSON object.",
      "commands": [
        "call"
      ]
    },
    {
      "flag": "--manual",
      "summary": "Skip the loopback listener and paste the redirect URL instead.",
      "commands": [
        "login"
      ]
    }
  ],
  "exitCodes": [
    {
      "code": 0,
      "name": "success",
      "meaning": "The command completed."
    },
    {
      "code": 1,
      "name": "general",
      "meaning": "Unclassified internal error."
    },
    {
      "code": 2,
      "name": "usage",
      "meaning": "Bad command, unknown option, or invalid --args JSON."
    },
    {
      "code": 3,
      "name": "auth_required",
      "meaning": "Not logged in, or Mobbin rejected the credentials."
    },
    {
      "code": 4,
      "name": "network",
      "meaning": "The Mobbin MCP server could not be reached."
    },
    {
      "code": 5,
      "name": "tool_error",
      "meaning": "Mobbin accepted the call but the tool reported an error."
    },
    {
      "code": 6,
      "name": "storage",
      "meaning": "The credential store could not be read, written or decrypted."
    }
  ],
  "environment": [
    {
      "name": "PM7_MOBBIN_SERVER_URL",
      "summary": "MCP endpoint to talk to.",
      "default": "https://api.mobbin.com/mcp"
    },
    {
      "name": "PM7_MOBBIN_CREDENTIALS",
      "summary": "Path to the encrypted credential file.",
      "default": null
    },
    {
      "name": "PM7_MOBBIN_CALLBACK_PORT",
      "summary": "Loopback port used during login.",
      "default": "7749"
    }
  ],
  "output": {
    "stdout": "Carries only the requested result, never progress or diagnostics.",
    "stderr": "Carries progress, warnings, hints and errors.",
    "json": "With --json stdout is exactly one JSON document; on failure stdout stays empty and the error document goes to stderr."
  }
}
