← Discover MCPs and Agents
l
MCPAI & MLGitHub

laradashboard

⚡ Lara Dashboard - CMS by Laravel - All In One solution to start your Laravel Application from Basic to Enterprise. Manages Users, Roles, Permissions, Modules, Settings, Translations, Contents, Monitoring and every actions of your Laravel application. Complete solution for Laravel application with Tailwind, Livewire, Rest API, Unit-Tests and more.

Links

README

From the repo.

Lara Dashboard — open-source Laravel 13 admin panel, CMS and modular starter kit — dashboard preview with charts, user activity and modules

⚡ Lara Dashboard

Open-source Laravel Admin Panel, CMS & Modular Starter Kit — powered by Laravel 13, Livewire 3, Tailwind CSS v4, built-in MCP for AI agents, and inline AI content tools.

Latest Release PHP Version Laravel Tailwind CSS Livewire License Stargazers Forks Contributors Issues

🌐 Website • 🚀 Live Demo • 📖 Documentation • 🧩 Marketplace • 💬 Community


Lara Dashboard is a production-ready Laravel admin panel and headless CMS — a batteries-included Laravel boilerplate / starter kit with Users, Roles, Permissions (RBAC via Spatie), Modules, Settings, Translations, Posts & Pages, Media Library, REST API, MCP server for AI agents (Cursor, Claude Desktop, Claude Code), AI content generation, and a WordPress-style hooks system (via eventy) for extensibility.

Built for Laravel developers who want to ship admin dashboards, SaaS apps, CRMs and internal tools in hours, not weeks — without trading away Laravel idioms, testability or type-safety.

Try the live demo: https://laradashboard.com/try-demo/ Credentials: superadmin@example.com / 12345678

✨ Why Lara Dashboard?

  • 🔐 Complete RBAC — Users, Roles, Permissions via Spatie, admin impersonation, social auth (Socialite), and 2FA-ready flows.
  • 🧩 Modular Architecture — Self-contained modules via nwidart/laravel-modules. Install, enable, disable, zip and distribute with a single command.
  • ⚡ CRUD Generator — php artisan module:make-crud scaffolds Model, Migration, Service, FormRequest, Controller, Datatable, Views, Routes, Menu and Tests in one pass.
  • 📝 Full CMS — Posts, Pages, Categories, Tags, Media Library, visual block-based editor with drag-and-drop.
  • 🤖 Develop & manage with AI (MCP) — Connect Cursor, Claude Desktop, or Claude Code to your site. Create posts, review CRM leads, send emails, search docs, clear cache, and run daily briefings from natural language — with token-based, permission-scoped access from Settings → MCP.
  • ✍️ Inline AI content — Configure OpenAI, Anthropic, Gemini and more via filter hooks. Generate and refine content inside the admin and builder.
  • 📧 Email System — Inbound/outbound SMTP connections, visual email template builder, campaign tracking, notifications.
  • 🌐 i18n Out-of-the-box — 21 languages preloaded, chunked translation management, one-click language adds.
  • 🔌 REST API — Auto-documented with Scramble, Sanctum-auth, ready for mobile apps and SPAs.
  • 🎨 Beautiful UI — Tailwind CSS v4, Alpine.js, dark/light mode, 60+ components, responsive on every breakpoint.
  • 🪝 WordPress-style Hooks — Actions and filters everywhere so you can extend without forking.
  • 🧪 Tests & Static Analysis — Pest, PHPStan (Larastan), Rector, Pint — all wired up out of the box.
  • 📦 Zero-friction Deploy — cPanel/shared-hosting ready, ZIP distribution with vendor folder, one-click core upgrades with backup/restore.

🤖 Develop & Manage Your Site with AI (MCP)

Lara Dashboard ships a built-in Model Context Protocol (MCP) server so AI coding assistants can operate your site like a power user — not just write code about it.

