PHPackages                             dylvn/oro-mate-extension - 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. dylvn/oro-mate-extension

ActiveSymfony-ai-mate[Utility &amp; Helpers](/categories/utility)

dylvn/oro-mate-extension
========================

OroCommerce introspection extension for Symfony AI Mate

0.2.0(1mo ago)01MITPHPPHP &gt;=8.2

Since Apr 27Pushed 1mo agoCompare

[ Source](https://github.com/Dylvn-oro/oro-mate-extension)[ Packagist](https://packagist.org/packages/dylvn/oro-mate-extension)[ RSS](/packages/dylvn-oro-mate-extension/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (4)Versions (3)Used By (0)

OroCommerce Extension for Symfony AI Mate
=========================================

[](#orocommerce-extension-for-symfony-ai-mate)

A [Symfony AI Mate](https://github.com/symfony/ai-mate) extension that exposes OroCommerce datagrid configuration and entity config to AI assistants via MCP tools.

Tools
-----

[](#tools)

### Datagrid tools

[](#datagrid-tools)

Read YAML configuration files directly from disk — no database connection required.

ToolDescription`oro_datagrid_list`Lists all datagrid names discovered across all registered bundles. Accepts an optional `search` substring filter.`oro_datagrid_get`Returns the full merged definition for a given datagrid name: resolved mixins, source bundle/file pairs, and attached event listeners.### Entity config tools

[](#entity-config-tools)

Read from the OroCommerce PostgreSQL database (`oro_entity_config` and `oro_entity_config_field` tables). **These tools only appear in the MCP tool list when `oro_mate_extension.database_url` is configured.**

ToolDescription`oro_entity_list`Lists all entity configurations. Accepts an optional `search` substring filter on class name.`oro_entity_get`Returns full config for a single entity: decoded `data` array and a summary of its fields (`field_name`, `type`).`oro_entity_field_get`Returns full config for a specific field of an entity, including the decoded `data` array.---

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

[](#installation)

OroCommerce ships with pinned Symfony and PHP versions that typically conflict with `symfony/ai-mate`. The recommended approach is to install this extension in a **standalone workspace** that lives outside your OroCommerce project and reads its codebase from disk.

### 1. Create the workspace

[](#1-create-the-workspace)

```
mkdir ai-mate-workspace && cd ai-mate-workspace
composer init
```

> The exact packages required alongside this extension (e.g. `symfony/http-kernel`) may vary depending on which other Mate extensions you install and your environment. The commands below are a starting point. They may not work as-is.

```
composer require --dev dylvn/oro-mate-extension
```

The Mate composer plugin runs automatically during `composer install` and scaffolds the `mate/` directory.

### 2. Configure the OroCommerce path

[](#2-configure-the-orocommerce-path)

Override `oro_mate_extension.root_dir` in `mate/config.php` to point at your OroCommerce installation:

```
$container->parameters()
    ->set('oro_mate_extension.root_dir', '/absolute/path/to/your/orocommerce')
;
```

### 3. (Optional) Enable entity config tools

[](#3-optional-enable-entity-config-tools)

Set `oro_mate_extension.database_url` to your OroCommerce PostgreSQL DSN. The entity tools will then appear automatically in the MCP tool list.

```
$container->parameters()
    ->set('oro_mate_extension.database_url', 'pgsql://user:password@localhost:5432/orocommerce')
;
```

### Parameters

[](#parameters)

ParameterDefaultDescription`oro_mate_extension.root_dir``%mate.root_dir%`Absolute path to the OroCommerce application root`oro_mate_extension.database_url`*(empty)*PostgreSQL DSN — enables entity config tools when set---

How discovery works
-------------------

[](#how-discovery-works)

### Datagrid tools

[](#datagrid-tools-1)

1. **Bundle discovery** — `OroBundleLocator` scans all `bundles.yml` files found under `Resources/config/oro/` to build the list of registered bundles and their directories.
2. **Datagrid discovery** — `OroDatagridLocator` iterates each bundle directory, parses every `datagrids.yml` / `datagrids.yaml` under `Resources/`, and merges definitions from multiple bundles into a single map.
3. **Event listener discovery** — `OroDatagridEventLocator` scans service YAML files for `kernel.event_listener` tags whose event name starts with a known `oro_datagrid.*` prefix.

Directories excluded from scanning: `cache`, `var`, `public`, `node_modules`, `tests`, `Tests`.

### Entity config tools

[](#entity-config-tools-1)

`EntityToolsAvailabilityPass` (a Symfony CompilerPass) runs at container compilation time. When `oro_mate_extension.database_url` is empty it sets `mate.disabled_features` to hide the three entity tools from `FilteredDiscoveryLoader`. When a DSN is present the pass is a no-op and all tools are visible.

At query time `OroConnectionFactory` opens a lazy PDO connection to PostgreSQL. `EntityConfigDecoder` decodes the `data` column stored as `base64(serialize($array))`.

---

License
-------

[](#license)

MIT

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance91

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity37

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

Every ~0 days

Total

2

Last Release

42d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/84de11e2e40641fa1e21500fe2d67025da690ab0700832dd872e77005d70ee74?d=identicon)[Dylvn](/maintainers/Dylvn)

---

Top Contributors

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

---

Tags

mcpaidatagridOroCommercemate

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/dylvn-oro-mate-extension/health.svg)

```
[![Health](https://phpackages.com/badges/dylvn-oro-mate-extension/health.svg)](https://phpackages.com/packages/dylvn-oro-mate-extension)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

101466.4k44](/packages/friendsoftypo3-content-blocks)[phlak/directory-lister

PHP directory lister

2.5k1.4k](/packages/phlak-directory-lister)[blackfire/player

A powerful web crawler and web scraper with Blackfire support

49517.1k](/packages/blackfire-player)[cognesy/instructor-php

The complete AI toolkit for PHP: unified LLM API, structured outputs, agents, and coding agent control

317117.1k1](/packages/cognesy-instructor-php)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1155.2k](/packages/rcsofttech-audit-trail-bundle)[aeliot/todo-registrar

Register TODOs from source code in issue tracker

153.0k](/packages/aeliot-todo-registrar)

PHPackages © 2026

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