laravel-mcp — Claude Code skill: build MCP servers in Laravel
A skill for building MCP servers on Laravel: tools, prompts, resources, and auth via OAuth or Sanctum.
npx skills add AsyrafHussin/agent-skills --skill laravel-mcp -a claude-codeWhat laravel-mcp does
laravel-mcp is a rule set for building MCP servers with Laravel. It ships 7 rules across 5 categories: creating and registering servers, tools with input/output schemas, prompts and resources, authentication, and testing. Every rule comes with a bad example, a good example, and references written for Laravel 13 and PHP 8.3.
Rules carry priorities. Servers are CRITICAL, tools and auth are HIGH, prompts and resources are MEDIUM. The prefixes (server-, tool-, prompt-, resource-, auth-, test-) let the agent jump straight to the right section when you ask for a server or a tool schema.
You need Laravel 13 and PHP 8.3 or newer — on older versions the code in the rules won't run. The full compiled guide lives in AGENTS.md; individual rule files are meant to be read one at a time.
What it helps with
- create an MCP server and register it in
routes/ai.php - define a tool with an input schema and DI
- set up a prompt with arguments and validation
- protect an MCP server with OAuth 2.1 or Sanctum
- test tools in MCP Inspector and with unit tests
Example prompts for the agent
- create a Laravel MCP server with a weather tool
- define the schema for a tool with a required location field
- protect the MCP server with Sanctum and write a unit test
How to install laravel-mcp
1Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill laravel-mcp -a claude-code2Manually: put the files in place
~/.claude/skills/laravel-mcp/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/laravel-mcp/
1Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill laravel-mcp -a codex2Manually: put the files in place
.agents/skills/laravel-mcp/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill laravel-mcp -a cursor2Manually: put the files in place
.cursor/skills/laravel-mcp/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install AsyrafHussin/agent-skills laravel-mcp2Manually: put the files in place
.github/skills/laravel-mcp/SKILL.md1Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill laravel-mcp -a gemini-cli2Platform CLI
gemini skills install https://github.com/AsyrafHussin/agent-skills --path skills/laravel-mcpManually: put the files in place
.devin/skills/laravel-mcp/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill laravel-mcp -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about laravel-mcp
How do I install laravel-mcp in Claude?
Run npx skills add AsyrafHussin/agent-skills --skill laravel-mcp -a claude-code. The skill lands in ~/.claude/skills/laravel-mcp/SKILL.md.
What does laravel-mcp do?
It gives the agent rules for Laravel MCP server development: servers, tools, prompts, resources, authentication, and testing.
Which Laravel and PHP versions are required?
Laravel 13 and PHP 8.3 or newer. The rules and examples target those versions.
Source text
SKILL.md · MIT
---
name: laravel-mcp
description: Laravel MCP server development. Use when building MCP servers, tools, prompts, or resources for AI client integration. Triggers on tasks involving laravel/mcp, MCP tools, MCP prompts, MCP resources, or AI client protocols.
license: MIT
metadata:
author: Laravel Community
version: "1.0.0"
laravelVersion: "13.x"
phpVersion: "8.3+"
---
# Laravel MCP
Comprehensive guide for building MCP (Model Context Protocol) servers with Laravel. Contains 7 rules across 5 categories for exposing tools, prompts, and resources to AI clients.
## When to Apply
Reference these guidelines when:
- Creating MCP servers (web or local)
- Building tools that AI clients can call
- Defining prompts for reusable AI interactions
- Exposing resources for AI context
- Protecting MCP servers with OAuth or Sanctum
- Testing MCP servers, tools, prompts, and resources
## Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Servers | CRITICAL | `server-` |
| 2 | Tools | HIGH | `tool-` |
| 3 | Prompts & Resources | MEDIUM | `prompt-`, `resource-` |
| 4 | Authentication | HIGH | `auth-` |
| 5 | Testing | HIGH | `test-` |
## Quick Reference
### 1. Servers (CRITICAL)
- `server-create-register` - Create and register web or local MCP servers
### 2. Tools (HIGH)
- `tool-create` - Create tools with input/output schemas, DI, and annotations
- `tool-responses` - Text, error, structured, streaming, and multi-content responses
### 3. Prompts & Resources (MEDIUM)
- `prompt-create` - Create prompts with arguments, validation, and responses
- `resource-create` - Create resources and resource templates with URI patterns
### 4. Authentication (HIGH)
- `auth-protect` - Protect servers with OAuth 2.1, Sanctum, or custom auth
### 5. Testing (HIGH)
- `test-unit` - Test with MCP Inspector and unit tests
## Essential Patterns
### Creating an MCP Server
```php
<?php
namespace App\Mcp\Servers;
use Laravel\Mcp\Server;
use Laravel\Mcp\Server\Attributes\Instructions;
use Laravel\Mcp\Server\Attributes\Name;
use Laravel\Mcp\Server\Attributes\Version;
#[Name('Weather Server')]
#[Version('1.0.0')]
#[Instructions('This server provides weather information.')]
class WeatherServer extends Server
{
protected array $tools = [
CurrentWeatherTool::class,
];
protected array $resources = [];
protected array $prompts = [];
}
```
### Registering in routes/ai.php
```php
use App\Mcp\Servers\WeatherServer;
use Laravel\Mcp\Facades\Mcp;
Mcp::web('/mcp/weather', WeatherServer::class);
Mcp::local('weather', WeatherServer::class);
```
### Creating a Tool
```php
<?php
namespace App\Mcp\Tools;
use Illuminate\Contracts\JsonSchema\JsonSchema;
use Laravel\Mcp\Request;
use Laravel\Mcp\Response;
use Laravel\Mcp\Server\Attributes\Description;
use Laravel\Mcp\Server\Tool;
#[Description('Fetches the current weather for a location.')]
class CurrentWeatherTool extends Tool
{
public function handle(Request $request): Response
{
$location = $request->get('location');
return Response::text("The weather in {$location} is sunny, 72°F.");
}
public function schema(JsonSchema $schema): array
{
return [
'location' => $schema->string()
->description('The location to get the weather for.')
->required(),
];
}
}
```
## How to Use
Read individual rule files for detailed explanations and code examples.
Each rule file contains:
- YAML frontmatter with metadata (title, impact, tags)
- Brief explanation of why it matters
- Bad Example with explanation
- Good Example with explanation
- Laravel 13 and PHP 8.3 specific context and references
## Full Compiled Document
For the complete guide with all rules expanded: `AGENTS.md`
© Laravel Community · MIT · AsyrafHussin/agent-skills