goldenpathdigital/laravel-ascend
If you are the rightful owner of laravel-ascend and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Ascend is an MCP-compatible server and toolkit designed to enhance Laravel applications with structured upgrade documentation, analyzers, and automation.
Laravel Ascend
Ascend is an MCP-compatible server and toolkit that upgrades Laravel applications with structured upgrade documentation, analyzers, and automation. It ships with a curated Laravel knowledge base, a rich MCP tool suite, and first-class Artisan commands that make it easy to surface the guidance directly in modern IDEs like VS Code via Cline.
Features
- MCP-ready server β launch over stdio via
php artisan ascend:mcp
, exposing tools, resources, and prompts that follow the Model Context Protocol. - Curated knowledge base β search upgrade guides, breaking changes, migration patterns, and upgrade paths sourced from
resources/knowledge-base
. - Extensive tool catalog β documentation queries, dependency scanners, code migration advisors, and package compatibility checks implemented under
src/Tools
. - One-command IDE registration β
ascend:register
writes entries to.vscode/mcp.json
,.cursor/mcp.json
,.junie/mcp/mcp.json
, and Clineβscline_mcp_settings.json
. - Composer-friendly package β auto-discovered Laravel service provider registers the Artisan commands needed for MCP integration.
Requirements
- PHP 7.4+ or 8.x (supports PHP 7.4, 8.0, 8.1, 8.2, 8.3)
- Laravel 6.x - 11.x
- Composer 2.x
- Node.js is not required (server runs via PHP/Artisan)
Installation
Laravel application
- Require the package (typically as a dev dependency):
composer require --dev goldenpathdigital/laravel-ascend
- Laravelβs package auto-discovery registers the
AscendServiceProvider
, exposing:php artisan ascend:mcp
β start the MCP server over stdio (add--kb-path
if needed)php artisan ascend:register
β register the server with supported MCP clients
Quick Start
-
Start the MCP server
php artisan ascend:mcp
- Runs over stdio (compatible with Cline/Claude Desktop).
- Provide
--kb-path=/path/to/knowledge-base
to point at a custom data directory.
-
Register the server with IDE clients
# Laravel Artisan php artisan ascend:register
Registration automatically updates the following if present:
Project-level configurations:
.vscode/mcp.json
(VSCode).cursor/mcp.json
(Cursor).junie/mcp/mcp.json
(Junie)
User-level configurations:
~/.config/Code/User/mcp.json
(VSCode Global)~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
(Cline)~/.claude/mcp/mcp.json
(Claude Desktop Legacy)~/.config/Claude/mcp.json
(Claude Desktop)~/.config/Codex/mcp.json
(Codex JSON)~/.codex/config.toml
(Codex TOML)
-
Connect from your IDE
- In VS Code with Cline installed, open the MCP Servers panel and confirm
laravel-ascend
is enabled. - For other MCP-aware clients, import the generated config or point them at the running stdio endpoint.
- In VS Code with Cline installed, open the MCP Servers panel and confirm
Artisan Commands
Command | Description |
---|---|
php artisan ascend:mcp [--kb-path=/path] | Start the Ascend MCP server over stdio. |
php artisan ascend:register [--global] | Add Ascend to detected MCP configuration targets (project + global). |
Examples
Starting the MCP server (stdio mode)
php artisan ascend:mcp
Generated Cline entry (excerpt)
{
"mcpServers": {
"laravel-ascend": {
"command": "php",
"args": [
"/path/to/your/project/artisan",
"ascend:mcp"
],
"timeout": 60
}
}
}
MCP Tooling Overview
- Documentation tools (
src/Tools/Documentation/*
) β search upgrade docs, fetch breaking change details, list deprecated features, and retrieve guided upgrade summaries. - Analysis tools (
src/Tools/Analysis/*
) β inspect current Laravel versions, dependency manifests, PHP compatibility, and breaking changes specific to your code base. - Code migration tools (
src/Tools/Code/*
&src/Tools/Migration/*
) β analyze configs, facades, Blade templates, generate upgrade checklists, and validate migration steps. - Package insights (
src/Tools/Package/*
) β verify package compatibility and suggest updates that align with target Laravel versions. - Tool registry (
src/Tools/ToolRegistry.php
) β auto-discovers classes implementingToolInterface
, so new tools are picked up without manual wiring.
Knowledge Base Content
The bundled knowledge base lives under resources/knowledge-base
:
index.json
β metadata for the entire data set.breaking-changes/*.json
β per-version breaking change summaries.patterns/*.json
β migration patterns with remediation guidance.upgrade-paths/upgrade-paths.json
β curated upgrade roadmaps (e.g.8-to-9
).mcp_knowledge_base_guide.md
β authoring guidelines for extending the KB.
To point Ascend at a modified data set, start the Artisan MCP command with --kb-path=/absolute/path
.
Development
Clone the repository and install dependencies with Composer, then use the provided scripts:
composer test # Pest test suite
composer typecheck # PHPStan level 8 static analysis
composer format # php-cs-fixer (PSR-12)
composer coverage # Pest with coverage (requires Xdebug)
composer mutate # Infection mutation testing
composer security:audit # Composer advisories
The test suite covers knowledge base parsing, MCP registration, and tool behaviors. Please ensure all checks pass before opening a pull request.
Contributing
See CODE_OF_CONDUCT.md
for community standards. Security disclosures should follow the instructions in SECURITY.md
.
License
Laravel Ascend is open-source software licensed under the .