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

sulu/mcp-bundle

Sulu MCP Bundle integrates the Model Context Protocol into Sulu CMS, letting AI assistants and MCP clients query content, manage pages, and automate editorial workflows through configurable, secure tools and resources.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What it is: A Symfony bundle from the Sulu CMS project that surfaces Sulu content operations as Model Context Protocol (MCP) tools, letting MCP-capable AI assistants (Claude Desktop, Mistral Le Chat, IDE agents, custom orchestrators) read and act on CMS content through a standard tool interface. Still pre-1.0 (now 1.0.0-RC4).

Architecture fit

  • Unchanged core assessment: strong fit only if Sulu is already the content backbone. Bundle registration, DI config, no separate data store.
  • The protocol edge is maturing in the right direction. RC4 documents and tests a stateless MCP protocol, which materially improves the architecture fit: the MCP tier can now look like a normal stateless Symfony route group rather than a persistent per-session worker. That removes the single biggest deployment-shape mismatch (PHP-FPM vs. long-lived stdio processes) for our environment.
  • New extension points appear: a content-type extension point for the unified content tools, and a mechanism for third-party bundles to gate their own dangerous tools. Good for the ecosystem, but it means the tool surface is now partly composed by whatever else is installed — our inventory of exposed tools is a function of the bundle set, not just this package. Security review must enumerate at runtime, not from docs.
  • Product tools have been moved out of this bundle into SuluProductBundle. Cleaner separation, but confirms the surface is still being re-partitioned.

Integration feasibility

  • Trial cost unchanged: days for a read-only spike. RC4 adds a sulu:mcp:create-client CLI command and client guides (CIMD, DCR, Mistral Le Chat), which lowers onboarding friction for pilot clients.
  • Productionization work is partially de-risked: tool annotations, permission gating, and OAuth client metadata support now exist in-package. Remaining project work is audit logging, approval gates, and change-management policy for AI-initiated writes — still ours.
  • Blocking prerequisite narrows: CI now tests against Sulu 3.1 (product bundle). We still need an explicit PHP/Symfony/Sulu minor support matrix against our pins.

Technical risk

  • Maturity (medium-high, downgraded from high): star count and dependents are still thin, but release velocity is high (~30 PRs in this cycle) and the changes are substantive hardening, not cosmetic. Actively maintained by named Sulu engineers. Still single-vendor, still pre-1.0.
  • Breaking-change churn (high, newly elevated): RC3 → RC4 re-partitions the tool surface — product tools relocated to another bundle, unified content tools re-keyed by resourceKey, sulu_content_search scope expanded to products, snippet security context resolved per group. Any pilot prompts or client configs written against RC3 tool names will break. This validates the earlier advice to wrap tool identifiers behind our own abstraction — now a hard requirement, not a nicety.
  • Security (medium-high, improved): RC4 is a genuine security-hardening release. Every tool now carries readOnlyHint/destructiveHint/idempotentHint/openWorldHint; product results are gated behind the product permission; delete requires permissions across every locale; snippets resolve security context per group; third-party bundles can gate dangerous tools; some tools are disabled by default. These directly address the earlier open questions on read/write classification and permission enforcement.
  • Auth/identity (medium, improved but new footgun): OAuth Client ID Metadata Documents and Dynamic Client Registration are now supported, with DCR made switchable. DCR enabled in production is an open-registration risk; we must confirm the default is off and that allow-listing of client metadata URLs is enforced.
  • Prompt injection (unchanged, high): annotations describe intent, they don't constrain an agent. Injection via stored content remains the dominant residual risk.
  • Protocol risk (medium, reduced): stateless protocol now documented and tested; CIMD alignment suggests tracking the spec actively. Still volatile upstream.

Key questions for the maintainers — updated status

  1. Which tools are read-only vs. mutating? Partially answered — annotations on every tool. Follow-up: are annotations enforced server-side or advisory only? Can annotations be overridden per deployment?
  2. How are Sulu roles/permissions enforced? Largely answered — permission gating exists for products, delete-per-locale, snippet groups. Follow-up: is there a documented permission matrix per tool, and is it CI-tested?
  3. Which transports are supported? Partially answered — stateless HTTP documented and tested. Follow-up: is stdio still shipped, and is it supported or legacy?
  4. What is the auth model for remote clients? Answered — OAuth with CIMD and switchable DCR. Follow-up: what is DCR's default state, and how is client metadata allow-listed/rotated?
  5. Still open: supported Sulu/Symfony/PHP matrix and whether CI enforces the full grid (currently evidenced for Sulu 3.1 only).
  6. Still open: audit trail — who/what/when, before/after payloads, telemetry hooks. Not mentioned in RC4.
  7. Still open / partly worse: rate limiting, payload caps, pagination. RC4 documents that sulu_page_list without parentId returns every page in the webspace — helpful documentation, but confirms large-result behavior needs our own caps.
  8. Still open, now evidenced against us: semver and deprecation policy for tool schemas. This RC moved and renamed tools; ask explicitly whether 1.0.0 will freeze tool names.
  9. Still open: is this on the funded Sulu roadmap with commercial support coverage, or exploratory?

Integration Approach

Stack fit

  • Unchanged: assumes Symfony + Sulu. No partial-adoption path if we are not on Sulu.
  • Stateless MCP support means the MCP tier can be deployed as an ordinary stateless Symfony route group behind our existing ingress, load balancer, and WAF — no new long-running worker tier. This is a meaningful simplification versus the RC3-era assumption.
  • Additive at the code level, but note the tool inventory now depends on the installed bundle set (SuluProductBundle, third-party gating hooks). Treat tool enumeration as a deployment artefact to be captured and diffed per environment.

