mcp

Activity, over time

Daily observations from the public event archive.

Attention

Daily stars & forks

Loading attention chart

Star accumulation

Cumulative stars

Loading star accumulation chart

Pull requests

Daily opens & merges

Loading pull requests chart

Conversations

Daily issues & comments

Loading conversations chart

Community

Daily accounts & reviews

Loading community chart

Releases

Daily releases

Loading releases chart

Mentions

3posts · 30d
Nov 50 posts
  1. Reddit · · r/laravel · u/3liusef

    Just built a package that turns what your Laravel app already declares (routes, Artisan commands, jobs, actions and models) into an MCP server for AI agents. Every time I connected an AI agent to one of my Laravel apps, I ended up writing the same thing twice. A Tool class per action, the validation rules copied in, the same rules again as JSON Schema, and a permission check sitting right next to a policy that already did that job. It worked, but it never felt like Laravel. So I built Laravel MCP Bridge, on top of the official laravel/mcp. composer require kayedspace/laravel-mcp-bridge The idea is simple: your app already knows what its inputs look like and who's allowed to do what, so let the agent use that. This is the whole integration for a route: class CourseController extends Controller { #[McpTool(description: 'Create a draft course.')] public function store(CourseStoreRequest $request) { // unchanged } } The agent gets a create_course tool, and its input schema comes from your FormRequest (required|string|max:120 becomes a required string of max 120 chars). When the agent calls it, the call goes through your actual route: your middleware authenticates it, your FormRequest validates it, your policy authorizes it. If a user can't do something in your app, their agent can't either. Things I cared about: - Nothing is exposed until you mark it. If you'd rather expose the whole API, MCP_BRIDGE_MODE=opt-out does that for routes, and #[McpIgnore] keeps any route out. - Commands, jobs and models stay opt-in in every mode. They have no middleware to inherit, so each one declares a token scope and a Gate ability, and a model needs a policy method for each operation. - Two servers, kept apart. Your API routes live on /mcp for agents acting as your users. Commands, jobs and models live on /mcp/ops for operators, with their own rate limit. - Agents retry and guess, so it plans for that. Destructive tools ask for confirmation with a single-use handle, writes take an idempotency key, and an argument the tool doesn't know is refused with the names it does accept. - Tools come grouped the way your app already is. Each tool gets a group from `#[McpGroup]`, from the groups your Scramble or Scribe docs already declare, or from the module it lives in. A server claims groups in its config, so you can send one controller's tools to `/mcp/ops` without moving anything else. - The day-to-day bits: an audit row per call, a kill switch that needs no deploy, checks in php artisan doctor, a lint for CI, and php artisan mcp-bridge:connect prints the setup for Claude Code, Codex, Gemini CLI, Copilot CLI, Cursor, VS Code and more. - Your users can bring their own agent. They issue a token from a small panel or your own screen, paste your /mcp URL into Claude, ChatGPT, Cursor or Codex, and the agent acts as them. Sanctum tokens, Passport OAuth and custom guards like JWT work too. If MCP is part of a paid plan, one accessMcp gate decides who gets in : If you already have hand-written laravel/mcp tools, they keep working, and you can list them on the package's server so agents get everything from one URL. It also reads Spatie Query Builder chains, route model binding and Scramble or Scribe attributes, so list endpoints come out with real filter and sort inputs. Status: this is the first release, 0.1.0, on PHP 8.3+ with Laravel 12 or 13. If you clone the repo, composer serve starts a demo app with a live /mcp endpoint you can point Claude Code at. I'd really love your feedback. A few places where another pair of eyes would mean a lot: 1. Does a route tool really get everything a normal request gets? If your app does something in middleware or the exception handler that you think a tool call might miss, please tell me. 2. Token scopes with Sanctum, Passport or a custom guard in a real app. 3. Queued job tools re-checking the Gate in the worker, on the queue setups you actually run. Issues, ideas and PRs are all welcome. If you find something security-related, please use a private advisory on the repo rather than a public issue. Thanks for reading, and thanks to the Laravel team for laravel/mcp, which made this possible Docs: laravel-mcp-bridge.kayed.dev Github: kayedspace/laravel-mcp-bridge

    5 comments
  2. Hate to be that guy 🙃, but if you’ve updated PHP, please update laravel/mcp too. The advisory we published yesterday is patched in 1.1.0 and 0.9.7. composer update laravel/mcp github.com/laravel/mcp/security/advisories/GHSA-m… Stay Safe. Fam!

    43 likes · 3 reposts · 1,456 views
  3. @magadum_aniket github.com/laravel/mcp/releases/tag/v1.0.2 already released buddy. 💪

    1 like · 123 views

Latest stargazers

The last 10 distinct accounts we observed this year.

Most active participants

PR, issue, comment & review events in the past year.

Packages

No packages found.

Live mentions badge

Show how many posts mention your project in the last 30 days.

Live mentions · last 30 days
laravel/mcp mentions in the last 30 days