app_list
View available web applications created with Goose App Maker MCP to manage and serve apps from configurable directories.
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:117-162 (handler)Handler function for the 'app_list' tool. Lists directories in APP_DIR (~/.config/goose/app-maker-apps), collects file lists and manifest info for each app.@mcp.tool() 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)Registration of the app_list tool using the @mcp.tool() decorator.@mcp.tool()