laravel-ascend

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).

Category
访问服务器

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 registrationascend:register writes 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

  1. Require the package (typically as a dev dependency):
    composer require --dev goldenpathdigital/laravel-ascend
    
  2. Laravel's package auto-discovery registers the AscendServiceProvider, exposing:
    • php artisan ascend:mcp – start the MCP server over stdio (add --kb-path or --heartbeat if needed)
    • php artisan ascend:register – register the server with supported MCP clients

Quick Start

  1. Start the MCP server

    php artisan ascend:mcp
    
    • Runs over stdio (compatible with Claude Desktop, VSCode MCP).
    • Provide --kb-path=/path/to/knowledge-base to point at a custom data directory.
    • Provide --heartbeat=30 to 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.

  2. 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)
    • ~/.claude/mcp/mcp.json (Claude Desktop Legacy)
    • ~/.config/Claude/mcp.json (Claude Desktop)
    • ~/.config/Codex/mcp.json (Codex JSON)
    • ~/.codex/config.toml (Codex TOML)
  3. Connect from your IDE

    • In VS Code, 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.

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 implementing ToolInterface, 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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选