Migration path

  • No content or schema migration. Configuration, permission design, client onboarding.
  • Exit cost rises slightly: the extension-point model invites other bundles to register tools, so "just deregister the bundle" may leave adjacent integrations. Keep the tool-name abstraction layer (already recommended) and record which tools originate from which bundle.
  • If already piloting on RC3: expect breakage. Product tools are no longer here; unified content tools are keyed by resourceKey. Budget a re-onboarding pass for any client configs or prompts.

Compatibility

  • Pin exact versions. Pre-1.0 with a demonstrated re-partitioning event; do not float ^.
  • RC4 is tested against Sulu 3.1 for the product bundle path. Verify our pinned Sulu minor explicitly rather than inferring.
  • Validate against the specific MCP clients we intend to support — the bundle now ships guidance for custom and Mistral Le Chat client types, so client-side variance is a known and widening surface.
  • If we enable OAuth: confirm DCR is disabled by default, CIMD metadata URLs are allow-listed, and token lifetime/rotation behavior is acceptable before exposing the endpoint beyond the internal network.

Sequencing (revised)

  1. Re-baseline (2–3 days): stand up an RC4 sandbox on our pinned Sulu version. Dump the live tool inventory with annotations and default enabled/disabled state. Diff against any RC3 assumptions.
  2. Security review: map each tool to Sulu permissions using the now-shipped gating; confirm delete-per-locale and snippet-group context behave as documented; decide DCR off, CIMD allow-list contents; define audit sink and approval gate. No write tools until closed.
  3. Read-only pilot: editor-facing assistant (lookup, draft summaries, link suggestions) via stateless HTTP. Instrument latency, tool-call accuracy, and result sizes — especially sulu_page_list without parentId.
  4. Gated writes: mutations behind human confirmation, per-user allow-list, non-public webspace first. Verify annotation semantics match enforcement.
  5. Production: feature-flagged, observability in place, rollback = disable bundle (no data loss).

Operational Impact

Maintenance

  • Recurring upstream tracking cost is now the dominant line item: ~30 changes in one RC cycle, including tool renames and relocation. Allocate a standing budget per release, not per quarter.
  • The tool-surface abstraction layer is now mandatory. Any prompt, saved client config, or internal doc referencing tool names must go through it.
  • Extension points mean upgrades can change the tool inventory indirectly (via sibling bundles). Include a post-upgrade tool-inventory diff in the runbook.
  • Small contributor base; expect to file issues and possibly carry a patch. Fork-and-patch option still worth budgeting.

Support

  • Community/GitHub only by default; commercial support coverage for this bundle still unconfirmed. Treat as unsupported OSS with named internal ownership.
  • Client-side (OAuth flow, CIMD metadata, client-type quirks) will be a meaningful share of incidents and is outside Sulu's SLA regardless.

Scaling

  • Stateless HTTP MCP scales like any stateless Symfony tier — the previous stdio/no-horizontal-sharing caveat no longer applies to the recommended deployment. Confirm stdio is not required for any client we care about.
  • Tool calls still resolve through Sulu's content layer and DB. Watch connection pressure and content-cache invalidation under agent read bursts. Cache tool listings; short-circuit repeated reads.
  • sulu_page_list without parentId enumerates an entire webspace — enforce server-side result caps and pagination in our MCP tier, and steer agents to scoped queries via prompt/tool descriptions we control.
  • Agent loops (retry storms, repeated tool enumeration) remain a real load pattern; per-user and per-session limits belong at the MCP tier.

Failure modes

  • Tool renamed or relocated across a minor/RC bump → silent not-found; agents degrade rather than error cleanly. Highest-probability failure given RC4's precedent.
  • DCR left enabled or CIMD allow-list too broad → unvetted client obtains a token.
  • Auth token expiry mid-session → opaque capability loss.
  • Prompt injection from stored content → unintended publish/unpublish or field overwrite despite annotations.
  • Partial writes across multi-step mutations without transactional semantics.
  • Cache staleness / lost update: agent overwrites an editor's change. Needs optimistic concurrency.
  • Over-permissioned service account adopted for convenience → permanent blast-radius expansion.
  • Annotation/enforcement mismatch if hints are advisory — an agent could be told a tool is safe when the server still permits the write.

Ramp-up

  • Three competencies unchanged: Symfony/Sulu content model, MCP protocol and client behaviour, AI-agent security (tool scoping, injection, audit). Add a fourth, smaller one: OAuth client registration concepts (CIMD/DCR) for whoever operates the MCP endpoint.
  • Estimate tightens slightly: 1 sprint to a credible read-only internal pilot on RC4 (was 1–2), because stateless deployment, annotations, and permission gating remove real design work. 1 quarter to governed production writes remains, gated on audit and approval design — unchanged.
  • Editorial stakeholders still need a policy artefact: what agents may change, who approves, how changes are attributed.

TPM recommendation: Update the position — RC4 is a substantial hardening release that resolves or narrows roughly half the previously open questions (permission enforcement, auth model, transport/deployment shape, read/write classification) and should be the version we pilot, not RC3. It also demonstrates the churn risk it was flagged for: product tools moved bundles and unified content tools were re-keyed. Proceed with a time-boxed read-only pilot on RC4 if Sulu is our CMS and there is a near-term assistant use case; build the tool-name abstraction before writing a single prompt; keep DCR off; do not enable mutating tools until audit and approval paths exist and the maintainers answer the still-open questions (support matrix, audit hooks, rate/payload caps, semver freeze for tool schemas, commercial support). The dominant risk has shifted from "immature, unproven code" to "fast-moving, still-unfrozen tool contract" — plan accordingly.

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.
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator