Filament MCP Server
Provides tools and resources for building Filament admin panels, including component references, implementation plan generation, and documentation lookup for both v4 and v5 versions.
Assists with Laravel development within the Filament ecosystem by providing lookups for PHP namespaces, Eloquent relationship types, and Artisan command references.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Filament MCP ServerCreate an implementation plan for a Product resource in Filament 5.x"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Filament MCP Server
A Model Context Protocol (MCP) server that provides tools, prompts, and resources for working with Filament - the Laravel admin panel framework.
Overview
This MCP server enables AI assistants to help developers build Filament admin panels by providing:
Component Reference: Access to Filament form, table, and infolist component documentation
Code Generation: Generate implementation plans for Filament resources
Documentation Lookup: Fetch and search official Filament documentation
Namespace Lookup: Get correct PHP namespaces for Filament classes
Command Reference: List available Filament artisan commands
Relationship Helpers: Laravel Eloquent relationship type references
Supports both Filament v4.x and v5.x.
Related MCP server: TailwindCSS MCP Server
Requirements
Node.js: v20.10.0 or higher
npm: v9.0.0 or higher (or pnpm v8.0.0+)
Installation
Clone the repository:
cd filament-mcp-serverInstall dependencies:
npm installBuilding
Compile TypeScript to JavaScript:
npm run buildThis compiles the source from src/ to dist/. The main entry point is dist/index.js.
Running
Development Mode
Watch for changes and rebuild automatically:
npm run devProduction Mode
Run the compiled server:
npm startStdio Mode
The server uses stdio transport by default. This allows it to communicate with MCP clients over standard input/output streams. The server starts and waits for JSON-RPC messages from the client.
MCP Integration
To use this server with MCP-compatible AI assistants, you need to register it as an MCP server. Below are configuration examples for popular clients.
Claude Desktop
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"filament": {
"command": "node",
"args": ["/absolute/path/to/filament-mcp-server/dist/index.js"],
"env": {}
}
}
}or
(I prefer npx)
{
"mcpServers": {
"filament": {
"command": "npx",
"args": ["/absolute/path/to/filament-mcp-server"],
"env": {}
}
}
}
Replace `/absolute/path/to/filament-mcp-server` with the actual path to this project.
### Cursor
1. Open Cursor settings
2. Navigate to **Features** → **MCP**
3. Add a new MCP server with the following configuration:
```json
{
"mcpServers": {
"filament": {
"command": "node",
"args": ["/absolute/path/to/filament-mcp-server/dist/index.js"]
}
}
}Other MCP Clients
For other MCP-compatible assistants, configure them to spawn a child process using:
node /path/to/filament-mcp-server/dist/index.jsThe server communicates via stdio using JSON-RPC 2.0 protocol.
Available Tools
The server provides the following MCP tools:
Tool | Description |
Get detailed information about a specific Filament component (properties, methods, examples) | |
List all components in a category (forms, tables, infolists, actions, schemas, support) | |
Get the correct PHP namespace for a Filament class type | |
Generate a complete Filament implementation plan for a resource | |
Get a list of Filament artisan commands with descriptions | |
Get Laravel Eloquent relationship types with examples | |
Fetch documentation from filamentphp.com for a specific category/section | |
List all available documentation sections | |
Discover live documentation routes from the official website | |
Search Filament documentation and return matching sections |
Tool Parameters
version: All tools support aversionparameter ("4.x"or"5.x") to target specific Filament versions. Defaults to"5.x".component: Component name (e.g.,TextInput,Select,Table)category: Component category (forms,tables,infolists,actions,schemas,support)classType: Filament class type (model,resource,widget,relation_manager, etc.)description: What you want to build (used for plan generation)
Available Prompts
The server provides the following MCP prompts for common tasks:
Prompt | Description |
| Generate an implementation plan for a Filament resource |
| Help debug a Filament issue with error messages |
| Generate a Filament RelationManager for relationships |
| Generate a custom Filament action |
| Migrate Filament v4 code to v5 |
| Generate a form with validation rules |
| Generate a table with filters and actions |
Available Resources
The server provides the following MCP resources:
Resource URI | Description |
| Complete Filament v4 component reference |
| Complete Filament v5 component reference |
| Filament v4 artisan commands |
| Filament v5 artisan commands |
| Filament v4 documentation index |
| Filament v5 documentation index |
| Quick reference for common patterns |
Configuration
Version Targeting
Most tools accept an optional version parameter to target Filament v4 or v5:
// Example tool call with version
{
tool: "filament_get_component",
arguments: {
component: "TextInput",
version: "5.x" // or "4.x"
}
}Namespace Mapping
The server includes predefined namespace mappings for different Filament class types:
Class Type | v4.x Namespace | v5.x Namespace |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| (not available) |
|
|
|
|
|
|
|
Testing
Run tests with Vitest:
npm testRun tests in watch mode:
npm run test:watchProject Structure
filament-mcp-server/
├── src/
│ ├── index.ts # Main entry point
│ ├── data/
│ │ └── filament-reference.ts # Component reference data
│ ├── lib/
│ │ ├── doc-fetcher.ts # Documentation fetching utilities
│ │ └── plan-generator.ts # Implementation plan generator
│ ├── prompts/
│ │ └── index.ts # MCP prompts
│ ├── resources/
│ │ └── index.ts # MCP resources
│ └── tools/
│ └── index.ts # MCP tools
├── dist/ # Compiled JavaScript output
├── tests/
│ └── index.test.ts # Test suite
├── package.json
├── tsconfig.json
└── README.mdDependencies
@modelcontextprotocol/sdk: MCP protocol implementation
cheerio: HTML parsing for documentation fetching
zod: Schema validation for tool parameters
License
MIT
Available Tools
10 toolsfilament_discover_docsC
Discover live documentation routes from filamentphp.com
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | 5.x |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'discover live documentation routes' but fails to explain what 'live' entails (e.g., real-time updates, online sources), potential side effects, or response format. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, making it easy to parse and front-loaded with the core purpose. It earns its place by succinctly conveying the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral traits, return values, or how it differs from sibling tools, leaving the agent with insufficient context for effective use in a complex environment with multiple documentation-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond the input schema, which has 0% description coverage but includes an enum for 'version' (4.x, 5.x). Since schema coverage is low, the description doesn't compensate, but the single parameter is simple with clear options, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('discover') and resource ('live documentation routes from filamentphp.com'), making the purpose evident. However, it doesn't differentiate from siblings like 'filament_get_docs' or 'filament_list_docs', which likely serve similar documentation-related functions, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'filament_get_docs' or 'filament_list_docs'. The description lacks context about prerequisites, timing, or exclusions, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_generate_planD
Generate a Filament implementation plan
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | What you want to build | |
| version | No | 5.x | |
| models | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Generate' implies a write or creation operation, but doesn't specify if this is read-only, destructive, requires authentication, has rate limits, or what the output entails (e.g., a plan document, code snippets). This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded and appropriately sized for the tool's name, though this conciseness comes at the cost of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters with nested objects), lack of annotations, no output schema, and low schema coverage, the description is severely incomplete. It doesn't address behavioral traits, parameter meanings beyond the schema, or what the tool returns, making it inadequate for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 33%, with only the 'description' parameter documented. The description adds no information about parameters like 'version' or 'models', failing to compensate for the coverage gap. It doesn't explain what 'models' represent or how they influence the plan, leaving key inputs ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Generate a Filament implementation plan' restates the tool name 'filament_generate_plan' almost verbatim, making it tautological. It doesn't specify what constitutes an 'implementation plan' or what resources it generates, nor does it differentiate from siblings like filament_get_commands or filament_list_components, which might provide related functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., during development setup), or exclusions, leaving the agent to guess based on the name alone among multiple sibling tools focused on documentation and components.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_get_commandsB
Get Filament artisan commands
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | 5.x |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get') but doesn't describe what 'Get' entails—whether it lists, retrieves details, or executes commands, nor does it cover permissions, rate limits, or output format. This lack of detail is a significant gap for a tool with no annotation coverage, making it hard to predict behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single phrase 'Get Filament artisan commands'—with zero wasted words. It's front-loaded and directly states the purpose without unnecessary elaboration, making it efficient for quick understanding. This is ideal for conciseness in tool descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (low, with 1 parameter) but lack of annotations and output schema, the description is incomplete. It doesn't explain what 'artisan commands' are, how results are returned, or any behavioral traits. For a tool in a set with many siblings, more context is needed to ensure the agent can use it correctly without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond the input schema, which has 1 parameter ('version') with 0% schema description coverage. However, since there's only 1 parameter and it has an enum (['4.x', '5.x']) with a default ('5.x'), the schema itself provides clear constraints. The description doesn't need to compensate heavily, but it also doesn't explain what 'version' means in context (e.g., Filament framework version). Baseline is high due to low parameter count and schema clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get Filament artisan commands' specifies both the verb ('Get') and resource ('Filament artisan commands'). It distinguishes from siblings like 'filament_get_docs' or 'filament_list_components' by focusing on commands rather than documentation or components. However, it doesn't explicitly differentiate from all siblings (e.g., 'filament_discover_docs' might also involve commands), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., Laravel/Filament environment), or comparisons to siblings like 'filament_generate_plan' or 'filament_search_docs'. Without any usage instructions, it leaves the agent to infer applicability, which is insufficient for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_get_componentC
Get detailed information about a Filament component
| Name | Required | Description | Default |
|---|---|---|---|
| component | Yes | Component name (e.g., TextInput, Select) | |
| version | No | 5.x |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a 'get' operation, implying it's read-only, but doesn't specify what 'detailed information' includes (e.g., properties, usage examples, dependencies), whether there are rate limits, authentication requirements, or error conditions. This leaves significant gaps for an agent to understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and efficiently communicates the core function, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a read operation with 2 parameters, one with an enum), lack of annotations, and no output schema, the description is insufficient. It doesn't explain what 'detailed information' entails, how results are structured, or address potential issues like invalid component names. For a tool that likely returns structured data about components, more context is needed to guide an agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only the 'component' parameter has a description), and the description adds no additional parameter information beyond what's in the schema. It doesn't explain what 'component' refers to (e.g., is it case-sensitive, what format?), nor does it clarify the 'version' parameter's purpose or default behavior. With partial schema coverage, the description fails to compensate adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed information') and resource ('about a Filament component'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'filament_list_components' or 'filament_get_docs', which might provide related information about Filament components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'filament_list_components' (likely listing components) and 'filament_get_docs' (likely getting documentation), there's clear potential for overlap, but the description offers no comparison or context for choosing this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_get_docsC
Fetch documentation from filamentphp.com
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | ||
| section | Yes | ||
| version | No | 5.x |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action ('fetch') without disclosing behavioral traits like rate limits, authentication needs, response format, or error handling. This is inadequate for a tool with parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, though this conciseness comes at the cost of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, how parameters interact, or behavioral context, making it insufficient for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it adds no meaning beyond the schema. Parameters 'category', 'section', and 'version' are undocumented in both schema and description, leaving their semantics unclear (e.g., what categories or sections exist).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch documentation from filamentphp.com' states a clear verb ('fetch') and resource ('documentation'), but it's vague about scope and doesn't differentiate from sibling tools like 'filament_list_docs' or 'filament_search_docs'. It lacks specificity about what exactly is fetched.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'filament_list_docs' and 'filament_search_docs', the description offers no context for choosing between them, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_get_namespaceC
Get the correct namespace for a Filament class
| Name | Required | Description | Default |
|---|---|---|---|
| classType | Yes | ||
| version | No | 5.x |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a namespace but does not explain what the output looks like (e.g., a string, an object), whether it involves external API calls, or any error conditions. The description is minimal and lacks details on how the namespace is determined or validated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It is front-loaded and efficiently conveys the core purpose without redundancy or fluff, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficient for a tool with 2 parameters (one required) and no behavioral context. It does not explain the return value, error handling, or how the namespace is derived, leaving significant gaps for an AI agent to understand the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the parameters are well-defined with enums for 'classType' and 'version'. The description does not add any semantic details beyond the schema, such as explaining what each class type represents or why the version matters. However, since the schema provides clear constraints, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('correct namespace for a Filament class'), making the purpose understandable. It distinguishes itself from siblings by focusing on namespace retrieval rather than discovery, generation, or listing of other Filament elements. However, it could be more specific about what 'correct' means in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing to know the class type beforehand, or differentiate from sibling tools like 'filament_get_component' or 'filament_list_components'. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_get_relationshipsB
Get Laravel relationship types
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves relationship types but doesn't explain what that entails—whether it returns all types, requires authentication, has rate limits, or what format the output takes. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose ('Get Laravel relationship types'), making it easy to parse quickly. Every word earns its place, achieving optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'relationship types' means in Laravel context, what the return format is, or any behavioral traits like error handling. For a tool with no structured support, this leaves the agent with insufficient information to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, but since there are no parameters, this is acceptable. A baseline of 4 is appropriate as the schema fully handles the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('Laravel relationship types'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings like 'filament_get_commands' or 'filament_get_component'—it's clear what it does but not how it differs from other 'get' tools in the server.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are no explicit instructions on context, prerequisites, or comparisons to sibling tools like 'filament_discover_docs' or 'filament_search_docs', leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_list_componentsC
List all components in a category
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | ||
| version | No | 5.x |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without details on permissions, rate limits, output format, pagination, or side effects. For a list operation with zero annotation coverage, this is inadequate and fails to inform the agent about how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded and efficiently conveys the core action, making it easy to parse quickly, though it lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the return values, error handling, or how parameters interact, leaving significant gaps for the agent to infer behavior, which reduces effectiveness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description mentions 'category' but doesn't explain what it means or list the enum values. It omits the 'version' parameter entirely. This adds minimal semantic value beyond the bare schema, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('List') and target ('components in a category'), which clarifies the basic purpose. However, it's vague about what 'components' are (e.g., UI components, code modules) and doesn't distinguish this from sibling tools like 'filament_get_component' or 'filament_list_docs', missing specificity for a 4-5 score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools (e.g., 'filament_get_component' for details or 'filament_search_docs' for broader searches) or any context like prerequisites, making it minimally helpful for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_list_docsC
List documentation sections
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | 5.x |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List documentation sections' implies a read-only operation but doesn't specify what 'sections' means, whether there's pagination, rate limits, authentication requirements, or how results are structured. This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—just three words—and front-loaded with the core action. There's no wasted text, making it easy to parse, though this brevity comes at the cost of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a listing tool with one parameter but no output schema or annotations), the description is incomplete. It doesn't cover what 'sections' entails, how results are returned, or the role of the 'version' parameter. With no annotations to fill gaps, this leaves the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter ('version') with an enum and default value, but schema description coverage is 0%, meaning the schema itself provides no descriptive context. The description doesn't mention parameters at all, but since there's only one optional parameter with clear enum values, the baseline is high. However, it doesn't explain what 'version' refers to (e.g., Filament framework version) or how it affects the listing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List documentation sections' clearly states the verb ('List') and resource ('documentation sections'), providing a basic purpose. However, it doesn't differentiate from sibling tools like 'filament_get_docs' or 'filament_search_docs', leaving ambiguity about what distinguishes this listing operation from other documentation-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools related to documentation (e.g., 'filament_get_docs', 'filament_search_docs'), there's no indication of context, prerequisites, or exclusions to help an agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filament_search_docsC
Search Filament docs and return exact section matches
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| version | No | 5.x | |
| maxResults | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions returning 'exact section matches' which gives some context about result precision, but lacks details on permissions, rate limits, error handling, or what constitutes a 'section'. More behavioral traits would be helpful for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—just 7 words—and front-loaded with the core purpose. Every word earns its place with no wasted text, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't explain parameter usage, result format, or behavioral constraints. For a search tool with multiple parameters, this leaves significant gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but provides no parameter information. It doesn't explain what 'query' should contain, what 'version' selection means for results, or how 'maxResults' affects output. The description adds no meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search') and target resource ('Filament docs'), and specifies the type of results ('exact section matches'). However, it doesn't explicitly differentiate from sibling tools like 'filament_get_docs' or 'filament_discover_docs', which likely have different search or retrieval approaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, prerequisites, or specific contexts where this search method is preferred over others like 'filament_get_docs' for direct retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.0.1-beta- First observed
filament_discover_docs - First observed
filament_generate_plan - First observed
filament_get_commands - First observed
filament_get_component - First observed
filament_get_docs - First observed
filament_get_namespace - First observed
filament_get_relationships - First observed
filament_list_components - First observed
filament_list_docs - First observed
filament_search_docs
TDQS
Scored across 10 tools
Most tools have distinct purposes, such as discovering docs, generating plans, getting commands, and fetching components. However, there is some overlap between filament_discover_docs, filament_get_docs, filament_list_docs, and filament_search_docs, which all relate to documentation access and could cause confusion about which to use for specific queries.
All tool names follow a consistent snake_case pattern with the prefix 'filament_' and a clear verb_noun structure, such as filament_get_component and filament_list_components. This predictability makes it easy for agents to understand and select tools based on their naming conventions.
With 10 tools, the server is well-scoped for assisting with Filament PHP development, covering key areas like documentation, components, commands, and planning. Each tool appears to serve a specific function without redundancy, making the count appropriate for the domain.
The tool set provides comprehensive coverage for Filament development tasks, including documentation retrieval, component management, and implementation planning. A minor gap is the lack of tools for creating or modifying Filament resources, such as generating code or updating components, which might limit full lifecycle support.
Maintenance
Related MCP Connectors
- FlowstepOAuthai.flowstep
Generate, inspect, and manage Flowstep UI designs directly from your AI assistant.
The documentation, as a tool your agent can call: 950+ AI-dev guides. Search + fetch tools.
Independent directory of agentic AI tools — search, compare & recommend via MCP. Read-only.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides AI assistants with direct access to Laravel documentation, coding rules, and implementation templates stored locally. It enables searching documentation, retrieving design system guides, and accessing domain-specific code examples to streamline Laravel development.8-
- AlicenseBqualityFmaintenanceProvides comprehensive tools for TailwindCSS development including utility class retrieval, CSS-to-Tailwind conversion, and color palette generation. It enables AI assistants to search documentation, generate component templates, and provide framework-specific installation guides.81,20639MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to incrementally build Laravel and Vue.js applications by creating file structures, methods, and code through natural conversation.501591MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to deeply interact with the PHP ecosystem, including runtime, static analysis, security scanning, testing, Composer, and frameworks like Laravel and Symfony. It exposes over 30 tools, 8 resources, and 7 prompts via MCP, allowing natural language commands to run PHP linting, static analysis, audits, tests, and project initialization.41MIT