Laravel Docs MCP Server

by brianirish

35 stars
483 downloads
Not rated
GitHub

About

A Laravel developer's MCP companion. Get the absolute best advice, recommendations, and up-to-date documentation for the entire Laravel ecosystem.

Details

Author
brianirish
GitHub stars
35
Downloads
483
Categories
Knowledge Base, AI

- Multi-version Laravel docs (6.x through latest)
- Learning paths by topic and skill level
- Difficulty filtering (beginner, intermediate, advanced)
- 15 semantic documentation categories
- Auto-discovery for Forge, Vapor, Nova, Envoyer
- Community package docs (Spatie, Livewire, Inertia, Filament)
- Unified search across all documentation sources
- TOON format output saves 30–60% tokens

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Laravel Docs MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install by adding the Docker image ghcr.io/brianirish/laravel-mcp-companion:latest to your MCP client configuration (Claude Desktop or Claude Code). Use command-line options like --version 11.x to pin a Laravel version or --force-update to refresh documentation.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "laravel docs mcp server": {
            "laravel-docs-mcp": {
                "command": "docker",
                "args": [
                    "run",
                    "--rm",
                    "-i",
                    "ghcr.io/brianirish/laravel-mcp-companion:latest",
                    "--version",
                    "11.x"
                ]
            }
        }
    }
}

McpServers

{
    "laravel-docs-mcp": {
        "command": "docker",
        "args": [
            "run",
            "--rm",
            "-i",
            "ghcr.io/brianirish/laravel-mcp-companion:latest",
            "--version",
            "11.x"
        ]
    }
}

Laravel MCP Companion

formerly Laravel Docs MCP Server

GitHub release (latest by date)
Python Version
GitHub Workflow Status
codecov
License
Docker Image
GitHub Stars
GitHub Forks

> ⚠️ BETA SOFTWARE - This project is in active development. Features may change and breaking changes may occur.

Laravel MCP Companion is a documentation aggregator and navigator for the Laravel ecosystem. It centralizes and organizes high-quality documentation from across the Laravel ecosystem, making it easily discoverable through your AI assistant.

How It Compares

| Feature | Laravel Boost | Context7 | Laravel MCP Companion |
|---------|:--------:|:--------:|:--------------------:|
| Focus | Code generation | General docs | Laravel documentation |
| Best for | Active development | Any library | Learning & reference |
| Project-aware context | ✅ | ❌ | ❌ |
| Laravel multi-version support (6.x - latest) | ❌ | ❌ | ✅ |
| Laravel service docs (Forge, Vapor, Nova, Envoyer) | ❌ | ❌ | ✅ |
| Learning paths & difficulty levels | ❌ | ❌ | ✅ |
| "I need X" documentation finder | ❌ | ❌ | ✅ |
| Curated Laravel package recommendations | ❌ | ❌ | ✅ |
| Offline documentation access | ❌ | ❌ | ✅ |
| TOON format output (30-60% fewer tokens) | ❌ | ❌ | ✅ |
| General documentation (non-Laravel) | ❌ | ✅ | ❌ |

Use Boost when writing code and you need project-aware context. Use Context7 for non-Laravel libraries. Use Companion when learning, researching, or need Laravel documentation reference.

What you get:

- Multi-version Laravel documentation (6.x through latest) with enhanced search - Learning paths - Structured learning sequences by topic and skill level - "I need X" finder - Describe what you need, get relevant documentation - Difficulty filtering - Content organized by beginner/intermediate/advanced - 15 semantic categories - Browse documentation by topic area - Auto-discovery Laravel services - Forge, Vapor, Envoyer, Nova (117+ sections) - Community package documentation - 42,000+ lines from Spatie, Livewire, Inertia, Filament - Package integration guides - Installation and setup for 50+ curated packages - Cross-package compatibility - Learn which packages work well together - Unified search across core Laravel docs, services, and packages - Daily updates - Automatically syncs with latest documentation

Installation

Claude Desktop

1. Open Claude Desktop Settings
- Click Claude menu → Settings → Developer → Edit Config

2. Add to your configuration file:

   {
"mcpServers": {
"laravel-mcp-companion": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/brianirish/laravel-mcp-companion:latest"]
}
}
}

3. Restart Claude Desktop for changes to take effect

Config file locations:
- Windows: %APPDATA%\Claude\claude_desktop_config.json
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Claude Code

Use the claude mcp add command:

# Add with Docker
claude mcp add laravel-mcp-companion -- docker run --rm -i ghcr.io/brianirish/laravel-mcp-companion:latest

Or add to project-specific config (for team sharing)

claude mcp add laravel-mcp-companion --scope project -- docker run --rm -i ghcr.io/brianirish/laravel-mcp-companion:latest

