goldenpathdigital/laravel-ascend
最新稳定版本:v0.1.7
Composer 安装命令:
composer require goldenpathdigital/laravel-ascend
包简介
Ascend is an MCP-compatible server and toolkit that upgrades Laravel apps with structured docs and analyzers.
README 文档
README
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.
统计信息
- 总下载量: 29
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-09