Connect Cursor (Desktop or CLI), Claude Desktop, or Claude Code, generate an MCP agent token in Settings → MCP, and ask your assistant to manage day-to-day work: draft and publish posts, triage form submissions, update CRM records, send templated email, inspect logs, and more. Installed modules can expose their own tools through the McpFilterHook registry.

What you can do from Cursor, Claude, or similar clients

AreaExamples
ContentList, create, and update posts; generate SEO meta
CRMContacts, deals, tickets, and activities (CRM module)
FormsReview new submissions and mark them viewed (Forms module)
EmailList templates and send mail to users or contacts
OperationsDaily briefing, clear cache, list storage log files
DocsSearch and read LaraDashboard guides (DocForge module)

Quick start

  1. Open Settings → MCP, enable the MCP server, and save.
  2. Click Generate MCP token and copy the token (shown once).
  3. Add the server config to your AI client — the admin UI includes ready-made JSON for Cursor, Claude Desktop, and Claude Code.

Example config for Cursor (~/.cursor/mcp.json or project .cursor/mcp.json):

{
  "mcpServers": {
    "laradashboard": {
      "url": "https://your-site.test/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_AGENT_TOKEN"
      }
    }
  }
}

For local development, you can store the token in an env var (LARADASHBOARD_MCP_TOKEN) and reference it from the config snippet in Settings → MCP.

Note: The MCP endpoint returns 404 until MCP is enabled in settings. Regular API login tokens do not work — use a dedicated MCP agent token with the abilities you choose.

📚 Table of Contents

📋 Requirements:

(back to top)

🛠️ Built With

(back to top)

📝 Changelog

Latest release: v1.4.5 • Full changelog → • All GitHub releases

