An in-panel AI assistant and an MCP server for Filament v5 panels, built on laravel/ai and laravel/mcp through packstub/agents: one tool list for both, the panel's own authorization, approve-in-chat writes, live tables and charts in answers, per-workspace budgets and an operator limits page.
Four tools with minimal documentation. Tool definitions are inferred from test fixtures rather than directly visible in source code (tests/Feature/ToolsTest.php references ListWidgets, RenameWidget, ShowTable, DrawChart classes but actual schema registration not shown). Descriptions are present but generic (10-50 chars). Input schemas partially visible for list-widgets and rename-widget but show-table and draw-chart lack visible schema definitions. No parameter descriptions provided. No output schema documentation. Error handling and recovery guidance absent. Composition is reasonable (single responsibility per tool) but parameter naming lacks type suffixes (e.g., 'id' vs 'widget_id').
Draws a live chart in the chat answer
Lists widgets from the catalogue
Renames a widget by ID
Displays a live table in the chat answer
show-table and draw-chart lack visible input schemas and descriptions under 20 chars. Cannot verify parameter types or constraints.
No output schema documentation for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., widget_id for chaining).
Parameter 'id' in rename-widget lacks type suffix. Should be 'widget_id' to disambiguate from other resource IDs and match chat data model.
No error handling guidance. Tools do not document what happens on invalid input, missing resources, or failures. LLM cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Tool definitions inferred from test fixtures; actual schema registration code not visible. Cannot verify tool names, descriptions, or schemas are correctly registered in MCP server.