Skip to main content
Glama
dok4everak47

Laravel MCP Server

by dok4everak47

Cortex Agent Runtime — MCP-natives KI-Agenten-Framework

Vorher: KI versteht dein Projekt nicht. Nachher: KI kann Anwendungen analysieren, generieren und debuggen.

Ein Model Context Protocol (MCP)-Server, der jeden Coding-Agenten (Claude, Cursor, Codex, OpenCode und weitere) in ein autonomes Engineering-Gehirn für die Projekte verwandelt, an denen du arbeitest. Die Runtime ist projekttyp-agnostisch: sie lädt eine Reihe von Domänen basierend darauf, was dein Projekt ist, sodass dieselbe Runtime in Laravel-Apps, Node-Projekten und allem anderen funktioniert.

Runtime

  • Projekttyp-Erkennungcore/detector.ts inspiziert das Projekt und aktiviert die passenden Domänen. Generische Tools werden immer geladen; die Laravel-Domäne aktiviert sich, wenn composer.json + artisan vorhanden sind.

  • Domänenregistrierungcore/registry.ts stellt registerDomain(manifest) bereit; listTools() / callTool() bleiben stabil, sodass sich die MCP-Oberfläche zwischen Projekten nicht ändert.

  • Standardmäßig sicher — nur lokal, offline, keine Telemetrie. Befehls-Whitelists, die Blockierung gefährlicher Befehle und die Schwärzung sensibler Daten sind integriert.

Related MCP server: Project Planner MCP

Integrierte Domänen

Domäne

Wird geladen, wenn

Tools

Generisch

Immer

gitStatus, fileSearch, projectTree

Laravel

composer.json + artisan vorhanden

artisan, schema, model, routes, migrations, CRUD-/Feature-/API-Generatoren, Debug-Workflow, intentPlanner, workflowStatus, context und mehr

Generische Domäne

Tool

Beschreibung

gitStatus

Git-Statusübersicht (Branch, indexierte/nicht indexierte Änderungen)

fileSearch

Dateien per Glob durchsuchen, unter Ausschluss von .git / node_modules / vendor

projectTree

Zweistufiger Verzeichnisbaum des Projekts

listRoles

Die in diesem Projekt verfügbaren Rollen und die Tools, die jede Rolle besitzt, auflisten

Laravel-Domäne

Tool

Beschreibung

artisan

In der Whitelist enthaltene php artisan-Befehle ausführen

migrateStatus

Migrationsstatus

envInfo / envInfoSafe

Umgebungsinformationen (die sichere Variante schwärzt Geheimnisse)

cache

Konfiguration, Routen und Ansichten leeren/cachen

configGet

Konfigurationswerte anzeigen

schema

Tabellen / Spalten auflisten

model

Eloquent-Modelle scannen

log

Letzte Log-Einträge

routeList

Routen mit Name-/URI-/Methoden-Filtern

runTest

PHPUnit-Tests ausführen

frontendScanner

Struktur von Views/js/css scannen

makeModel / makeController / makeMigration

Klassen generieren (Scaffolding)

migrationAnalyzer

Migrationen in ein Schema parsen

composerAnalyzer

Projektabhängigkeiten

projectContext

Vollständiger Projektkontext (anhand der Datei-mtime gecacht)

crudGenerator

Vollständiger CRUD-Generator

createFeature

CRUD + Blade-Views

apiGenerator

REST-API-Generator (optionale Sanctum-Authentifizierung)

debugWorkflow

Fehlerlokalisierung, Diagnose, Korrekturvorschläge

intentPlanner

Natürlichsprachliche Anfrage → ausführbarer Plan

workflowStatus

Läufe auflisten/anzeigen/fortsetzen/zurücksetzen

contextSource

Anzeigen, ob jeder Teil des Projektkontexts aus dem Cache stammt oder live neu erstellt wurde

listRoles

Die in diesem Projekt verfügbaren Rollen und die Tools, die jede Rolle besitzt, auflisten

Warum Agenten ihren Antworten vertrauen

