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 Database Mcp Laravel Package

datomatic/laravel-database-mcp

A Laravel package that exposes your database to AI assistants via the Model Context Protocol. Browse schemas, inspect tables, and run safe read queries from MCP clients like Claude Desktop or Cursor, making database exploration conversational.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. datomatic/laravel-database-mcp is a Laravel service-provider package that wraps laravel/mcp to expose database introspection/query capabilities to MCP clients (Claude Desktop, Cursor, IDE agents, internal copilots). It sits alongside the application rather than inside the request path, so it does not alter existing runtime behavior — it adds a new external surface against the same database. That is architecturally cheap to adopt but expensive to get wrong: the package's blast radius is entirely determined by what database credentials and connections we let it see. The v0.2.0 bump to allow laravel/mcp 1.0 is the most consequential line in the release, because it moves us off a pre-1.0 MCP foundation that would otherwise conflict with any other MCP-enabled package in the same application.

Integration feasibility. Standard Composer install, config publish, and connection allowlisting. The work is not the install; it is the surrounding decisions — which connections are exposed, whether the credential is read-only, whether the transport is local (stdio) or networked (HTTP), and where authentication terminates. Expect a half-day for a developer to get a working proof of concept against a scratch database and considerably longer to make it safe against a production replica. The refactoring bundled into v0.2.0 means the proof of concept should be re-validated against the new tag rather than carried over from v0.1.1.

Technical risk. Three risks dominate. First, semver: the package is still 0.x, so v0.2.0 is permitted to break v0.1.1 consumers, and the release note gives no detail on what the refactor changed — namespaces, config keys, published config shape, and tool names are all candidates. Second, data exposure: an MCP server over a database is a prompt-injection and exfiltration vector; an agent that can read a users table can be talked into reading it broadly, and any write capability is unacceptable outside a disposable environment. Third, dependency coupling: widening the constraint to laravel/mcp 1.0 reduces conflict risk but also means we inherit the 1.0 API surface, and any Laravel-version floors imposed by that dependency now apply to us. The upside is real — aligning to a 1.0 MCP dependency is a maturity signal and removes a likely blocker for teams already running MCP tooling.

Key questions.

  • Does the v0.2.0 refactor rename classes, config keys, or tool identifiers, and is there a documented upgrade note beyond the changelog link?
  • What Laravel and PHP version floors does laravel/mcp 1.0 impose, and do they match our supported matrix?
  • Does the package enforce read-only access itself, or is that entirely our responsibility via the database user?
  • What transport(s) are supported in this release — stdio only, or HTTP with an auth story?
  • Is there a query timeout, row limit, or statement allowlist, or can an agent issue an unbounded SELECT?
  • Who maintains the package, what is the release cadence, and is there a security disclosure channel?
  • Does it log or audit the queries executed on behalf of an agent?

Integration Approach

Stack fit. Targets Laravel applications on modern PHP with an existing laravel/mcp dependency or an appetite to add one. Best fit is an internal-tooling or developer-productivity context: engineering teams who already run Laravel and want schema-aware assistance without hand-feeding DDL into prompts. Poor fit is any customer-facing or multi-tenant surface where the database boundary is also a tenant boundary — the package has no obvious tenant-awareness story, and adding one is our work, not theirs.

Migration path. There is no prior assessment to upgrade from, so this is a first adoption rather than a migration. Internally, the decision is whether to pin ^0.1.1 (known, narrower MCP constraint) or take ^0.2.0 (MCP 1.0 alignment, unverified refactor). For a greenfield proof of concept, take v0.2.0 — starting on a dependency we already know we must move off is borrowed time. The migration cost we are deferring is the refactor surface, so budget for a re-read of the published config and a smoke test of every exposed tool on each 0.x bump until 1.0 lands.

Compatibility. Verify in order: PHP version, Laravel version, then laravel/mcp 1.0 resolution against whatever else in the app depends on MCP. Run composer why laravel/mcp before and after to confirm nothing else is pinned below 1.0, which would make v0.2.0 uninstallable. Confirm that the published config file from v0.1.x (if any teammate experimented) is regenerated rather than merged, since refactors commonly add or rename keys silently.

Sequencing.

  1. Spin up a disposable database with synthetic or anonymized schema; do not point the first install at anything real.
  2. Install v0.2.0, publish config, enumerate the exposed tools and confirm the tool list matches the documented surface.
  3. Diff published config against v0.1.1 to characterize the refactor before anyone builds on it.
  4. Move to a read-only replica with a dedicated, least-privilege database user and confirm writes fail closed.
  5. Add query timeouts and row caps at the database or proxy layer, not in the prompt.
  6. Pilot with two or three engineers; instrument query volume and latency before considering wider rollout.

Operational Impact

Maintenance. Pre-1.0 with a single-maintainer profile and a terse changelog — the v0.2.0 note is one sentence plus a compare link. That is a thin signal for a refactor release. Assume we own the upgrade testing and that breakage will be discovered by us, not announced. Budget a recurring review at each 0.x release; do not let this drift into an unpinned transitive dependency.

Support. Upstream support is GitHub issues with no SLA. Internal support is whoever adopts it first, which argues for naming an owner before the pilot rather than after. Document the read-only user creation and the connection allowlist in our own runbook — that knowledge is ours, not the package's.

Scaling. The load profile is unusual: bursty, agent-driven, and frequently wasteful. Agents tend to request broad schema dumps and unbounded selects, so cost scales with prompt behavior rather than with user count. Point at a replica. Watch connection count first — an MCP client that opens a connection per tool call will exhaust a small pool quickly — and query duration second.

Failure modes.

  • Unbounded or expensive query saturating the replica and propagating latency to legitimate read traffic.
  • Connection pool exhaustion from chatty clients.
  • Credential scope creep: a "temporary" read-write user that survives the pilot.
  • Silent breakage from a 0.x refactor changing tool names, so clients fail with confusing errors rather than a clean version mismatch.
  • Prompt-injection-driven access to tables the operator did not intend to expose.
  • Dependency conflict when another package pins laravel/mcp below 1.0, blocking install or forcing a downgrade.
  • Schema leakage into third-party model providers if the MCP client is a hosted service rather than a local one — this is the failure mode most likely to become a compliance conversation.

Ramp-up. Low for a Laravel developer: install, config, and connection allowlist are familiar patterns. The genuine ramp-up is conceptual — understanding MCP transports, how a client discovers tools, and where authentication actually terminates — plus the security judgment to keep the capability read-only and scoped. Roughly one engineer-week to a trustworthy internal pilot, most of it spent on guardrails rather than on the package itself.

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.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin