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

Getting Started

  • Install: composer require padosoft/askmydocs-mcp-pack. On v2.0.1 the Guzzle constraint is ^7.8.2|^8.0, so it drops cleanly into hosts already on Guzzle 8. If you pinned v2.0.0 earlier, expect Composer to have pulled Guzzle down to 7.x — run composer why guzzlehttp/guzzle before and after upgrading to confirm which line you land on.
  • Check your floor: PHP 8.3–8.5 and Laravel 11/12/13 are the supported runtime matrix (the CI on the release commit exercises lowest and latest constraints across all three majors). Testbench floors were bumped in this release but are dev-only — they don't affect what your app installs.
  • Publish config: php artisan vendor:publish and pick the askmydocs provider tag (tag names vary by release — list them with php artisan vendor:publish --list rather than guessing). The published config is where source paths and MCP server options live; read it top to bottom before anything else.
  • Where to look first: README → published config → the package's service provider and route/command registration. The src/ tree is untouched between 2.0.0 and 2.0.1, so anything you read there is still current from 2.0.0.
  • First use case: point the pack at your app's own docs/markdown directory, expose the MCP server locally, and register it in your AI client (Claude Desktop, Cursor, etc.). Then ask a question that only your internal docs answer. That end-to-end loop is the fastest way to validate config, indexing, and transport in one pass.

Implementation Patterns

  • Config-driven sources. Treat the config file as the single source of truth for what gets indexed — one entry per docs root (app docs, API reference, ADRs) rather than mutating code. Commit the published config so teammates share the same corpus.
  • Local-first workflow. Run it against a dev server or via stdio during development, and keep the client registration per-developer (client config files are user-scoped, not project-scoped). Document the registration snippet in your repo README so onboarding is copy-paste.
  • Reindex on docs change. Whatever the refresh/ingest command ends up being, wire it into a Composer script or a make docs target and run it after doc edits. Stale indexes are the #1 source of "the assistant is wrong" bug reports.
  • Pin the pair deliberately. If your app is on Guzzle 8, put padosoft/askmydocs-mcp-pack: ^2.0.1 in composer.json — ^2.0.0 technically resolves to 2.0.1 today but leaves the door open to being re-pinned to a Guzzle-7-only 2.0.x if you ever pin exactly. Use composer update padosoft/askmydocs-mcp-pack guzzlehttp/guzzle --with-dependencies so psr7/promises move together.
  • Mirror the package's CI. It runs PHP 8.3–8.5 × Laravel 11/12/13 at lowest and latest, plus static analysis and an OpenAPI check, plus the MCP conformance fixtures. A single job in your own matrix that installs with --prefer-lowest catches the same class of dependency conflict before release.
  • Scope per audience. If the pack supports multiple servers/namespaces, register a narrow "app docs" server for day-to-day coding and a broader one for support triage, so prompt context stays small.
  • Test with Testbench. If you extend the package (custom tool handlers, source loaders), Testbench is the supported harness — the raised dev floors in this release signal that's the intended extension test path.

Gotchas and Tips

  • The Guzzle downgrade is the whole story of this release. v2.0.0 hard-required guzzlehttp/guzzle ^7.8.2, so adopting 2.x on a Guzzle 8 host silently rewound Guzzle 8.3 → 7.16, psr7 3.2 → 2.13 and promises 3.1 → 2.6. 2.0.1 widens the constraint to ^7.8.2|^8.0; the 7.x floor is unchanged, so Guzzle-7 hosts see no difference at all. After upgrading, run composer show guzzlehttp/guzzle guzzlehttp/psr7 guzzlehttp/promises and verify you're back on the 8.x/3.x lines if that's what the rest of your stack expects.
  • Zero runtime risk in the patch. The diff against 2.0.0 is composer.json, the CI workflow and CHANGELOG.md only — no src/ changes. Upgrade freely; there is nothing to re-test beyond dependency resolution.
  • Don't "fix" a conflict by forcing it. If Composer still resolves to Guzzle 7 after bumping, something else in your tree caps Guzzle at 7 — composer why-not guzzlehttp/guzzle 8.0.0 names the culprit. Don't reach for --ignore-platform-reqs or inline replace blocks.
  • Config cache bites. After editing the config, php artisan config:clear (or config:cache) before wondering why your new source path is ignored. Same for long-running workers/servers — restart the process.
  • stdio transport logging. With MCP over stdio, anything your app writes to stdout corrupts the protocol stream. Ensure Laravel logging and any dump/var_dump output goes to stderr or files, not stdout, when the server is launched by a client.
  • Spec conformance is dated. CI validates against the MCP 2026-07-28 fixtures. If your client speaks an older MCP revision, expect handshake/tool-list mismatches rather than obvious errors — check client version first, then the package.
  • Extension points to prefer: override via the published config and container bindings before forking. The package's stability story is dependency hygiene and CI breadth, not a wide public API — so anything you patch in vendor/ will be lost on the next composer update.
  • CI is your canary. The release commit is green across PHP 8.3–8.5 and Laravel 11/12/13 (lowest and latest), so if your app sits inside that box and still misbehaves, look at your own config/transport rather than the package.
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.
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
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