Zwei Designprinzipien, die aus realer System-Prompt-Architektur übernommen wurden:

  • Rollen, keine Werkzeuglisten. listRoles sagt dem Agenten, wer er in diesem Projekt sein kann — ein explorer (nur lesende Untersuchung), ein engineer (bauen und reparieren) oder ein maintainer (Betrieb und Verifikation) — und welche Tools jede Rolle besitzt. Statt vor einer flachen Wand aus Tools zu stehen, wählt der Agent eine Rolle und bleibt innerhalb ihrer Grenzen. Weniger Fehltritte, klarere Absicht.

  • Wisse, woher deine Fakten kommen. contextSource zeigt, ob jedes Modul des Projektkontexts aus dem Cache bedient oder in Echtzeit neu erstellt wurde, und der Kontext selbst wird über eine Prioritätskette (cache → live → safe default) zusammengesetzt, statt dass „der Agent es schon herausfindet“. Wenn der Agent antwortet, weiß er, wie frisch die Fakten sind — und du auch.

Vorher: Ein Agent starrt auf 29 Tools und veralteten Kontext, dessen Datum er nicht prüfen kann. Nachher: Er kennt seine Rolle, sein Toolset und die Frische von allem, was er liest.

Schnellstart

npm install
npm start

Lege den Projektpfad fest, an dem gearbeitet werden soll:

# Any project (Node, Laravel, ...)
CORTEX_PROJECT_PATH=/path/to/project npm start

# Laravel-specific path resolution (backward compatible)
LARAVEL_PROJECT_PATH=/path/to/laravel-app npm start

# Nothing set → process.cwd()

Führe den Server mit einer einzigen MCP-Anfrage aus, um zu sehen, welche Tools ein Projekt bereitstellt:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | \
  CORTEX_PROJECT_PATH=/path/to/node-project npx tsx src/index.ts
# → only generic tools

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | \
  CORTEX_PROJECT_PATH=/path/to/laravel-app npx tsx src/index.ts
# → generic + laravel tools

Mit OpenCode

Füge zu ~/.config/opencode/opencode.jsonc hinzu:

{
  "mcp": {
    "cortex": {
      "type": "local",
      "command": ["node", "/path/to/cortex-agent-runtime/dist/index.js"],
      "environment": { "CORTEX_PROJECT_PATH": "/path/to/project" }
    }
  }
}

Mit Claude Desktop

Füge zu ~/Library/Application Support/Claude/claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "cortex": {
      "command": "node",
      "args": ["/path/to/cortex-agent-runtime/dist/index.js"]
    }
  }
}

Umgebungsvariablen

Variable

Standard

Beschreibung

CORTEX_PROJECT_PATH

Projektpfad (hat Priorität)

LARAVEL_PROJECT_PATH

process.cwd()

Abwärtskompatibler Laravel-Projektpfad

PHP_PATH

php

Pfad zur PHP-Ausführungsdatei (Laravel-Domäne)

LLM_API_KEY

(leer)

Aktiviert die semantische LLM-Schicht für intentPlanner

LLM_BASE_URL

https://api.deepseek.com/v1

OpenAI-kompatible API-Basis-URL

LLM_MODEL

deepseek-chat

LLM-Modell für die Absichtsanalyse

Architektur

src/
├── index.ts                 # entry: detect → load domains → register → start MCP
├── core/                    # framework layer — project-type agnostic
│   ├── registry.ts          # ToolRegistry: registerDomain / listTools / callTool / roles
│   ├── source-chain.ts      # resolveChain: priority fallback chain (cache → live → default)
│   ├── mcp.ts               # getConfig / getLogger / runCommand
│   ├── logger.ts            # leveled logger
│   ├── detector.ts          # detectDomains(projectPath) → DomainManifest[]
│   ├── glob.ts              # minimal `*` / `**` glob
│   ├── context/             # generic context interface
│   └── tools/               # shared tools (listRoles)
└── domains/
    ├── generic/             # always loaded: gitStatus / fileSearch / projectTree / listRoles
    └── laravel/             # tools / workflows / context / security / planner / manifest

