Skip to main content
Glama

mcp-server-laravel

npm License Node CI GitHub stars

Laravel Codebase MCP Server — introspect routes, models, controllers, migrations, and more through the Model Context Protocol. Works with any AI client that supports MCP: opencode, Claude Desktop, Cursor, and others.

Stop grepping your Laravel codebase. Let your AI assistant answer "what routes exist?", "show me the User model", or "list all migrations" instantly.


Quick Start

# Install
npx mcp-server-laravel-codebase

# Or clone
git clone git@github.com:rendi-febrian/mcp-server-laravel-codebase.git
cd mcp-server-laravel-codebase
npm install && npm run build

opencode Configuration

Add to ~/.config/opencode/opencode.json:

{
  "mcp": {
    "laravel-codebase": {
      "type": "local",
      "command": ["node", "/path/to/mcp-server-laravel/dist/index.js"],
      "environment": {
        "LARAVEL_PROJECT_PATH": "/path/to/your/laravel-project"
      },
      "enabled": true
    }
  }
}

Claude Desktop / Cursor / Other MCP Clients

{
  "mcpServers": {
    "laravel-codebase": {
      "command": "node",
      "args": ["/path/to/mcp-server-laravel/dist/index.js"],
      "env": {
        "LARAVEL_PROJECT_PATH": "/path/to/your/laravel-project"
      }
    }
  }
}

Related MCP server: Star Wars Explorer

Features

Tools

Tool

Description

Example

routes_list

All routes with method, URI, controller, middleware

routes_list(method: "GET")

models_list

All Eloquent models with paths and namespaces

models_list()

model_detail

Single model: columns, relations, casts, policies

model_detail(name: "User")

controllers_list

Controllers with optional route mapping

controllers_list(detail: true)

app_about

Laravel version, env, packages, config

app_about()

migrations_list

Migration status (ran/pending)

migrations_list()

schedule_list

Scheduled tasks with frequency

schedule_list()

events_list

Events and registered listeners

events_list()

middleware_list

Middleware aliases with class names

middleware_list()

commands_list

All registered Artisan commands

commands_list(filter: "make")

artisan_run

Run read-only Artisan commands

artisan_run(command: "route:list --json")

Resources

URI

Content

laravel://about

Application info (version, env, drivers)

laravel://routes

Full route table as JSON

Security

artisan_run is restricted to read-only commands:

route:list · model:show · about · migrate:status · schedule:list · event:list · middleware · db:show · db:table · config:show · queue:failed · package:discover

Write operations (migrate, make:*, db:wipe, etc.) are blocked.

Requirements

  • Node.js >= 18

  • PHP 8.1+ with php on PATH

  • A Laravel project (Laravel 9/10/11/12/13)

Environment Variables

Variable

Required

Default

Description

LARAVEL_PROJECT_PATH

Yes

Absolute path to Laravel project root

PHP_BINARY

No

php

Path to PHP binary

Switching Projects

Point LARAVEL_PROJECT_PATH at any Laravel project. No rebuild needed.

// Inspect FlightManagement API
"LARAVEL_PROJECT_PATH": "/home/user/Kerjaan/FlightManagement"

// Inspect admin panel
"LARAVEL_PROJECT_PATH": "/home/user/Projects/admin-panel"

Architecture

src/
├── index.ts              # MCP server entry point (raw Server)
├── artisan.ts            # PHP exec wrapper + whitelist
├── scanner.ts            # Laravel filesystem scanner
├── tools/
│   ├── routes.ts         # routes_list, routes_cache, routes_clear
│   ├── models.ts         # models_list, model_detail
│   ├── controllers.ts    # controllers_list
│   ├── migrations.ts     # migrations_list
│   ├── schedule.ts       # schedule_list
│   ├── events.ts         # events_list
│   ├── middleware.ts      # middleware_list
│   ├── about.ts          # app_about
│   ├── commands.ts       # commands_list
│   └── artisan.ts        # artisan_run
└── resources/
    └── index.ts          # laravel:// URIs

No external API calls — everything runs locally via php artisan commands and filesystem scanning.

Contributing

See CONTRIBUTING.md.

License

MIT

A
license - permissive license
-
quality - not tested
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.

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/rendi-febrian/mcp-server-laravel-codebase'

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