Labsco
MCP SERVER

Laravel Docs

by brianirish

Laravel documentation for versions 6.x through the latest, plus Forge, Vapor, Nova and Envoyer and 42,000+ lines of community package docs, searched by section so an answer costs hundreds of tokens rather than tens of thousands.

Framework & SDK Documentation Lookup
Summary
Section-level retrieval is the whole argument for using it over a generic docs fetcher.

Laravel's documentation files are big enough that pulling one into context can crowd out the code you were asking about; returning ranked sections with anchors keeps an answer to a few hundred tokens. Two operational notes worth knowing before you deploy it: a mounted docs volume silently takes over from image updates, and the `code` transform mode exposes an `execute` endpoint that runs sandboxed Python — the README says to avoid it over HTTP entirely.

What it is

A documentation server for the Laravel ecosystem. It aggregates core Laravel docs across versions, auto-discovered service documentation for Forge, Vapor, Nova and Envoyer, and community package documentation from projects such as Spatie, Livewire, Inertia and Filament, then answers plain-language questions with ranked *sections* — each with a snippet, an anchor and a source label — instead of whole files. It updates itself daily and works offline once the documentation is on disk.

What you get
  • Ranked section search across every corpus at once — core versions, service docs, fetched package docs and learning resources — with a `sources` filter to narrow it, exposed as the pinned tool `search_laravel_docs`
  • Section-level reads: a whole documentation file can exceed 30,000 tokens while a section is typically a few hundred, so the answer leaves room for your code
  • Multi-version coverage from 6.x to the latest, selectable at launch with `--version`, and 15 semantic categories to browse by topic
  • Learning paths offered interactively — ask without naming one and the server asks which of the ten curated paths you want — with beginner, intermediate and advanced filtering
  • An "I need X" finder that maps a description of your problem onto documentation and onto 22 curated packages, including cross-package compatibility notes
  • Documentation refreshes run as MCP tasks you submit and poll rather than a call held open for minutes — `update_external_laravel_docs`
  • A compact tool surface by default: `search_tools` does BM25 relevance search over the tool catalog and `call_tool` proxies the rest, so the full catalog never lands in your context
Requirements

No account and no key. The distributed form is the container image `ghcr.io/brianirish/laravel-mcp-companion:latest`, added with `claude mcp add` or a `docker run --rm -i` command block; it is also listed in the official MCP Registry as `io.github.brianirish/laravel-mcp-companion`. `--version` pins a Laravel version, `--docs-path` moves the documentation directory, and `--transform-mode none` restores the old flat tool listing for clients that dislike the search-first surface. Mounting a volume over `/app/docs` makes the volume the source of truth: pulling a newer image stops updating what the server reads, and `--update-docs` becomes the way you refresh. HTTP mode ships authentication **off** — anyone who can reach the port can call every tool — so either keep it on loopback or turn on bearer-token validation with `--auth-jwks-uri`, `--auth-issuer` and `--auth-audience`.

Setup effort

One command — docker run --rm -i ghcr.io/brianirish/laravel-mcp-companion:latest