app_list
Retrieve a detailed list of all available web applications managed by Goose App Maker MCP, enabling users to view app details for efficient management and deployment.
Instructions
List all available web applications.
Returns:
A dictionary containing the list of available apps and their details
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- main.py:118-162 (handler)The main handler function for the 'app_list' tool. It scans the app directory (~/.config/goose/app-maker-apps), lists directories as apps, includes their files and manifest if present, and returns a structured dictionary.def app_list() -> Dict[str, Any]: """ List all available web applications. Returns: A dictionary containing the list of available apps and their details """ try: apps = [] for app_dir in Path(APP_DIR).iterdir(): if app_dir.is_dir(): app_info = { "name": app_dir.name, "path": str(app_dir), "files": [] } # Get the list of files for file_path in app_dir.glob("**/*"): if file_path.is_file(): rel_path = str(file_path.relative_to(app_dir)) app_info["files"].append(rel_path) # Check if there's a goose-app-manifest.json file manifest_path = app_dir / "goose-app-manifest.json" if manifest_path.exists(): try: with open(manifest_path, 'r') as f: manifest = json.load(f) app_info["manifest"] = manifest except json.JSONDecodeError: app_info["manifest_error"] = "Invalid goose-app-manifest.json file" apps.append(app_info) return { "success": True, "apps": apps, "count": len(apps), "app_dir": APP_DIR } except Exception as e: logger.error(f"Error listing apps: {e}") return {"success": False, "error": f"Failed to list apps: {str(e)}"}
- main.py:117-117 (registration)The @mcp.tool() decorator that registers the app_list function with the FastMCP server.@mcp.tool()