[v1.4.5] — 2026-09-23

  • New: Datatable column visibility on every list, and unified page scroll with sticky headers and pagination.
  • New: View counts on Posts and Pages admin lists.
  • New: MCP multipart hero uploads with serve_ok checks; base64 uploads capped at ~100KB (#327).
  • New: Multi-turn AI chat completion across OpenAI, Claude, Gemini, and Ollama.
  • Fix (Security): Core upgrades and Livewire module enable, disable, delete, and update actions are authorized (Superadmin / ModulePolicy).
  • Fix: Text editor autoresize for embedded media; MCP media serve checks and signed uploads.

[v1.4.2] — 2026-09-14

  • New: Public-form spam protection — honeypot, reCAPTCHA v3, disposable/typo/domain email validation, and reusable Blade components for Livewire forms.
  • New: MCP UploadMediaTool for AI agents to upload files to the media library.
  • Improve: Datatable shift-click bulk selection and sticky headers.
  • Improve: Module replace UX (auto-activate + Replaced & active badge), MCP settings UI, and auth email guard settings.
  • Fix: MCP media URLs, bulk actions dropdown, Pulse storage on fresh installs.

[v1.4.0] — 2026-09-07

  • New: MCP server for AI agents — token-based access from Settings → MCP with tools for content, CRM, forms, email, docs, cache, and logs.
  • New: Module MCP registry (McpFilterHook) so installed modules can expose tools and briefing providers.

[v1.3.2] — 2026-09-06

  • New: Dashboard widget customization — per-user show/hide for stat cards and sections.
  • Improve: Lara Builder drag preview, save reliability, and list block UX.
  • Fix: ModuleStyles asset scoping and module installation activation edge cases.
  • Fix (Security): Superadmin-only marketplace install and manual core upgrade upload; post builder upload authorization; markdown fetch SSRF hardening.
  • Chore: Dependency updates (livewire, league/commonmark, browserslist, fast-uri).

[v1.3.1] — 2026-08-31

  • Fix: Password visibility toggle accessibility — aria-label, aria-pressed, and hide tooltip (#296).
  • Fix: Mobile sidebar toggle icon and aria-label / aria-expanded on small screens (#295).
  • Fix: Fresh install migration failure when posts.design_json is missing; guarded canvas padding migration.
  • Improve: Core upgrade supports UPGRADE_ZIP_PATH; release workflow demo upgrade uses built artifact ZIP.
  • Chore: Synced new accessibility strings across 31 locales.

[v1.3.0] — 2026-08-30

  • Fix: Hardened media uploads — SVG sanitization, MIME validation, and .htaccess hardening on public storage.
  • Fix: License API authorization and backup path traversal protection.
  • Fix: Media library upload modal Alpine.js quoting; restored header upload button.
  • New: GitHub Actions release pipeline — demo deploy, auto-release, marketplace publish, /api/health.
  • New: Headless upgrade commands, Hostinger deploy scripts, and module:publish-images.
  • Change: Demo refresh moved to hourly; module menu logos fixed after deploy.
  • Chore: Dependency updates (league/commonmark, guzzlehttp/guzzle, npm packages).

[v1.2.2] — 2026-07-17

  • Fix: Core upgrade hardening — vendor staging/validation, CLI subprocess migrations, and vendor included in pre-upgrade backups (fixes shared-hosting upgrade failures).
  • Fix: protect-local-files Composer script runs via PHP for Windows compatibility.

[v1.2.1] — 2026-07-15

  • Fix: Text Editor block lifecycle and list markers in the canvas; list blocks keep content when changing type.
  • New: Native Ctrl+Z / Cmd+Z undo in Lara Builder; ModuleStyles component for safe module Vite CSS.
  • Fix: module:make-crud command and stubs; bumped spatie/laravel-medialibrary to 11.23.0.

[v1.2.0] — 2026-06-21

  • New: Lara Builder SEO drawer with live score, checklist, SERP preview, and AI-generated meta fields.
  • New: Auto-save for draft posts, text ↔ heading block conversion, and unified content typography tokens (inherit-by-default colors + section text color).
  • Fix: Media library featured image duplicates, broken thumbnails/URLs, and publish/save “Unsaved” false-positive state.
  • Improve: Media upload auto-select, post list thumbnails, builder header/actions, and AI content modal UX.

[v1.1.5] — 2026-05-18

  • Fix: Migration is now idempotent — safe to re-run on databases that half-applied the v1.1.4 release.

[v1.1.4] — 2026-05-18

  • New: Daily error digest email notifications for admins with error details.
  • Improve: Improved module generator command to support custom stub templates and better error handling.
  • Fix: Fixed switch toggle component styling.

[v1.1.3] — 2026-05-04

  • Improve: Improved file upload component with close button and better error handling.
  • Fix: Fixed minor upgrade issue for demo mode.

[v1.1.2] — 2026-04-19

  • Fix: Module generator command improvement for Windows OS.
  • Fix: CRUD generator command improvement for Windows OS.
  • Improve: Added more extendibility support for email templates.
  • Improve: Added more extendibility support for authentication pages.

[v1.1.1] — 2026-04-10

  • Feat: Scheduled queue worker — runs every minute via schedule:run to process queued jobs (workflow actions, emails) without requiring a long-running worker.
  • Improve: Sidebar submenu supports deeper (3rd and 4th level) nesting with proper indentation.
  • Improve: Sidebar submenu expands without an inner scrollbar; the sidebar wrapper handles overflow when nav is long.
  • Fix: Cleaned up user dropdown styling in the admin header.

👉 See the full changelog for all versions (v0.9.x – v2.x) →

(back to top)

🚀 Project Setup

Clone and Go Project

git clone git@github.com:laradashboard/laradashboard.git
cd laradashboard

Database & env creation

  • Create database called - laradashboard
  • Create .env file by copying .env.example file
cp .env.example .env

Install Composer & Node Dependencies

composer install
npm install

Generate Artisan key

php artisan key:generate

Link storage for file upload processing

php artisan storage:link

Migrate Database with seeder

php artisan migrate:fresh --seed

Run Project

composer run dev

So, You've got the project of Lara Dashboard on your local machine - http://localhost:8000

[Note]: For hot reloading to work, you must need node js version >= 20.19

(back to top)

🔨 Build Commands

CommandDescription
npm run buildBuild core only
npm run build:allBuild core + all enabled modules
npm run build:modulesBuild all enabled modules
npm run build:modules -- --modules=crmBuild specific module
npm run build:modules -- --modules=crm,customformBuild multiple modules
npm run devDev server (core + modules)
npm run dev:coreDev server (core only)

(back to top)

📦 Distribution Package (Zip Build)

Create a production-ready zip package for distribution or manual upgrades. This package includes the vendor folder so users don't need Composer installed.

Using the Admin Panel:

  1. For production distribution, first run: composer install --no-dev --optimize-autoloader
  2. Go to Settings → Core Upgrades
  3. Click Create Backup
  4. Select backup type (Core + Modules recommended)
  5. Check Include vendor folder for production deployment
  6. Download the generated zip file
  7. Restore dev dependencies: composer install

Manual Zip Creation:

# Build all assets first
npm run build:all

# Install production-only dependencies (removes dev packages like Pest, PHPUnit, etc.)
composer install --no-dev --optimize-autoloader

# Create distribution zip (excludes node_modules, .git, tests, uploads, etc.)
zip -r laradashboard-v$(cat version.json | grep -o '"version": "[^"]*' | cut -d'"' -f4).zip \
    app bootstrap config database resources routes vendor Modules \
    public/.htaccess public/index.php public/favicon.ico public/robots.txt \
    public/asset public/backend public/build public/build-* public/css public/js public/images/logo \
    storage/app/.gitignore storage/app/public/.gitignore \
    storage/framework/.gitignore storage/framework/cache/.gitignore \
    storage/framework/sessions/.gitignore storage/framework/views/.gitignore \
    storage/logs/.gitignore \
    artisan composer.json composer.lock package.json version.json index.php \
    .env.example .htaccess vite.config.js tailwind.config.js postcss.config.js \
    -x "*.git*" -x "node_modules/*" -x "tests/*" -x "storage/logs/*" -x "public/images/uploads/*" -x "public/uploads/*"

# Restore dev dependencies for local development
composer install

Note: Running composer install --no-dev before creating the zip ensures the vendor folder only contains production dependencies, significantly reducing the package size.

What's included in the distribution package:

  • app/ - Application code
  • bootstrap/ - Bootstrap files
  • config/ - Configuration files
  • database/ - Migrations, seeders, factories
  • public/ - Public assets (build, css, js, images)
  • resources/ - Views, JS, CSS, lang files
  • routes/ - Route definitions
  • vendor/ - Composer dependencies (optional, for production)
  • index.php - Root entry point for shared hosting (cPanel)
  • .htaccess - Apache rewrite rules
  • .env.example - Environment template
  • Core config files (composer.json, package.json, etc.)

Shared Hosting (cPanel) Deployment:

The package includes index.php and .htaccess in the root directory, so it works out-of-the-box on shared hosting without changing document root:

# Upload all files to public_html/
# No need to change document root - just upload and configure .env

If you prefer the standard Laravel setup (recommended for VPS/dedicated servers):

  1. Point your domain's document root to the public/ directory
  2. Or create a symlink: ln -s /path/to/laradashboard/public /home/user/public_html

Fresh Installation from Zip:

# Extract the zip
unzip laradashboard-vX.X.X.zip -d laradashboard
cd laradashboard

# Configure environment
cp .env.example .env
php artisan key:generate

# Update .env with your database credentials
# DB_DATABASE=your_database
# DB_USERNAME=your_user
# DB_PASSWORD=your_password

# Run migrations
php artisan migrate --seed
php artisan storage:link

# If vendor was not included, run:
composer install --no-dev --optimize-autoloader

(back to top)

🔄 Previously From laravel-role

We were previously at https://github.com/ManiruzzamanAkash/laravel-role, so you need to change the URL if you moved from there

git remote set-url origin git@github.com:laradashboard/laradashboard.git

(back to top)

⚙️ How it works

  1. Login using Super Admin Credential -
    1. Email - superadmin@example.com
    2. Password - 12345678
  2. Forget password - Password forget and reset will work if email is set up properly
  3. Create User
  4. Create Role
  5. Assign Permission to Roles
  6. Assign Multiple Role to an User
  7. Check by login with the new credentials.
  8. If you've not enough permission to do any task, you'll get a warning message.
  9. Dashboard with Beautiful chart integrated
  10. Module Based Development - Custom Module Add/Enable/Disable/Delete with detail view
  11. Monitoring - Logging of every action of your application
  12. Monitoring - Laravel Pulse
  13. Translation Management - Add/Edit/Delete Language, Add/Edit/Delete Translation
  14. Settings - General, Site Appearance, Content, Integration, Security settings
  15. Admin Menu - Add/Edit/Delete Menu, Submenu, Link
  16. Admin Impersonation - Login as another user and switch back to your original account
  17. Custom Error Pages - 404, 500, 503, 403
  18. Content Management System - Add/Edit/Delete Content, Content Category, Content Tag
  19. AI Content Generation - Configure AI providers (OpenAI, Anthropic, etc.) for content generation
  20. MCP Server - Connect Cursor, Claude Desktop, or Claude Code; manage content, CRM, forms, email, cache, and logs from AI agents (Settings → MCP)
  21. Email Management - Email connections, email templates with visual builder, notifications
  22. Detail Pages - User, Role, Permission, Module detail views with comprehensive information
  23. REST API — auto-documented REST endpoints for Users, Roles, Permissions, Settings, Translations, and Content (Post / Page / Category / Tag).

(back to top)

📧 Email setup

You can use Mailpit to test emails easily - https://mailpit.axllent.org/

Installation link - https://mailpit.axllent.org/docs/install/

MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=dev@example.com
MAIL_FROM_NAME="${APP_NAME}"

Browse Emails - http://localhost:8025

[!NOTE] You can also create custom Email connection from Email Connections page.

(back to top)

📚 Documentation

https://laradashboard.com/docs/

🔗 Rest API Documentation

We've used Scramble to automatically generate the Rest API documentation for Lara Dashboard. You can find the API documentation at:

http://localhost:8000/docs/api

(back to top)

Tests

We've used Laravel Pint, Rector, Larastan(PHPstan) - static analysis and Pest for unit tests, e2e (browser) tests.

composer run test
composer run test

Format: To format the code, we've used pint. You can run the following command to format the code:

composer run format

Type Safety: To improve type safety, we've used rector. You can run the following command to add type hints:

composer run type-check

You can also run individual commands for each tool (optional):

composer run pint
composer run phpstan
composer run pest

🛠️ Troubleshooting

Laragon/Windows: ext-sockets missing

If you get this error during composer install:

pestphp/pest-plugin-browser requires ext-sockets * -> it is missing from your system

Fix: Enable the sockets extension in php.ini:

extension=sockets

Or via Laragon UI: Right-click tray → PHP → Extensions → check sockets

Quick workaround:

composer install --ignore-platform-req=ext-sockets

(back to top)

🚀 Laravel Boost

Laravel Boost is already installed in this project to provide enhanced development and debugging tools for Lara Dashboard.

How to use Boost:

Visit the Laravel Boost documentation.

(back to top)

📸 Screenshots

🔐 Login & Authentication

Login Page
Login Page
Forget Password Page (Dark Mode)
Forget Password Page

📊 Dashboard

Dashboard (Light Mode)
Dashboard Light Mode
Dashboard (Dark Mode)
Dashboard Dark Mode
Dashboard Collapsed Sidebar
Dashboard Collapsed Sidebar

🔑 Role Management

Role List (Light Mode)
Role List
Role List (Dark Mode)
Role List Dark
Role Create
Role Create
Role Edit
Role Edit
Role Detail
Role Detail
Permission List
Permission List
Permission Detail
Permission Detail

👥 User Management

Users List (Light mode)
Users List (Light mode)
User Create (Dark mode)
User Create
User Detail
User Detail
Profile Edit
Profile Edit
User Delete
User Delete

📝 Content Management - CMS

Posts List
Users List (Light mode)
Post Create
Users List (Dark mode)
Pages List
Users List (Light mode)
Page Edit
Users List (Dark mode)
Category List & Create
Category List & Create
Category Edit
Category Edit
Tag List & Create
Tag Create
Tag Edit
Tag Delete

📁 Media Management

Media List (Light Mode)
Media List
Media List (Dark Mode)
Media List Dark

🤖 AI Content Generation

AI Providers Settings
AI Content Generation
AI Providers Settings
Inline AI

Use inline AI inside the admin for drafting and editing. For full site management from Cursor, Claude Desktop, or Claude Code, enable the MCP server under Settings → MCP — see Develop & Manage with AI (MCP) above.

📧 Email Management

Email Connections
Email Connections
Email Templates
Email Templates
Email Template Create
Email Template Create
Notifications Settings
Notifications Settings

🧩 Module Management

Module List
Module List
Install Module
Install Module
Module Detail
Module Detail

⚙️ Settings Pages

General Settings
General Settings
Site Appearance
Site Appearance
Content Settings
Content Settings
Integration Settings
Integration Settings
Security Settings
Security Settings

🌐 Translations Pages

Translations List (Light Mode)
Translations List
Translations List (Dark Mode)
Translations List Dark

📊 Monitoring

Action Logs
Action Logs
Laravel Pulse
Laravel Pulse

🧩 Rest API Management

Rest API
Rest API
Rest API Login
Rest API Login

🔧 Other Pages / Sections / Tests

Custom Error Pages
Custom Error Pages
Post activity Chart
Post activity Chart
Pest, Pint, Rector, PHPstan tests
Pest, Pint, Rector, PHPstan tests

(back to top)

🔗 Live Demo

https://laradashboard.com/try-demo/

(back to top)

✨ Premium Features

Visit laradashboard.com for premium modules — CRM, HRM, Course Management, Project Management and more. Each premium module ships with the same CRUD generator, hooks, and test scaffolding as the core.

(back to top)

🧩 Core modules

(back to top)

📦 Module Development

Lara Dashboard uses nwidart/laravel-modules for modular architecture. Modules are self-contained packages with pre-compiled assets - no npm required on the server.

Quick Start

# Create a new module
php artisan module:make Blog

# Build and package for distribution
php artisan module:zip Blog
# Output: Blog-v1.0.0.zip

Learn module development documentation

CRUD Generator

Rapidly scaffold complete CRUD operations with a single command.

php artisan module:make-crud Blog --model=Article --fields="title:string,author:string,content:text,is_published:boolean"

What gets generated:

  • ✅ Model with fillable fields and casts
  • ✅ Datatable with sorting, searching, pagination
  • ✅ Index, Show, Create, Edit Livewire components
  • ✅ Blade views with breadcrumb navigation
  • ✅ Routes (index, create, show, edit)
  • ✅ Sidebar menu item

Learn more CRUD generator documentation

Installing Modules

Via Web UI: Upload ZIP at Modules → Install Module (assets publish automatically)

Via CLI:

unzip Blog-v1.0.0.zip -d modules/
php artisan module:enable Blog

📖 Full Module Development Guide - Covers module structure, Tailwind CSS setup, building, packaging, and best practices.

(back to top)

👥 Contributing

Want to contribute? Fork the project, make your changes, and submit a pull request. Even small improvements to documentation are appreciated!

Please be sure to read our Contribution Guide before submitting your PR.

(back to top)

➶ Coding Standards

✨ Following a consistent coding standard ensures code quality, readability, and easier collaboration for everyone. 📏 Please be sure to read our Contribution Guide before submitting your PR.

(back to top)

🌟 Top contributors:

contrib.rocks image

✩ Growth Story

Star History Chart

💖 Support

If you like my work you may consider buying me a ☕ / 🍕

Go to Patreon

(back to top)

📞 Connect

(back to top)

Collected info

  • ★ 415 stars
  • ⎇ 167 forks
  • Language: PHP
  • Source updated: 9/23/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.