Jede Domäne exportiert ein DomainManifest (id, name, detect, getTools, getHandlers, getProjectPath?, roles?). Rollen deklarieren, wer der Agent in diesem Projekt sein kann (explorer / engineer / maintainer) und welche Tools jede Rolle besitzt — der Agent kann listRoles aufrufen, statt zu raten. Die Laravel-Domäne behält ihre eigene Runtime (domains/laravel/mcp.ts), Tools, Workflows, Kontext, Sicherheit und ihren eigenen Planner — die bestehende Oberfläche mit 24 Tools bleibt unverändert.

Anforderungen

  • Node.js 18+

  • PHP 8.1+ (für die Laravel-Domäne)

Pi-Erweiterung (Port der MCP-Tools)

Dasselbe Toolset als Erweiterung für pi coding agent: 34 der 35 Tools wurden vom MCP-Server auf native pi-Custom-Tools migriert, minus intentPlanner (pi ist selbst ein LLM; natürliche Sprache → Plan ist dort redundant). Quelle: pi-extension/cortex-laravel/.

Installation

# either copy …
cp -R pi-extension/cortex-laravel ~/.pi/agent/extensions/
# … or symlink (always in sync with this repo)
ln -s "$(pwd)/pi-extension/cortex-laravel" ~/.pi/agent/extensions/cortex-laravel

Starte dann pi neu (oder /reload). Die Erweiterung registriert 34 Tools:

Domäne

Tools

Generisch (5)

gitStatus, fileSearch, projectTree, listRoles, toolStats

Laravel-Core (5)

artisan, migrateStatus, schema, model, routeList

Laravel-Ops (12)

envInfo, envInfoSafe, cache, configGet, log, runTest, makeModel, makeController, makeMigration, migrationAnalyzer, composerAnalyzer, frontendScanner

Laravel-Workflows (7)

crudGenerator, createFeature, apiGenerator, debugWorkflow, workflowStatus, projectContext, contextSource

Orchestrierung (5)

taskStatus, taskMetrics, policyGet, taskAccept, taskAdvance

Projektpfad-Auflösung: die Env-Variablen CORTEX_PROJECT_PATH / LARAVEL_PROJECT_PATH, mit Fallback auf das cwd der pi-Sitzung. Laravel-Tools schützen sich selbst mit einer klaren Fehlermeldung bei Nicht-Laravel-Projekten; Orchestrierungs-Tools lesen/schreiben dasselbe .htask/-Layout wie der MCP-Server (und die eigenständige htask-CLI).

Unterschiede zum MCP-Server

  • Sicherheit — dieselbe Befehls-Whitelist + Validator für gefährliche Muster (zwei Ebenen), plus eine Bestätigungsabfrage bei taskAdvance / taskAccept / workflowStatus (resume·rollback): setze CORTEX_CONFIRM_OFF=1, um das in Skripten zu erlauben.

  • Laravel-11+-Kompatibilität — das upstream entfernte config:get fällt auf tinker zurück; API-Routen werden automatisch über artisan install:api erstellt, wenn routes/api.php fehlt.

  • nix-flake-ProjekteresolvePhpPath testet bekannte nix-Installationspfade (nicht nur nix im PATH).

  • Fehler — geworfene Fehler erscheinen als Tool-Fehler; Tool-Ergebnisse sind reiner Text (kein MCP-JSON-RPC-Wrapper).

Entwicklung

npm install
npm run typecheck   # tsc --noEmit (type-check only)
npm test            # run all tests
npm run build       # compile to dist/
npm start           # node dist/index.js
npm run dev         # npx tsx src/index.ts (hot reload)

Lizenz

MIT

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Integrates with the Laravel Forge API to provide comprehensive management of servers and sites. It enables users to perform health checks, monitor logs, create resources, and execute deployment tasks through MCP-compliant tools.
    20
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides various developer utilities such as UUID generation, timestamp conversion, Base64 encoding, color conversion, password generation, hash generation, and JSON formatting via MCP.
    77
    1
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to introspect a Laravel application's routes, models, controllers, migrations, and more through the Model Context Protocol, running locally via php artisan commands and filesystem scanning.
    16
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dok4everak47/cortex-agent-runtime'

If you have feedback or need assistance with the MCP directory API, please join our Discord server