The --scope project option creates a .mcp.json file in your project root that can be committed to version control.

Configuration Options

These options can be used with the Docker command. For example:

# Pin to a specific older Laravel version
docker run --rm -i ghcr.io/brianirish/laravel-mcp-companion:latest --version 11.x

Force update all documentation

docker run --rm -i ghcr.io/brianirish/laravel-mcp-companion:latest --force-update

| Option | Description | Default |
|--------|-------------|---------|
| --version VERSION | Laravel version (e.g., "11.x", "12.x") | Latest |
| --docs-path PATH | Documentation directory | ./docs |
| --log-level LEVEL | DEBUG, INFO, WARNING, ERROR, CRITICAL | INFO |
| --update-docs | Update documentation on startup | false |
| --force-update | Force documentation update | false |

Features (v0.9.0)

Documentation Aggregation

- Multi-version Laravel docs - All versions from 6.x to latest - Auto-discovery engine - Finds new docs across Forge, Vapor, Nova, Envoyer - Community package docs - 42,000+ lines from Spatie, Livewire, Inertia, Filament - Daily updates - Automatic sync with latest documentation

Learning & Discovery (New in v0.9.0)

- Learning paths - Structured sequences for any Laravel topic - Difficulty levels - Filter by beginner, intermediate, or advanced - 15 categories - Browse by authentication, database, testing, etc. - "I need X" finder - Natural language documentation discovery - Related resources - Find connected documentation automatically

Search & Navigation

- Use case mapping - Describe what you need, get relevant packages - Package integration guides - Installation and setup for 50+ packages - Cross-package compatibility - Documentation for package combinations - Unified search - One search across all documentation sources

Upcoming

- v0.10.0: MCP 2025-11-25 spec support, Registry publishing - v0.11.0: Production hardening, monitoring, security audit - v1.0.0: First stable release with LTS commitment

For detailed roadmap information, see ROADMAP.md.

TOON Format Output

Laravel MCP Companion uses TOON (Token-Oriented Object Notation) for structured output, saving 30-60% on tokens compared to JSON/markdown.

Example Output

When you search for packages or list documentation, you get efficient structured data:

context: "authentication for SPA"
count: 2
packages[2]{id,name,description,categories,install}:
  laravel/sanctum,Laravel Sanctum,"Featherweight authentication for SPAs",[authentication,spa],"composer require laravel/sanctum"
  laravel/passport,Laravel Passport,"Full OAuth2 implementation",[authentication,api],"composer require laravel/passport"

Compare to the equivalent JSON (nearly 2x the tokens):

{"context":"authentication for SPA","count":2,"packages":[{"id":"laravel/sanctum","name":"Laravel Sanctum",...}]}

Why TOON?

- Token efficient: LLMs understand TOON natively - no parsing overhead
- Structured data: Arrays, objects, and metadata without JSON verbosity
- AI-friendly: Designed specifically for LLM context windows

Auto-Discovery & Update Frequency

This application features an intelligent auto-discovery system that automatically finds and indexes Laravel documentation. Every day, it:

- Auto-discovers new documentation sections across Laravel services (Forge, Vapor, Nova, Envoyer)
- Retrieves the latest Laravel core documentation for all versions since 6.x
- Fetches community package documentation (Spatie, Livewire, Inertia, Filament)
- Adapts automatically to structural changes in documentation websites
- Generates new patch releases automatically when updates are found

Development

Prerequisites

- Python 3.12+ - Node.js 18+ (for MCP Inspector)

Setup

git clone https://github.com/brianirish/laravel-mcp-companion
cd laravel-mcp-companion
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt -r requirements-dev.txt

Running Tests

# All tests with coverage
pytest --cov --cov-report=html

Unit tests only

pytest tests/unit/

Integration tests only

pytest tests/integration/

Protocol compliance tests

pytest tests/protocol/ -m protocol

Manual Testing with MCP Inspector

The MCP Inspector provides a visual UI for testing MCP servers.
# Launch Inspector (opens browser at http://localhost:6274)
npx @modelcontextprotocol/inspector python laravel_mcp_companion.py

With specific version

npx @modelcontextprotocol/inspector python laravel_mcp_companion.py --version 11.x

Use the Inspector to:
- Tools tab: Test all tools with auto-generated input forms
- Resources tab: Browse laravel:// and laravel-external:// resources
- Prompts tab: Test prompt templates

Code Quality

ruff check --fix .     # Linting
mypy --ignore-missing-imports .  # Type checking
black .                # Formatting

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

Acknowledgements

- Laravel for their excellent documentation
- Laravel package authors for their contributions to the ecosystem

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.