PHPackages                             opscale-co/nova-mcp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. opscale-co/nova-mcp

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

opscale-co/nova-mcp
===================

Enable a MCP server for your Laravel Nova package

1.2.0(4mo ago)08MITPHPPHP &gt;=8.2CI passing

Since Jan 3Pushed 4mo agoCompare

[ Source](https://github.com/opscale-co/nova-mcp)[ Packagist](https://packagist.org/packages/opscale-co/nova-mcp)[ Docs](https://github.com/opscale-co/nova-mcp)[ RSS](/packages/opscale-co-nova-mcp/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (10)Versions (6)Used By (0)

Support us
----------

[](#support-us)

At Opscale, we’re passionate about contributing to the open-source community by providing solutions that help businesses scale efficiently. If you’ve found our tools helpful, here are a few ways you can show your support:

⭐ **Star this repository** to help others discover our work and be part of our growing community. Every star makes a difference!

💬 **Share your experience** by leaving a review on [Trustpilot](https://www.trustpilot.com/review/opscale.co) or sharing your thoughts on social media. Your feedback helps us improve and grow!

📧 **Send us feedback** on what we can improve at . We value your input to make our tools even better for everyone.

🙏 **Get involved** by actively contributing to our open-source repositories. Your participation benefits the entire community and helps push the boundaries of what’s possible.

💼 **Hire us** if you need custom dashboards, admin panels, internal tools or MVPs tailored to your business. With our expertise, we can help you systematize operations or enhance your existing product. Contact us at  to discuss your project needs.

Thanks for helping Opscale continue to scale! 🚀

Description
-----------

[](#description)

Quickly deploy a MCP (Model Context Protocol) server for your platform. This package turns your Laravel Nova application into an AI-ready platform, exposing your business domain, processes, and operations through the MCP protocol.

With Nova MCP, AI assistants can:

- Manage your data through CRUD operations on Nova resources
- Execute business logic through custom actions
- Understand your domain via DBML schema definitions
- Follow your workflows via BPMN process definitions

[![Demo](https://raw.githubusercontent.com/opscale-co/nova-mcp/refs/heads/main/screenshots/nova-mcp.gif)](https://raw.githubusercontent.com/opscale-co/nova-mcp/refs/heads/main/screenshots/nova-mcp.gif)

Installation
------------

[](#installation)

[![Latest Version on Packagist](https://camo.githubusercontent.com/b78f9ef730f420eb39d023992e546169548ba91ffd662992e4b565413e24099c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6f707363616c652d636f2f6e6f76612d6d63702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/opscale-co/nova-mcp)

You can install the package in to a Laravel app that uses [Nova](https://nova.laravel.com) via composer:

```
composer require opscale-co/nova-mcp
```

Next up, you must register the tool with Nova. This is typically done in the `tools` method of the `NovaServiceProvider`.

```
// in app/Providers/NovaServiceProvider.php
// ...
public function tools()
{
    return [
        // ...
        new \Opscale\NovaMCP\Tool(),
    ];
}
```

Usage
-----

[](#usage)

The MCP server runs automatically in local configuration. To enable it, you need to implement the required resolvers in your application.

### 1. Implement Resolvers

[](#1-implement-resolvers)

Create implementations for the following resolver contracts in your service provider:

```
use Opscale\NovaMCP\Contracts\ModelsResolver;
use Opscale\NovaMCP\Contracts\ResourcesResolver;
use Opscale\NovaMCP\Contracts\ToolsResolver;
use Opscale\NovaMCP\Contracts\DomainResolver;
use Opscale\NovaMCP\Contracts\ProcessResolver;

class AppServiceProvider extends ServiceProvider
{
    public function register(): void
    {
        // Nova resources available for CRUD operations
        $this->app->singleton(ModelsResolver::class, YourModelsResolver::class);

        // Business logic actions (opscale-co/actions)
        $this->app->singleton(ToolsResolver::class, YourToolsResolver::class);

        // Custom MCP resources (optional)
        $this->app->singleton(ResourcesResolver::class, YourResourcesResolver::class);

        // Domain schema in DBML format
        $this->app->singleton(DomainResolver::class, YourDomainResolver::class);

        // Business processes in BPMN format
        $this->app->singleton(ProcessResolver::class, YourProcessResolver::class);
    }
}
```

### 2. Models Resolver

[](#2-models-resolver)

**Why:** Defines which Nova resources the AI can manage. Without this, the AI wouldn't know what data entities exist in your platform or how to create, read, update, or delete records.

```
class YourModelsResolver implements ModelsResolver
{
    public function resolve(): array
    {
        return [
            \App\Nova\User::class,
            \App\Nova\Product::class,
            \App\Nova\Order::class,
        ];
    }
}
```

### 3. Tools Resolver

[](#3-tools-resolver)

**Why:** Exposes your business logic actions to the AI. While CRUD handles data, tools handle operations with side effects like sending emails, processing payments, or triggering workflows. These are the "verbs" of your platform.

```
class YourToolsResolver implements ToolsResolver
{
    public function resolve(): array
    {
        return [
            \App\Actions\SendInvoice::class,
            \App\Actions\ApproveOrder::class,
            \App\Actions\ResetPassword::class,
        ];
    }
}
```

### 4. Resources Resolver (Optional)

[](#4-resources-resolver-optional)

**Why:** Exposes custom MCP resources to the AI. Resources are read-only data sources that provide context to the AI, such as configuration files, documentation, or dynamic data feeds. These are combined with the default resources (domain and process).

```
class YourResourcesResolver implements ResourcesResolver
{
    public function resolve(): array
    {
        return [
            \App\MCP\Resources\InventoryResource::class,
            \App\MCP\Resources\ReportsResource::class,
        ];
    }
}
```

### 5. Domain Resolver

[](#5-domain-resolver)

**Why:** Provides the AI with your domain schema so it understands entity relationships, required fields, and data dependencies. This allows the AI to know that an Order requires a Customer, or that an Invoice needs line items.

```
class YourDomainResolver implements DomainResolver
{
    public function resolve(): string
    {
        return file_get_contents(base_path('docs/domain.dbml'));
    }
}
```

### 6. Process Resolver

[](#6-process-resolver)

**Why:** Defines your business workflows so the AI knows the correct sequence of steps for each task. Instead of guessing, the AI follows your documented processes - knowing that user registration requires creating an account, then resetting the password, then sending a welcome email.

```
class YourProcessResolver implements ProcessResolver
{
    public function resolve(): string
    {
        return file_get_contents(base_path('docs/processes.bpmn'));
    }
}
```

### Running the Server

[](#running-the-server)

The MCP server is automatically registered and available via the `mcp:serve` command:

```
php artisan mcp:serve nova-mcp
```

You can also use it with Claude Desktop by adding to your MCP configuration:

```
{
  "mcpServers": {
    "nova-mcp": {
      "command": "php",
      "args": ["artisan", "mcp:serve", "nova-mcp"],
      "cwd": "/path/to/your/laravel/app"
    }
  }
}
```

### Nova Tool

[](#nova-tool)

Click on the "nova-mcp" menu item in your Nova app to see the tool provided by this package.

Testing
-------

[](#testing)

```
npm run test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](https://github.com/opscale-co/.github/blob/main/CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Opscale](https://github.com/opscale-co)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance76

Regular maintenance activity

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

129d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3722594?v=4)[opscale](/maintainers/opscale)[@opscale](https://github.com/opscale)

---

Top Contributors

[![opscale-development](https://avatars.githubusercontent.com/u/181295122?v=4)](https://github.com/opscale-development "opscale-development (10 commits)")[![semantic-release-bot](https://avatars.githubusercontent.com/u/32174276?v=4)](https://github.com/semantic-release-bot "semantic-release-bot (5 commits)")

---

Tags

laravelpackagetoolnovaopscale

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/opscale-co-nova-mcp/health.svg)

```
[![Health](https://phpackages.com/badges/opscale-co-nova-mcp/health.svg)](https://phpackages.com/packages/opscale-co-nova-mcp)
```

###  Alternatives

[pdmfc/nova-info-card

A Laravel Nova info card.

14103.0k2](/packages/pdmfc-nova-info-card)[cendekia/nova-setting-tool

An app setting manager tool for laravel nova

4010.5k](/packages/cendekia-nova-setting-tool)[demency/nova-gridder

A Laravel Nova Package for resource details grids.

1615.1k](/packages/demency-nova-gridder)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
