search_toolsLABSCO 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
sourcesfilter to narrow it, exposed as the pinned toolsearch_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_toolsdoes BM25 relevance search over the tool catalog andcall_toolproxies 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
USE CASES
Answering a Laravel question without loading a whole doc page
Ask in plain language and get the relevant sections ranked, each with a snippet and an anchor, then read only the one that matched.
Working on a project pinned to an older Laravel
Launch with the version flag so search and reads come from that version's documentation instead of the latest, which is where subtle wrong answers come from.
Choosing between packages for a job
Describe what you need and get the curated package matches with their integration guides and cross-package compatibility notes.
Refreshing documentation without stalling the session
Submit the update as a task and poll it, rather than holding the connection open while a full documentation sync runs.
4 tools
Listed in project docs. Your client may show a different list.
call_toolsearch_laravel_docsupdate_external_laravel_docsBEFORE YOU INSTALL
What to know first
Tools you get
4 tools named in the project's documentation.
Requires
docker on PATH
INSTALLATION
Connect your client
Server setup
docker run --rm -i ghcr.io/brianirish/laravel-mcp-companion:latestMCP Clients
Claude Desktop
{
"mcpServers": {
"laravel-mcp-companion": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/brianirish/laravel-mcp-companion:latest"
]
}
}
}Claude Code
claude mcp add laravel-mcp-companion -- docker run --rm -i ghcr.io/brianirish/laravel-mcp-companion:latestClaude Code — project scope
claude mcp add laravel-mcp-companion --scope project -- docker run --rm -i ghcr.io/brianirish/laravel-mcp-companion:latestAny MCP client — registry
In a client that supports the official MCP Registry, find the server at https://registry.modelcontextprotocol.io/?search=laravel-mcp-companion and install it from there. It is listed as io.github.brianirish/laravel-mcp-companion.