Download the PHP package webbycrown/mcp-dashboard-studio without Composer

On this page you can find all versions of the php package webbycrown/mcp-dashboard-studio. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package mcp-dashboard-studio

🎨 MCP Dashboard Studio

Latest Version on Packagist License: MIT PHP Version Laravel Total Downloads

πŸš€ Transform your Laravel database into AI-powered analytics dashboards
Expose your database as an MCP (Model Context Protocol) server and let AI assistants like Claude, ChatGPT, Cursor, and Windsurf generate live, interactive analytics dashboards from natural language β€” zero manual schema work required.


✨ Features


πŸ“‹ Requirements

Dependency Version Description
PHP β‰₯ 8.2 Core language
Laravel β‰₯ 11.x Framework (11, 12, or 13)
laravel/passport β‰₯ 13.x OAuth 2.1 server
laravel/mcp β‰₯ 0.1 MCP protocol implementation

πŸ“¦ Installation

Step 1: Register Repository

Add to your host app composer.json:

Step 2: Install Package

Step 3: Install Laravel Passport

Step 4: Update User Model

Step 5: Add API Guard

Step 6: Trust Proxy Headers

Required for ngrok, Nginx, or Cloudflare:

Step 7: Publish Assets (Optional)

Step 8: migrate tables

Step 9: Set Environment Variables

Step 10: Connect Your AI Tool (e.g., ChatGPT)

You have two ways to connect your AI client to your live server:

Method A: Static API Key (Recommended & Easiest)

This method bypasses OAuth and works even if your server blocks hidden directories.

  1. Set a secure MCP_SECRET_TOKEN in your .env (e.g., MCP_SECRET_TOKEN=my_secure_key_123).
  2. Run php artisan config:clear.
  3. In ChatGPT's "Add App" or "Connectors" setup, set Authentication to API Key.
  4. Set Auth Type to Bearer.
  5. Paste your MCP_SECRET_TOKEN into the API Key box.

Method B: Full OAuth (Requires Login Popup)

If you want to use standard OAuth, you must generate a real Client ID and Secret:

  1. Run php artisan passport:client.
  2. Name it "ChatGPT" and provide the Callback URL shown in the ChatGPT UI.
  3. In ChatGPT, select OAuth for Authentication.
  4. If your server supports auto-discovery, it will connect automatically. If auto-discovery fails (e.g., Nginx blocks .well-known), enter the endpoints manually:
    • Authorization URL: https://your-domain.com/oauth/authorize
    • Token URL: https://your-domain.com/oauth/token
  5. Paste the Client ID and Client Secret generated by Passport into the ChatGPT UI. _(Do NOT use your MCP_SECRETTOKEN here).

Step 11: Set ai models to use this mcp API

Configure config/mcp-dashboard-studio.php

Step 12: Configure instruction

Configure some instructions about the site and database like domain,relationships etc.so any AI tool easily understand your site and db structure.


πŸš€ Quick Start

After installation, here's how to access and manage your dashboards:

Access Dashboard Manager

Visit the manager panel to view and manage all dashboards:

Default URL Structure:

Manager Features

The manager UI provides full CRUD operations:

Action URL Description
List All Dashboards /mcp-manager/dashboards View all dashboards with search & filter
View Dashboard /dashboard-studio/{slug} Interactive live dashboard
Edit Dashboard /mcp-manager/dashboards/{uuid}/edit Modify name, status, layout
Delete Dashboard /mcp-manager/dashboards/{uuid} (DELETE) Move to trash
Access Control /mcp-manager/dashboards/{uuid}/access Manage who can view/edit
Audit Log /mcp-manager/dashboards/{uuid}/audit View access history
Export /mcp-manager/dashboards/{uuid}/export Download as JSON
Trash /mcp-manager/dashboards/trash Restore or permanently delete

Quick Access Links

Once logged into the manager, you can:

  1. View Dashboard - Click the dashboard name or "View" button to see the live interactive dashboard
  2. Edit Settings - Change dashboard name, description, or visibility (public/private)
  3. Manage Access - Grant/revoke access for system users or invite external users via email
  4. Clone Dashboard - Duplicate an existing dashboard as a template
  5. Bulk Actions - Select multiple dashboards to delete or change status
  6. Import/Export - Backup dashboards or migrate between environments

Dashboard Status

Each dashboard has a status:

User Access Types

System Users (from your Laravel users table):

Custom Users (external invites):

Example Workflow

Tips


βš™οΈ Configuration

Optional Environment Variables


πŸ—οΈ Architecture

Dashboard Generation Pipeline

Key Components


🎨 CSS Customization

Publishing Assets

To customize the package CSS, publish the assets:

This copies files to:

View Customization

Publish views to override templates:

Views are published to:


πŸ›‘οΈ Security

OAuth 2.1 + PKCE Flow

The package implements full OAuth 2.1 with PKCE:

Security Features

