Laravel Optimize MCP provides optimization tools and utilities for AI-assisted development
This Laravel MCP server has 7 tools with moderate definition quality but significant gaps. Tool names follow verb_object conventions (configuration-analyzer, database-size-inspector), which is good, but descriptions are generic and lack LLM-optimized guidance. Parameter schemas are present but sparse, most tools have only 1-2 parameters with minimal type information. Output schemas are entirely undocumented. No tool includes error handling guidance, recovery paths, or actionable failure messages. The code shows tool discovery and registration via a Laravel MCP framework abstraction, but actual tool implementations are referenced in '.ai/foundation.blade.php' which is not provided, this means tool definitions cannot be fully verified from the source code. Per the hard rules, tools whose implementations are not visible are capped at 50 overall. Schema quality varies: 'nginx-config-generator' has 7 well-typed parameters with enums and descriptions; most others have 1-2 parameters with minimal constraint info. No tool documents what it returns or how to use output for chaining. Error handling is absent, no guidance on what to do if a database query fails, a file is not found, or a config is invalid.
Analyze Laravel configuration for performance, security, and optimization opportunities
Inspect database size and table-by-table breakdown with growth tracking
Inspect log file sizes and check log rotation configuration
Generate production-ready nginx configurations
Analyze nginx configuration for security, performance, and Laravel optimization
Suggest useful Laravel packages to improve development and performance
Analyze project structure including CI/CD, testing, Git hooks, deployment
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract return values without knowing the response structure.
Tool implementations not visible in source code; definitions are inferred from tool registration in '.ai/foundation.blade.php' which was not provided. Cannot verify parameter constraints, full descriptions, or error handling logic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
No error handling or recovery guidance in any tool. Descriptions do not explain what happens on failure, what to do if a resource is not found, or which operations are retryable. E.g., 'configuration-analyzer' could fail if the environment directory doesn't exist, but no guidance is provided.
Descriptions are generic and under 50 characters for 6 of 7 tools. E.g., 'log-file-inspector' describes 'Inspect log file sizes and check log rotation configuration' (64 chars) but does not explain when to call it, what 'format' parameter does, or why an LLM would choose this over another tool.
Parameter descriptions are minimal or absent. 'environment' in 'configuration-analyzer' has a description, but 'format' in 'database-size-inspector' and 'log-file-inspector' merely says 'Output format (summary or detailed)', it does not explain what constitutes 'summary' vs 'detailed', when each is useful, or what the LLM should pass.
No idempotency or confirmation pattern for write tools. 'nginx-config-generator' and 'package-advisor' both write to files/composer.json but have no dry-run, confirmation, or rollback mechanism. An agent error could silently overwrite production configs.
Parameter 'add_to_composer' and 'add_to_package_json' in 'package-advisor' are boolean flags with no context about what adding means (install? lock? update?), whether it requires a restart, or if there are side effects. This invites misuse.
No distinction between tools that are read-only vs. destructive in the tool definitions themselves. Risk labels (READ_ONLY, WRITE) are noted in the prompt, but tool annotations (readOnlyHint, destructiveHint) are absent from the schema, preventing client-side safety enforcement.