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

Askmydocs Mcp Pack Laravel Package

padosoft/askmydocs-mcp-pack

A Laravel/PHP MCP pack for AskMyDocs that exposes your documentation as Model Context Protocol tools, letting AI assistants run context-aware search and Q&A over project docs—ideal for teams wanting accurate, doc-grounded AI answers with minimal setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. padosoft/askmydocs-mcp-pack is a Composer-distributed Laravel package that adds a Model Context Protocol server surface on top of the AskMyDocs documentation platform. For a TPM this is an additive integration, not an architectural change: it registers via Laravel package discovery, binds into the existing service container, and communicates outward over HTTP through Guzzle/PSR-7/PSR-18. That means it slots into the standard Laravel shape (service provider → config → container bindings → HTTP client) rather than demanding a new runtime, queue, or datastore. The target matrix is Laravel 11, 12 and 13 on PHP 8.3–8.5, which is a modern-but-not-bleeding-edge envelope.

Integration feasibility. High for greenfield Laravel 11+ applications. The headline of v2.0.1 is a resolution fix, not a feature: v2.0.0 pinned guzzlehttp/guzzle ^7.8.2, which forced any host already on Guzzle 8 to downgrade Guzzle (8.3 → 7.16), PSR-7 (3.2 → 2.13) and Promises (3.1 → 2.6) in order to install. That is a real, measurable integration tax — a downgrade cascade in a shared dependency is exactly the kind of change that breaks unrelated packages in a monolith. v2.0.1 widens the constraint to ^7.8.2|^8.0 with the Guzzle 7 floor unchanged, so the package now coexists with either major.

Technical risk. Three items worth tracking:

  1. Constraint-only Guzzle 8 support. There is no src/ change between 2.0.0 and 2.0.1 — the diff is composer.json, CI workflow and CHANGELOG.md. Guzzle 8 compatibility is therefore asserted by constraint and CI, not by a code change. That is usually fine (Guzzle 8 is largely behavioural rather than API-breaking for typical client usage), but it means the first real signal comes from our own test suite, not from the vendor.
  2. Framework-level ceiling. Laravel's own HTTP layer (illuminate/http) carries its own Guzzle constraint. Allowing Guzzle 8 here does not guarantee the host application can actually resolve Guzzle 8; if the pinned Laravel minor still requires ^7, we stay on 7 and the patch is a no-op for us. Verify by resolution, not by changelog.
  3. Verification surface is narrow. CI covers PHP 8.3–8.5 across Laravel 11/12/13 (lowest and latest), static analysis, OpenAPI, and MCP conformance fixtures. That is a credible matrix for a patch release, but all of it is authored by the maintainer on a two-PR release; there is no external adopter evidence in this data.

Key questions for the maintainer.

  • Which MCP transports are implemented (stdio, HTTP+SSE, streamable HTTP), and is the server intended to run in-process in the Laravel app or as a separate worker?
  • What authentication does the pack require — an AskMyDocs API key, OAuth, per-tenant credentials — and how are secrets managed?
  • Is Guzzle 8 exercised in CI as a resolved dependency (i.e. a matrix leg that actually installs ^8.0), or only permitted by constraint?
  • The notes reference "MCP 2026-07-28 conformance fixtures" — confirm the intended spec revision and the pack's forward-compatibility policy as the MCP spec moves.
  • What is the breaking-change surface of 2.0.0 relative to 1.x? Not in evidence here and required before any 1.x → 2.x plan.

Integration Approach

Stack fit. Laravel 11/12/13, PHP 8.3+, Composer 2. The package is an HTTP client + protocol adapter, so it inherits whatever Guzzle the framework already resolves. Our decision tree is short: if the application is on Laravel 11+ and PHP 8.3+, it fits; if not, it does not, and no amount of patch-release goodwill changes that.