Feature Description
πŸ” Token Validation OAuth Bearer + Static token support
πŸ›‘οΈ SQL Injection Protection Parameterized queries with limits
🚫 Domain Allowlist Restrict OAuth client registration
⏱️ Rate Limiting 10 registrations/minute on /oauth/register
πŸ”’ HTTPS Enforcement Rejects HTTP in production
πŸ‘€ Access Control Public/private dashboard permissions
πŸ“ Audit Logging Track all dashboard operations

Best Practices

  1. Always use HTTPS in production
  2. Set strong MCP_SECRET_TOKEN for non-OAuth clients
  3. Configure domain allowlist for OAuth registration
  4. Enable admin consent for sensitive environments
  5. Regularly review audit logs in manager UI
  6. Keep dependencies updated for security patches

πŸ’Ύ Database Requirements

Supported Databases

Performance Considerations

Large Dataset Handling

For databases with millions of rows:

  1. Enable schema mode: MCP_DATA_MODE=schema
  2. Increase query limits cautiously
  3. Use database indexes on frequently queried columns
  4. Consider read replicas for dashboard queries

⚠️ Limitations

Limitation Default Configurable
Tables discovered 100 MCP_MAX_TABLES
Columns per table 8 MCP_MAX_COLUMNS
Query result rows 100 MCP_MAX_QUERY_LIMIT
Token TTL 30 days MCP_TOKEN_TTL_DAYS
Refresh token TTL 90 days MCP_REFRESH_TOKEN_TTL_DAYS

Known Constraints


πŸ“Š Examples & Use Cases

Sales Dashboard

Prompt:

"Show me sales overview with revenue by month, top 10 products, and regional breakdown"

Result:

HR Analytics

Prompt:

"Create HR dashboard showing employee count by department, hiring trends, and turnover rate"

Result:

Inventory Management

Prompt:

"Build inventory dashboard with stock levels, low stock alerts, and category breakdown"

Result:


🌐 Deployment

Production Checklist

Scaling Considerations


πŸ§ͺ Testing

Run Tests

Test Coverage

The package includes comprehensive tests:

Test Files


πŸ› οΈ Troubleshooting

Common Issues

OAuth Warning in Logs

Problem: [MCP] OAuth 2.1 is DISABLED: Laravel Passport is not installed

Solution:

Invalid Client Error

Problem: {"error":"invalid_client","error_description":"Client authentication failed"} when returning from the login screen.

Solution: You likely put your MCP_SECRET_TOKEN into the "OAuth Client Secret" box in the AI tool. The MCP_SECRET_TOKEN is only for API Key authentication. For OAuth, you must generate a real client secret using php artisan passport:client --confidential and use that instead.

Nginx 404 on OAuth Discovery

Problem: ChatGPT reports does not implement OAuth or returns a 404 for /.well-known/oauth-authorization-server.

Solution: Your Nginx server is blocking access to hidden directories (directories starting with a dot). Update your Nginx configuration to allow the .well-known directory:

Alternatively, bypass OAuth discovery by entering the Auth/Token URLs manually in the AI client, or use the API Key method instead.

Session Store Not Set

Problem: Session store not set on request

Solution: Ensure package is updated (fixed in latest version)

Dashboard Shows No Data

Problem: Dashboard renders but shows empty data

Solution: Set MCP_DB_ENABLED=true and MCP_DATA_MODE=database

Manager Returns 503

Problem: Manager UI unavailable

Solution: Set MCP_MANAGER_ENABLED=true in .env

Assets Missing

Problem: CSS/JS not loading

Solution: Publish assets:

Debug Mode

Enable verbose logging:

Check logs at:


❓ FAQ

Q: Can I use this without OAuth?

A: Yes! Set MCP_OAUTH_ENABLED=false and use MCP_SECRET_TOKEN for authentication.

Q: Does this work with any database?

A: It supports MySQL, PostgreSQL, and SQLite. Other databases may work but aren't officially tested.

Q: Can I customize the dashboard design?

A: Yes! Publish the assets and views, then modify CSS and Blade templates to match your brand.

Q: Is my data secure?

A: The package uses parameterized queries, access controls, and OAuth 2.1. However, always review your security settings and follow best practices.

Q: Can I limit which tables AI can access?

A: Yes! Configure excluded or whitelisted tables in config/mcp-dashboard-studio.php.

Q: How do I add custom authentication?

A: Implement the NlpClientInterface and bind it in a service provider.

Q: Can I use this in multi-tenant applications?

A: Yes, but you'll need to configure database connections per tenant.


πŸ“š Documentation


🀝 Contributing

Contributions are welcome! Please follow these guidelines:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Write tests for your changes
  4. Ensure all tests pass (vendor/bin/phpunit)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Setup

Code Style


πŸ“„ License

MIT Β© Webbycrown


πŸ™ Acknowledgments


πŸ“ž Support


**⭐ If you find this package helpful, please consider giving it a star on GitHub!** Made with ❀️ by [Webbycrown](https://github.com/webbycrown)

All versions of mcp-dashboard-studio with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
laravel/framework Version ^11.0|^12.0|^13.0
laravel/mcp Version >=0.1
laravel/passport Version >=0.1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package webbycrown/mcp-dashboard-studio contains the following files

Loading the files please wait ...