PHPackages                             janvdb2000/maestro - 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. janvdb2000/maestro

ActiveLibrary

janvdb2000/maestro
==================

Symfony-aware MCP tools, agent instructions, and skills for AI-assisted development.

v0.1.0(today)01↑2900%MITPHPPHP ^8.2CI passing

Since Aug 8Pushed todayCompare

[ Source](https://github.com/JanVDB2000/maestro)[ Packagist](https://packagist.org/packages/janvdb2000/maestro)[ Docs](https://github.com/JanVDB2000/maestro)[ RSS](/packages/janvdb2000-maestro/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (30)Versions (2)Used By (0)

Maestro
=======

[](#maestro)

[![Tests](https://github.com/JanVDB2000/maestro/actions/workflows/tests.yml/badge.svg)](https://github.com/JanVDB2000/maestro/actions/workflows/tests.yml)[![Latest Stable Version](https://camo.githubusercontent.com/cd835257c7e6e97a5b6b465e217d9aa727508b31f7fcb0c52ebb2bc867ebdea5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a616e766462323030302f6d61657374726f2e737667)](https://packagist.org/packages/janvdb2000/maestro)[![Total Downloads](https://camo.githubusercontent.com/acdc09d8fab75c88436eb78b7f8e97c20adabd3785efb6e79bffb31e86525595/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a616e766462323030302f6d61657374726f2e737667)](https://packagist.org/packages/janvdb2000/maestro)[![License](https://camo.githubusercontent.com/403238328d54cc2baaefa1d2bb13a6e27226233ddd3b2bbccd9815d4f7d99310/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a616e766462323030302f6d61657374726f2e737667)](LICENSE.md)

Maestro gives AI coding agents a reliable view of a real Symfony application. It exposes read-only MCP tools for routes, services, configuration, Doctrine, logs, the profiler, and common Symfony ecosystem packages, then teaches agents when to use those tools through instructions and on-demand skills.

Maestro is inspired by [Laravel Boost](https://laravel.com/docs/boost), but is an independent community project and is not affiliated with or endorsed by Symfony or Laravel.

Requirements
------------

[](#requirements)

- PHP 8.2 or newer
- Symfony 6.4, Symfony 7.3 or newer, or Symfony 8.x
- Composer 2
- An MCP-capable coding agent

Maestro is a development dependency and should not be installed in production.

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

[](#installation)

Install Maestro in an existing Symfony application:

```
composer require --dev janvdb2000/maestro
vendor/bin/maestro init
vendor/bin/maestro discover
```

`maestro init` creates the local AI Mate configuration. `maestro discover` enables installed extensions, materializes their agent instructions, and installs their skills for supported coding agents.

`maestro` is a thin wrapper around AI Mate: it adds the short tool commands below and passes everything else straight through, so `maestro init` and `mate init` are the same command. This README uses `maestro` throughout.

Call a tool through Maestro's short CLI syntax:

```
vendor/bin/maestro tool symfony-app-info
vendor/bin/maestro tool symfony-routes '{"method":"GET"}' --format=json
vendor/bin/maestro tools
vendor/bin/maestro inspect symfony-app-info
```

If `vendor/bin` is on your `PATH`, the first example is exactly `maestro tool symfony-app-info`. Otherwise, `composer exec maestro -- tool symfony-app-info` works without changing your `PATH`.

The generated MCP server uses the following command:

```
{
    "mcpServers": {
        "maestro": {
            "command": "php",
            "args": ["vendor/bin/mate", "serve", "--force-keep-alive"]
        }
    }
}
```

If your project runs inside Docker or another development environment, replace `php` with the command that executes PHP in that environment. Restart the MCP server after installing, updating, adding, or renaming tools.

Tools
-----

[](#tools)

AI Mate also provides `server-info`. Maestro adds the following tools:

AreaToolsProject`symfony-app-info`, `symfony-routes`, `symfony-services`, `symfony-config`, `symfony-console-commands`Doctrine`doctrine-entities`, `doctrine-relations`, `doctrine-schema`, `doctrine-migrations`, `doctrine-query-readonly`Debugging`symfony-last-error`, `symfony-profiler`, `monolog-search`, `deprecations`, `mailer-debug`Ecosystem`messenger`, `twig`, `security`, `api-platform`, `ux-turbo`, `easyadmin`Documentation`search-docs`Every optional integration reports an availability response with the package required to enable it. An unavailable integration does not prevent the MCP server or other tools from loading.

Safety
------

[](#safety)

Maestro treats application inspection as read-only:

- MCP tool annotations declare read-only, non-destructive behavior.
- Credentials and sensitive configuration values are redacted.
- Potentially unbounded output is capped and marked when truncated.
- Missing bundles and kernel boot failures are returned as structured responses.
- Documentation search is the only tool that accesses the network.

The SQL query tool is disabled by default. To enable it for a trusted local development session, start the MCP server with `MAESTRO_ALLOW_QUERY=1`. It accepts one `SELECT` or `EXPLAIN`, rejects stacked and locking statements, caps results at 200 rows, applies a timeout where supported, and always rolls back its transaction.

Optional integrations
---------------------

[](#optional-integrations)

Maestro adapts to packages already installed by the application:

CapabilityPackageDoctrine inspection`doctrine/doctrine-bundle`, `doctrine/orm`Migration status`doctrine/doctrine-migrations-bundle`Guarded SQL queries`phpmyadmin/sql-parser`Templates`symfony/twig-bundle`Security`symfony/security-bundle`Messages`symfony/messenger`Mail profiling`symfony/mailer`, `symfony/web-profiler-bundle`Logs`symfony/monolog-bundle`API resources`api-platform/core`Admin panels`easycorp/easyadmin-bundle`Frontend stack`symfony/ux-turbo`Instructions and skills
-----------------------

[](#instructions-and-skills)

`INSTRUCTIONS.md` contains the short, always-available rules that tell an agent to inspect the project before guessing. The skills under `skills/` provide deeper workflows for Symfony, Doctrine, Security, and testing only when a matching task activates them.

Run `vendor/bin/maestro discover` again after updating Maestro to refresh generated guidance and skills. Project-specific instructions remain under your control and can complement Maestro's generated block.

On Windows, skill installation requires symlink support. Enable Developer Mode, run the agent inside WSL, or install the skills manually if the upstream AI Mate symlink operation is unavailable.

Documentation search
--------------------

[](#documentation-search)

`search-docs` selects documentation versions from the packages installed in the application. Symfony documentation is searched by version, and supported ecosystem documentation is searched from its official source repository. Set `GITHUB_TOKEN` to increase GitHub API limits; credentials are never returned by the tool.

Development
-----------

[](#development)

```
composer install
composer test
composer analyse
composer rector
composer check
```

The integration suite builds a disposable Symfony fixture, SQLite database, logs, and profiler records on every run. No pre-generated runtime state is required.

See [CONTRIBUTING.md](CONTRIBUTING.md) for the contribution workflow and [SECURITY.md](SECURITY.md) for private vulnerability reporting.

License
-------

[](#license)

Maestro is open-source software licensed under the [MIT license](LICENSE.md).

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance100

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

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

---

Top Contributors

[![JanVDB2000](https://avatars.githubusercontent.com/u/90693052?v=4)](https://github.com/JanVDB2000 "JanVDB2000 (6 commits)")

---

Tags

symfonymcpaideveloper-tools

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Type Coverage Yes

### Embed Badge

![Health badge](/badges/janvdb2000-maestro/health.svg)

```
[![Health](https://phpackages.com/badges/janvdb2000-maestro/health.svg)](https://phpackages.com/packages/janvdb2000-maestro)
```

###  Alternatives

[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M656](/packages/shopware-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M225](/packages/sulu-sulu)[symfony/framework-bundle

Provides a tight integration between Symfony components and the Symfony full-stack framework

3.6k257.3M12.2k](/packages/symfony-framework-bundle)[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.9M533](/packages/pimcore-pimcore)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9626.1k66](/packages/open-dxp-opendxp)

PHPackages © 2026

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