laravel-ascend
Laravel upgrade automation via MCP. Analyzers, tools & docs for Laravel 6-11 migrations. Breaking change detection. Works with any MCP client (Cursor, Claude Desktop).
README
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.
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:registerwrites entries to.vscode/mcp.json,.cursor/mcp.json, and.junie/mcp/mcp.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-pathor--heartbeatif 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 Claude Desktop, VSCode MCP).
- Provide
--kb-path=/path/to/knowledge-baseto point at a custom data directory. - Provide
--heartbeat=30to configure heartbeat interval (default: 30 seconds, min: 10).
Connection Keep-Alive: The server automatically sends heartbeat notifications every 30 seconds (configurable) to prevent idle connection timeouts in MCP clients like VSCode.
-
Register the server with IDE clients
# Laravel Artisan php artisan ascend:registerRegistration 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)~/.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, open the MCP Servers panel and confirm
laravel-ascendis enabled. - For other MCP-aware clients, import the generated config or point them at the running stdio endpoint.
- In VS Code, open the MCP Servers panel and confirm
Artisan Commands
| Command | Description |
|---|---|
php artisan ascend:mcp [options] |
Start the Ascend MCP server over stdio. |
php artisan ascend:register [--global] |
Add Ascend to detected MCP configuration targets (project + global). |
MCP Server Options
| Option | Description | Default |
|---|---|---|
--kb-path=/path |
Path to a custom knowledge base directory | Auto-detected |
--heartbeat=30 |
Heartbeat interval in seconds (prevents timeout) | 30 seconds |
--timeout=900 |
Server process timeout in seconds (0 = unlimited) | 900 seconds |
--websocket |
Use WebSocket instead of stdio | stdio |
--host=127.0.0.1 |
Host for WebSocket mode | 127.0.0.1 |
--port=8765 |
Port for WebSocket mode | 8765 |
Examples
Starting the MCP server (stdio mode)
# Basic usage
php artisan ascend:mcp
# With custom heartbeat interval (recommended for VSCode)
php artisan ascend:mcp --heartbeat=20
Generated configuration 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 MIT license.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.