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

Laravel Agentic Laravel Package

gtapps/laravel-agentic

A Laravel package for building agentic AI features: orchestrate LLM-driven agents, tool calls, and multi-step workflows inside your PHP app using familiar Laravel conventions.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a thin integration layer that exposes Laravel actions as MCP tools, delegating protocol handling to laravel/mcp and model/prompt plumbing to laravel/ai. v0.1.1 confirms that architecture is holding: both upstream bumps were absorbed with zero source changes, which is the single most important signal in this release. It means the package's public surface is genuinely a wrapper over first-party contracts rather than a fork of them — the right shape for something we would not want to own ourselves.

Integration feasibility. Low effort to trial, assuming the host application is already on Laravel and can accept laravel/ai ~0.11.0. Installation is Composer-only; there is no infrastructure, queue, or schema component implied. The package is a server, so the integration surface is a route/transport plus a registry of exposed actions — both reversible via config.

Technical risk. Elevated, and driven almost entirely by dependency velocity rather than by the package's own code:

  • Pre-1.0 on both sides. The package is 0.1.x and now requires laravel/mcp ^1.0 and laravel/ai ~0.11.0. In Composer's caret semantics for 0.x releases, 0.10 → 0.11 is a breaking boundary, not a minor bump. The release notes state "no source changes needed," which is reassuring for this package but does not mean it is compatible with our application's other laravel/ai consumers. Version-lock conflicts are the most likely reason an adoption attempt fails, not the code.
  • laravel/mcp 0.9 → 1.0 crosses a major boundary. Claiming protocol 2026-07-28 alongside legacy initialize clients is a compatibility promise we should verify against our MCP clients rather than assume. Protocol dual-stacking is exactly where clients silently degrade.
  • Only one functional change in the release, and it is cosmetic. The tools/list title fix (Str::headline() over the action name, e.g. refund-invoice → Refund Invoice) is a labeling improvement. That the headline feature of a patch is a display string is a fair proxy for how much first-party logic this package actually contains — and therefore how much value it adds over wiring laravel/mcp directly.
  • Title derivation is unowned. Titles are computed, not declared. Two actions that normalize to the same headline will present identical, indistinguishable tool names to a model, and there is no evidence in the notes of a collision check, a manual override, or i18n. Tool metadata is effectively prompt surface, so treating it as deterministic-by-convention rather than explicitly-authored is a latent correctness issue for larger action sets.

Key questions.

  1. Does the package's laravel/ai ~0.11.0 constraint conflict with anything else in our dependency graph today? Can we resolve it without upgrading unrelated packages?
  2. Is tools/list title overridable per action, and is uniqueness enforced or merely conventional? What happens with two actions whose headlines collide?
  3. Which MCP clients do we actually need to support, and has anyone verified the legacy initialize path still works against them post-laravel/mcp 1.0?
  4. Is laravel/mcp 1.0 API-stable in practice, or is the package's ^1.0 constraint going to float us onto breaking changes inside a "stable" major?
  5. What is the maintainer's stated 1.0 plan for this package, and is there a commitment to track laravel/ai prerelease bumps promptly? The cadence here looks reactive.

Integration Approach

Stack fit. Appropriate only for a Laravel application that already owns discrete, well-named actions with clear input schemas. The package's value scales with how much of our domain is already modeled as actions; if we would be writing new action classes purely to satisfy the tool registry, the wrapper is providing negative value and we should reconsider scope before adopting.

Migration path. Greenfield trial, not a migration. There is no prior assessment and no incumbent integration to displace, so treat this as a spike: install into one non-critical service, expose two or three read-only actions, and confirm the tool contract end to end. Do not attempt to convert existing internal APIs in the first pass.

Compatibility. Two hard gates, both worth resolving before any code is written:

  • Dependency resolution. Prove laravel/ai ~0.11.0 and laravel/mcp ^1.0 co-install with our current lockfile. Given the 0.10 → 0.11 semver break, assume friction until demonstrated otherwise. If resolution forces upgrades elsewhere, that cost belongs to this evaluation, not to the trial.
  • Client protocol coverage. Exercise both the 2026-07-28 path and a legacy initialize client. The dual-protocol claim in the notes is the feature most likely to be true for the happy path and false at the edges.

Sequencing.

  1. Resolve dependency constraints in a throwaway branch; timebox and abort if it entangles the main application.
  2. Stand up the server with two read-only actions. Verify tools/list output shape and confirm the new title field renders as expected in the client UI.
  3. Write one integration test asserting the advertised tool schema, including titles, so a future cosmetic-looking patch cannot silently rename tools our prompts depend on.
  4. Add a single mutating action behind an explicit allowlist to test the permission story.
  5. Only then evaluate a broader action rollout, with a decision checkpoint on whether the wrapper is earning its place versus direct laravel/mcp usage.

Operational Impact

Maintenance. This is the dominant cost. We are effectively promising to chase two pre-1.0 first-party packages, and this release shows the package doing exactly that on our behalf — good, but it means upgrade pressure arrives whether or not we want it. Budget a recurring dependency-review task per quarter, not a one-off install. Pin the package version explicitly; do not ride a floating constraint.

Support. Thin. At 0.1.x with a single cosmetic fix in this release, there is no evidence of a support commitment, deprecation policy, or documented upgrade guide. Escalation path is upstream issues on laravel/mcp and laravel/ai, which is acceptable for an internal tooling layer and unacceptable for anything customer-facing.

Scaling. Two dimensions, and only one is comfortable:

  • Throughput is not our problem — this is a wrapper, and load characteristics belong to the upstream MCP server and to whatever the actions do.
  • Tool-count scaling is our problem. Tool registries degrade for models as they grow: names and descriptions must stay distinct. Deriving titles from action names via Str::headline() is fine at ten tools and fragile at a hundred, where collisions and near-duplicates become likely and there is no override mechanism in evidence. Plan for a naming convention we enforce in review, and cap the exposed surface deliberately rather than registering every action.

Failure modes.

  • Dependency deadlock at install/upgrade time — most probable failure, and the one that silently blocks security patches to the host application.
  • Silent tool renaming. Titles and descriptions are model-facing API. A refactor of an action name changes the prompt contract with no compile-time signal. This release's own change is exactly that class of edit: harmless now, hazardous once prompts are tuned against it.
  • Title collision producing ambiguous tools and unpredictable model selection.
  • Protocol degradation for legacy clients after the laravel/mcp 1.0 jump — manifests as clients that connect but see no tools, which reads as a package bug and is expensive to diagnose.
  • Permission leakage if the action registry auto-exposes anything not explicitly vetted. No allowlist behavior is described in the notes; assume opt-out rather than opt-in until proven otherwise.

Ramp-up. Low for a Laravel developer — a config file, a route, and a handful of action classes. The real ramp-up is conceptual and belongs to the TPM and the prompt authors, not the engineers: understanding that tool titles and descriptions are a published interface, and that changing them is a release event requiring the same discipline as changing a public REST field name.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core