Give your Filament panels MCP capabilities. Expose resources, records and actions to AI agents - configurable and secure.
Filament MCP demonstrates solid tool definition practices with consistent naming conventions (verb_noun pattern), comprehensive parameter schemas, and clear descriptions. All 12 tools follow the verb-first naming pattern (list_, get_, create_, update_, delete_, request_, call_). Descriptions are present and contextual (avg ~120 chars). However, several tools lack output schema documentation, and error handling guidance is minimal. The server exposes a Laravel/Filament-specific domain well but misses opportunities for LLM-optimized descriptions and recovery guidance.
Call an action on a resource record (dynamically generated per action).
Create a new post record.
Delete a post record by its primary key.
Get a single category record by its primary key.
Get a single post record by its primary key.
List categories records with pagination, search and sorting.
List the [posts] records related to a category record.
Output schemas not documented. Tools return data but LLMs cannot predict field structure, forcing trial-and-error parsing and wasting tokens.
Destructive tool (delete_post) lacks confirmation/dry-run pattern. No guidance on recovery if agent makes a mistake.
call_action_on_record is overly generic. Name does not convey what action or which resource. Schema is inferred from action config, not explicit.
Error handling in CallActionTool.php catches exceptions but returns generic messages ('The action was halted', 'The action was cancelled'). No recovery guidance for LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
List posts records with pagination, search and sorting.
Get the title and status of a post.
Get post counts grouped by status.
Get a short-lived URL for uploading a file, and the handle to pass to a file field afterwards. Upload the bytes with an HTTP PUT to the returned url, then use the returned handle as the value of the file field. Do not read the file into the conversation.
Update an existing post record. Only the provided attributes are changed.
post_stats and post_peek descriptions are vague. 'Get post counts grouped by status' and 'Get the title and status of a post' lack context on when to use them vs alternatives.