PHPackages                             digitalnodecom/substrate - 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. digitalnodecom/substrate

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

digitalnodecom/substrate
========================

MCP server for AI-assisted WordPress development with Bedrock, Acorn, and Sage.

40790↑162.5%2[1 issues](https://github.com/digitalnodecom/substrate/issues)PHP

Since Mar 5Pushed 4mo agoCompare

[ Source](https://github.com/digitalnodecom/substrate)[ Packagist](https://packagist.org/packages/digitalnodecom/substrate)[ RSS](/packages/digitalnodecom-substrate/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

 [![Substrate](icons/substratelogo.png)](icons/substratelogo.png)

 MCP server for WordPress + Bedrock + Acorn + Sage.
 Gives AI assistants deep context about your Roots stack.

Quick Start
-----------

[](#quick-start)

```
composer require digitalnodecom/substrate --dev
wp acorn package:discover
wp acorn substrate:install
```

The install wizard configures MCP for your IDE and generates project guidelines.

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

[](#requirements)

- PHP 8.2+
- WordPress 6.0+
- Acorn 5.0+

Usage
-----

[](#usage)

```
# Start MCP server (usually handled by your IDE)
wp acorn substrate:mcp

# Refresh caches after plugin/theme changes
wp acorn substrate:update
```

### MCP Configuration

[](#mcp-configuration)

The installer creates `.mcp.json` automatically. Manual setup:

```
{
  "mcpServers": {
    "substrate": {
      "command": "wp",
      "args": ["acorn", "substrate:mcp"]
    }
  }
}
```

Tools
-----

[](#tools)

**31 tools** across three categories:

### Core (10)

[](#core-10)

ToolDescription`ApplicationInfo`PHP, WordPress, Acorn versions, theme info, plugins, packages`BrowserLogs`Browser console logs captured by Substrate`DatabaseConnections`Configured database connections`DatabaseQuery`Execute read-only SQL queries with table prefix support`DatabaseSchema`Database schema with WordPress core vs custom table detection`GetConfig`Config values from Acorn config, WP options, env vars, constants`LastError`Last error/exception from application logs`ListEnvVars`Environment variable names from .env files`ReadLogEntries`Log entries from debug.log or Acorn logs`SearchDocs`Search WordPress, Roots, Tailwind documentation### WordPress (16)

[](#wordpress-16)

ToolDescription`AcfFields`ACF field groups and fields *(requires ACF)*`GetOption`WordPress options by name or pattern`ListBlocks`Registered Gutenberg blocks (core and custom)`ListCronJobs`Scheduled WP-Cron jobs with next run times`ListHooks`Active action/filter hooks with callbacks`ListMenus`Navigation menus and menu locations`ListPlugins`Installed plugins (active, inactive, must-use)`ListPostTypes`Registered post types with configuration`ListRestRoutes`REST API endpoints with methods and arguments`ListShortcodes`Registered shortcodes with callback info`ListTaxonomies`Registered taxonomies`ListThemes`Installed themes with parent/child relationships`ListTransients`Database transients with expiration times`ListUsers`User roles and capabilities`ListWidgets`Widgets and sidebars`WooCommerceInfo`Store info, settings, gateways *(requires WooCommerce)*### Acorn/Sage (5)

[](#acornsage-5)

ToolDescription`ListAssets`Assets from Vite manifest`ListBladeComponents`Blade components (anonymous and class-based)`ListServiceProviders`Acorn service providers`ListViewComposers`View composers with their target views`SageInfo`Sage theme structure, menus, sidebars, build configConfiguration
-------------

[](#configuration)

```
wp acorn vendor:publish --tag=substrate-config
```

```
// config/substrate.php
return [
    'enabled' => env('SUBSTRATE_ENABLED', true),
    'browser_logs_watcher' => env('SUBSTRATE_BROWSER_LOGS_WATCHER', true),
    'mcp' => [
        'tools' => [
            'include' => [],
            'exclude' => [],
        ],
    ],
];
```

Browser Console Capture
-----------------------

[](#browser-console-capture)

Substrate captures browser `console.log`, `console.error`, etc. for the `BrowserLogs` tool.

Auto-injected via middleware, or add manually:

```
@substrateJs

```

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

[](#development)

```
composer install
composer test      # Run tests
composer lint      # Pint + PHPStan
```

License
-------

[](#license)

MIT

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance52

Moderate activity, may be stable

Popularity29

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity12

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/e920ffec7749ac8929e37e82c4e6d03bbfc90eac652a385906fa2000af9bd7f3?d=identicon)[trajche](/maintainers/trajche)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/digitalnodecom-substrate/health.svg)

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

PHPackages © 2026

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