Migration path.

  • 2.0.0 → 2.0.1: drop-in. No src/ diff, no config diff, no migration. Safe to take on the next routine dependency bump; there is no functional reason to expedite unless we are currently blocked by the Guzzle pin.
  • Hosts blocked on Guzzle 8: this is the fix. Adopting ^2.0.1 removes the forced downgrade of Guzzle/PSR-7/Promises. That is the only scenario where this patch is worth prioritising, and in that scenario it is worth prioritising immediately — the downgrade cascade is a live risk to other packages.
  • 1.x → 2.x: out of scope for this review. The 2.0.0 breaking changes are not in the supplied data. Gate any 1.x migration on reading the 2.0.0 upgrade notes and running the full suite.

Compatibility. Runtime support for Laravel 11/12/13 is explicitly retained. The Testbench development floors were raised to compatible patch lines — this affects contributors and CI only, not consumers. The Guzzle 7 floor (^7.8.2) is unchanged, so existing Guzzle 7 hosts see no narrowing.

Sequencing.

  1. Resolve the dependency graph in a throwaway branch (composer why guzzlehttp/guzzle, composer update --dry-run) to learn which Guzzle major we actually land on. This determines whether the patch changes anything for us.
  2. If we are on Guzzle 7 with no conflicts → schedule ^2.0.1 with the next maintenance window. Low urgency.
  3. If we are on Guzzle 7 because of this package and want Guzzle 8 → adopt ^2.0.1, then run the full application test suite plus a smoke test of every other Guzzle consumer.
  4. Run the integration (auth, transport, one end-to-end MCP call) in staging before production; the pack's own conformance fixtures do not validate our configuration.
  5. Pin to ^2.0.1 rather than a floating constraint, and add a Renovate/Dependabot watch on the package.

Operational Impact

Maintenance. Low marginal load. A dependency-only patch with a two-PR diff and a green matrix is close to the cheapest kind of upgrade we can absorb. The ongoing cost is vigilance, not labour: the package now spans two Guzzle majors, so its release cadence is partly coupled to Guzzle 8.x patch releases. Budget a periodic composer outdated review rather than a standing workstream. Dev-only changes (Testbench floors) do not reach production and should not appear in release risk assessments.

Support. The widened constraint is a support improvement: it means Guzzle 8 security patches are reachable without forking the pack, and it removes a class of "cannot install, dependency conflict" tickets. Counterweight: we are dependent on a small maintainer team (@bramato authored both PRs) for a package sitting in the request path between our application and a third-party documentation service. Record the maintainer as a single point of knowledge and keep the integration behind an interface we control.

Scaling. The pack is I/O-bound outbound HTTP to AskMyDocs; it adds no local compute, storage or schema. Scaling therefore tracks the upstream service and our egress: tune connection reuse, timeouts and retry/backoff on the Guzzle client, and confirm whether the MCP surface streams responses — streaming changes both timeout policy and load-balancer configuration. Watch outbound request volume and cost if documentation is fetched per user session rather than cached.

Failure modes.

  • Install-time resolution failure — the exact 2.0.0 pathology, now mitigated but not eliminated (Guzzle 8 vs. framework pins is the remaining edge).
  • Silent transitive downgrade — the failure mode that started this: an unrelated package loses a major version and misbehaves in ways that surface far from the install. Mitigate with composer.lock review in PRs and a CI resolution check.
  • MCP spec drift — the client and server must agree on protocol revision; the "2026-07-28" fixtures imply a moving target. Pin and monitor.
  • Upstream AskMyDocs unavailability or auth expiry — surfaces as tool-call failures inside the assistant, which are easy to misattribute to our own application. Needs explicit error surfacing and a health check.
  • Payload/timeout limits on large documentation responses.

Ramp-up. Low. Installation is a standard composer require plus publish-config; a mid-level Laravel engineer is productive in well under a day. The genuine learning curve is MCP literacy — transport choice, tool schemas, client-side wiring — and that sits with whoever owns the AI surface, not with the Laravel team. Recommend one engineer own both the pack and the MCP contract so protocol changes have a clear owner.

Evidence caveat: this assessment is derived solely from the v2.0.1 release notes and changelog. No source review, dependency audit, or adopter feedback was available; the Guzzle 8 posture in particular should be confirmed empirically before production commitment.

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.
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
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle