Laravel Docs MCP Server
⚠️ Alpha-Software – Dieses Projekt befindet sich in der frühen Entwicklungsphase. Funktionen funktionieren möglicherweise nicht wie erwartet und es können ohne vorherige Ankündigung schwerwiegende Änderungen auftreten.
Ein KI-Assistent für Laravel-Entwickler, der über das Model Context Protocol (MCP) Zugriff auf die neueste Laravel-Dokumentation und intelligente Paketempfehlungen bietet. Dadurch unterstützen KI-Tools Sie beim Erstellen von Laravel-Anwendungen mit aktuellen Informationen und Best Practices.
Überblick
Dieser Server ermöglicht KI-Assistenten den Zugriff auf Laravel-Dokumentation und Paketempfehlungen über das Model Context Protocol (MCP). KI-Tools können damit:
Zugriff auf und Suche in der Laravel-Dokumentation
Erhalten Sie Paketempfehlungen basierend auf bestimmten Anwendungsfällen
Erhalten Sie Implementierungsanleitungen für beliebte Laravel-Pakete
Automatische Aktualisierung der Dokumentation aus dem GitHub-Repository von Laravel
Related MCP server: MPC Docs Server
Installation
Schnellinstallation über Smithery
npx -y @smithery/cli install @brianirish/laravel-docs-mcp --client claudeVon PyPI installieren
pip install laravel-docs-mcpDocker
# Pull and run the latest version
docker run -p 8000:8000 ghcr.io/brianirish/laravel-docs-mcp:latest
# Or run a specific version
docker run -p 8000:8000 ghcr.io/brianirish/laravel-docs-mcp:v0.1.4Manuelle Installation von der Quelle
Voraussetzungen
Python 3.12+
uv-Paketmanager (empfohlen)
Schritte
Klonen Sie das Repository:
git clone https://github.com/brianirish/laravel-docs-mcp.git cd laravel-docs-mcpUmgebung einrichten und Abhängigkeiten installieren:
# Create and activate virtual environment uv venv source .venv/bin/activate # Linux/macOS # or .venv\Scripts\activate # Windows # Install dependencies uv pip install .
Verwendung
Starten des Servers
python laravel_docs_server.pyDer Server ruft beim ersten Start automatisch die Laravel-Dokumentation ab und kann mit Strg+C gestoppt werden.
Befehlszeilenoptionen
Option | Beschreibung |
| Pfad zum Dokumentationsverzeichnis (Standard: ./docs) |
| Servername (Standard: LaravelDocs) |
| Protokollebene: DEBUG, INFO, WARNUNG, FEHLER, KRITISCH (Standard: INFO) |
| Transportmethode: stdio, websocket, sse (Standard: stdio) |
| Host, an den eine Bindung erfolgen soll (Netzwerktransport) |
| Port zum Abhören (Netzwerktransport) |
| Laravel-Versionszweig (Standard: 12.x) |
| Aktualisieren Sie die Dokumentation vor dem Start |
| Aktualisierung der Dokumentation erzwingen |
Beispiel mit benutzerdefinierten Optionen:
python laravel_docs_server.py --docs-path /path/to/docs --version 11.x --update-docs --transport websocket --host localhost --port 8000Dokumentations-Updater
Sie können die Dokumentation separat aktualisieren:
# Update documentation
python docs_updater.py --target-dir ./docs --version 12.x
# Check if update is needed
python docs_updater.py --check-only
# Force update
python docs_updater.py --forceAPI-Referenz
Client-Beispiel
import asyncio
from fastmcp import Client
async def main():
client = Client("path/to/laravel_docs_server.py")
async with client:
# List documentation
result = await client.call_tool("list_docs", {})
print(result)
# Search documentation
result = await client.call_tool("search_docs", {"query": "routing"})
print(result)
# Get package recommendations
result = await client.call_tool("get_package_recommendations",
{"use_case": "implementing subscription billing"})
print(result)
# Read documentation
resource = await client.read_resource("laravel://routing.md")
print(resource)
if __name__ == "__main__":
asyncio.run(main())Verfügbare Tools
Dokumentationstools
list_docs()- Listet alle Dokumentationsdateien aufsearch_docs(query: str)– Dokumentation nach bestimmten Begriffen durchsuchenupdate_docs(version: Optional[str], force: bool)– Dokumentation aktualisierendocs_info()- Informationen zur Dokumentationsversion abrufen
Paketempfehlungstools
get_package_recommendations(use_case: str)– Paketempfehlungen für einen Anwendungsfall abrufenget_package_info(package_name: str)– Details zu einem bestimmten Paket abrufenget_package_categories(category: str)– Pakete in einer bestimmten Kategorie auflistenget_features_for_package(package: str)– Verfügbare Features für ein Paket abrufen
Ressourcenzugriff
Auf Dokumentationsdateien kann wie folgt als Ressource zugegriffen werden:
laravel://{path}Beispiele:
laravel://routing.mdlaravel://authentication.md
Automatisierte Workflows
Dieses Projekt umfasst mehrere automatisierte GitHub Actions-Workflows:
Tägliche Dokumentationsaktualisierungen
Auslöser : Jeden Tag um Mitternacht UTC (kann auch manuell ausgelöst werden)
Prozess : Sucht nach Aktualisierungen der Laravel-Dokumentation → Erstellt PR → Automatische Zusammenführung → Erstellt Patch-Versions-Tag
Ergebnis : Automatische Patch-Releases, wenn Laravel-Dokumente aktualisiert werden
Release-Veröffentlichung
Auslöser : Wenn Versions-Tags gepusht werden (z. B.
v0.1.4)Prozess : Erstellt Pakete → Veröffentlicht auf PyPI → Erstellt und überträgt Docker-Images an GHCR
Ergebnis : Synchronisierte Releases über PyPI und Docker Hub
Dynamische Versionierung
Versionsquelle : Automatisch aus Git-Tags mithilfe von
hatch-vcsabgeleitetEntwicklungs-Builds : Erhalten Sie eindeutige Kennungen (z. B.
0.1.3.dev1+g75aec71).Release Builds : Saubere Versionsnummern, die mit den Tags übereinstimmen (z. B.
0.1.4)
Funktionen und Roadmap
Aktuelle Funktionen:
✅ Tägliche Dokumentationsaktualisierungen : Automatische tägliche Synchronisierung mit dem GitHub-Repository von Laravel
✅ Dynamische Versionierung : Automatische Versionsverwaltung basierend auf Git-Tags
✅ Automatisierte Releases : Patch-Releases werden durch Dokumentationsaktualisierungen ausgelöst
✅ Mehrere Bereitstellungsoptionen : PyPI-Paket, Docker-Images und Smithery-Marktplatz
✅ Paketempfehlungen : Intelligente Vorschläge basierend auf spezifischen Anwendungsfällen
✅ Implementierungsanleitung : Detaillierte Informationen zu gängigen Laravel-Paketen
✅ Flexible Konfiguration : Unterstützung für mehrere Laravel-Versionen und Transportmethoden
✅ Ordentliches Herunterfahren : Ordnungsgemäße Bereinigung und Signalverarbeitung
Geplante Funktionen:
🔄 Unterstützung mehrerer Versionen (gleichzeitiger Zugriff auf die Dokumentation für mehrere Laravel-Versionen)
🔍 Benutzerprojektanalyse für maßgeschneiderte Empfehlungen
🚀 Erweiterte Suchfunktionen mit semantischem Matching
📊 Nutzungsanalysen und Einblicke
🔗 Zusätzliche Integrationen des Laravel-Ökosystems
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.
Beitragen
Beiträge sind willkommen! Richtlinien finden Sie unter CONTRIBUTING.md.
Danksagung
Laravel für die hervorragende Dokumentation
Autoren von Laravel-Paketen für ihre Beiträge zum Ökosystem