Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Mcp Bundle Laravel Package

php-llm/mcp-bundle

A Symfony bundle that turns your app into a Model Context Protocol server for AI clients. Register tools, resources, and prompts with PHP attributes, then expose them over JSON-RPC transports such as stdio and HTTP.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Basis of assessment: Release 0.1 is the first public cut of php-llm/mcp-bundle. Evidence available is limited to three merged PRs and a changelog; there is no prior assessment and no API documentation or production usage data to draw on. Treat the confidence level here as low-to-moderate and validate before committing.

Architecture fit: The bundle is a thin integration layer over php-llm/mcp-sdk, not a standalone MCP implementation. That is the right shape for our purposes — we want MCP server/client transport wiring, not a forked protocol stack. The addition of client transports in 0.1 is the most strategically relevant item: it means the package can act in both directions (exposing our capabilities to LLM clients and consuming external MCP servers), which is what most of our roadmap scenarios actually require. The downside of a thin-wrapper design is that our API surface is effectively someone else's SDK surface, and their release cadence becomes ours.

Integration feasibility: Mechanically straightforward — Composer install, version-constrained, no infrastructure prerequisites. The open question is framework convention. The package is named and structured as a bundle, which is Symfony's terminology for a DI/extension package; Laravel integration would depend on a service provider, publishable config, and container bindings being present or trivially wrappable. This is a 30-minute spike, not a research project, but it must be done before we size anything. Do not assume Laravel first-class support from the package name alone.

Technical risk: Elevated, and concentrated in three places. First, the maintainers shipped an explicit WIP disclaimer in 0.1 — they are telling us the public API is not settled. Second, the bundle is hard-pinned to mcp-sdk 0.1; any SDK fix or MCP spec change requires a coordinated bundle release, so we inherit an external release gate on our own timelines. Third, the contributor base is a single author across all three PRs, which is a bus-factor and responsiveness risk for a dependency sitting in our LLM integration path. None of these are disqualifying at 0.1, but together they mean this belongs behind an internal abstraction boundary from day one.

Key questions:

  • Is there a Laravel service provider and publishable config, or is Laravel support community/ad hoc?
  • What is the authentication and transport story for exposed endpoints (stdio vs HTTP/SSE), and does the bundle enforce or merely permit auth?
  • Does "client transports" support cover the transports we need, or only a subset?
  • How does the SDK 0.1 pin behave under semantic versioning — will 0.1.x patch releases include breaking changes?
  • What is the maintainer's stated path to 1.0, and is there a deprecation policy?
  • Is there any test suite or CI signal we can inspect for confidence?

Integration Approach

Stack fit: Good conceptual fit, unproven framework fit. The package's value proposition — MCP transport plumbing without owning the protocol — aligns with our preference for adopting standards early and building thin adapters. The risk is that "bundle" implies Symfony idioms; we should plan for a small internal adapter layer regardless, so that a future framework-convention mismatch doesn't leak into application code.

Migration path: There is nothing to migrate from, which is both the advantage and the trap. Greenfield means no legacy contract to honor, but it also means no production-hardening precedent to inherit. Introduce this as a new, isolated capability behind a feature flag rather than weaving it into an existing service boundary. Our internal abstraction should expose the operations we care about (register tool, handle invocation, route transport), not re-export the SDK's types.

Compatibility: The hard pin to mcp-sdk 0.1 is the defining compatibility constraint. Two consequences: our composer constraints must lock the bundle and SDK together as a pair (never resolve them independently), and we should expect that adopting a newer SDK means adopting a newer bundle, not just bumping a version. Assume zero backward-compatibility guarantee across 0.1.x and design the adapter so an API change is a localized edit.

Sequencing:

  1. Spike: confirm Laravel wiring (service provider, config publish, container resolution) and get one transport round-tripping end to end in a scratch app.
  2. Security review: transports, auth, and what the exposed surface looks like from outside the network boundary.
  3. Internal adapter + contract tests written against our interface, so the SDK pin is a swappable detail.
  4. Single non-critical internal use case in production behind a flag, with the pin documented and monitored.
  5. Re-evaluate at 0.2/0.3 — specifically watching for a stable API signal, additional maintainers, and whether the WIP disclaimer is removed — before widening adoption.

Operational Impact

Maintenance: Low ongoing effort if the adapter boundary holds; high if we let SDK types into application code. Budget for upgrade work on the SDK's cadence rather than ours. We should track upstream releases explicitly (watch the repo, pin deliberately, upgrade in planned windows) rather than relying on Composer to surface changes.

Support: Effectively self-support. One contributor, WIP status, and no evidence of a support channel or SLA. Internal documentation and the contract tests become the institutional memory — this is a real, if modest, cost and should be assigned to a named owner rather than assumed.

Scaling: Unknown and untested at our volumes. The bundle is transport wiring, so scaling characteristics will mostly be a function of transport choice and our own handler implementations. The specific thing to measure in the pilot is behavior under concurrent tool invocations and long-lived connections, since that is where thin MCP layers typically show their limits.

Failure modes: (a) Upstream stalls — a needed SDK fix or spec adaptation doesn't land, and we're blocked; mitigate by keeping the adapter thin enough to fork or vendor. (b) Silent breakage on a 0.1.x bump — mitigate with pinned lockfiles plus contract tests in CI. (c) Security exposure from a transport enabled by default or misconfigured auth — mitigate by reviewing defaults before the pilot and confining the initial deployment. (d) Framework-convention drift if the package later commits to Symfony-style patterns — mitigate by never letting its types cross the adapter.

Ramp-up: Low for a PHP developer already fluent in Laravel or Symfony DI; the MCP concepts (tools, transports, client/server roles) are the actual learning curve, not the code. Estimate a day to a working spike, plus meaningful time on the protocol model and security posture before anyone ships it to a shared environment. Note that the WIP disclaimer means developers will be reading source rather than documentation — plan for that in the estimate.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core