Skip to main content
Glama
danielldt

FrameIO MCP Server

by danielldt

FrameIO MCP Server

Model Context Protocol (MCP) server for FrameIO module and plugin creation and validation. This server provides tools, resources, and prompts to help LLMs consistently build FrameIO modules and plugins.

Features

  • Code Generation: Generate complete module/plugin scaffolding and entity definitions

  • Validation: Validate module structure, code, and conventions

  • Examples: Access real-world examples from existing modules and plugins

  • Documentation: Comprehensive framework documentation and best practices

  • Guidance: Step-by-step prompts for module and plugin creation

Related MCP server: project-scaffold

Installation

cd tools/frameio-mcp
npm install
npm run build

Configuration

Cursor Configuration

Add to your Cursor MCP settings (.cursor/mcp.json or Cursor settings):

{
  "mcpServers": {
    "frameio": {
      "command": "node",
      "args": ["tools/frameio-mcp/dist/server.js"],
      "cwd": "."
    }
  }
}

VS Code / Other Clients

Configure your MCP client to run:

node tools/frameio-mcp/dist/server.js

Available Tools

1. generate_module

Generate complete module scaffolding.

Parameters:

  • moduleId (string, required): Kebab-case module identifier

  • displayName (string, required): Human-readable module name

  • description (string, required): Module description

  • entities (array, optional): Array of entity definitions

  • includeNavigation (boolean, default: true): Generate navigation items

  • includeCommands (boolean, default: true): Generate command palette entries

Returns: Complete module code structure including package.json, index.ts, tsconfig.json, and registry entry

2. generate_entity

Generate entity definition code.

Parameters:

  • entityKey (string, required): Format {module-id}.{entity-name}

  • name (string, required): Singular entity name

  • pluralName (string, required): Plural entity name

  • description (string, required): Entity description

  • fields (array, required): Array of field definitions

  • icon (string, optional): Lucide icon name

  • views (array, optional): View configurations

Returns: Complete entity definition code using defineEntity() builder

3. validate_module

Validate module structure and code.

Parameters (choose one mode):

  • Local: modulePath (string): Path to module directory (relative to the process cwd, usually the FrameIO repo root).

  • Remote / hosted MCP: files (object): Map of relative paths to UTF-8 file text. Must include at least package.json and src/index.ts. Optional moduleId if the package name is non-standard; optional registryContent with the full text of modules/.registry.ts to verify registration.

  • strict (boolean, default: false): Enable strict validation

Returns: Validation results with errors, warnings, and checks

4. get_example_module

Fetch example module source. If the MCP process has a FrameIO checkout, examples are read from modules/. Otherwise (e.g. Railway-hosted MCP) the server returns bundled samples (rewards, bom, calendar-demo).

Parameters:

  • moduleId (string, optional): Specific module to fetch

  • feature (string, optional): Specific feature (entities, navigation, commands, etc.)

  • pattern (string, optional): Pattern to match (e.g., "reference-field", "kanban-view")

Returns: Example code snippets from existing modules

5. validate_plugin

Validate plugin structure, route contract, and build contract.

Parameters:

  • pluginPath (string, required): Path to plugin directory (e.g. plugins/my-plugin)

  • strict (boolean, default: false): Enable strict validation

Returns: Validation results with checks for structure, exports, route contract (createRouter(deps), no registerRoutes), build contract (tsconfig.build.json), and registry

Available Resources

1. frameio://architecture

Design philosophy and platform architecture (canonical reference for modules and plugins):

  • Registration-based design; no domain in core

  • Modules vs plugins (strict split): modules = UI + metadata; plugins = API + UI + widget data

  • Core: generic only; permissions from registry; widget data from plugin providers only

  • Plugin route contract: createRouter(deps: PluginApiDeps); build contract: tsconfig.build.json, types from @frameio/sdk

Read this first when creating modules or plugins so generated code aligns with the platform.

2. frameio://framework-guide

Comprehensive framework documentation covering:

  • Module structure and conventions

  • Entity definition patterns

  • Field types and options

  • Navigation, commands, stat cards, quick links

  • Custom pages

  • Best practices

3. frameio://field-types

Complete reference of all available field types:

  • String, text, number, decimal fields

  • Boolean, date, datetime fields

  • Email, phone, URL fields

  • Select, multiselect fields

  • Reference, location fields

  • Currency, percentage, JSON fields

Each with options, validation rules, and examples.

4. frameio://examples/{module-id}

Example code from specific modules:

  • frameio://examples/pos-bom - BOM module example

  • frameio://examples/module-rewards - Comprehensive feature example

  • frameio://examples/pos-inventory - Inventory module example

5. frameio://best-practices

Best practices guide:

  • Naming conventions

  • Entity design patterns

  • Field selection guidelines

  • Module organization

  • Common patterns

Available Prompts

1. module_creation_guide

Step-by-step guidance for creating a new module.

Arguments:

  • moduleId (optional): Module ID

  • displayName (optional): Display name

  • description (optional): Description

2. entity_design_guide

Guidance for designing entities.

Arguments:

  • entityName (optional): Name of the entity

  • moduleId (optional): Module ID

3. validation_checklist

Checklist for validating a module.

Arguments:

  • moduleId (optional): Module ID to validate

Usage Examples

Generate a Module

Use the generate_module tool with:
- moduleId: "my-module"
- displayName: "My Module"
- description: "A sample module"

Generate an Entity

Use the generate_entity tool with:
- entityKey: "my-module.product"
- name: "Product"
- pluralName: "Products"
- description: "Product catalog items"
- fields: [
    { type: "string", key: "name", name: "Name", options: { required: true } },
    { type: "number", key: "price", name: "Price", options: { required: true } }
  ]

Validate a Module

Use the validate_module tool with:
- modulePath: "modules/my-module"
- strict: true

Validate a Plugin

Use the validate_plugin tool with:
- pluginPath: "plugins/my-plugin"
- strict: false

Validates structure, route contract (createRouter(deps), no registerRoutes), build contract (tsconfig.build.json), and registry.

Get Examples

Use the get_example_module tool with:
- pattern: "kanban-view"

Development

Building

npm run build

Development Mode

npm run dev  # Watch mode

Running

npm start

Project Structure

tools/frameio-mcp/
├── src/
│   ├── server.ts              # MCP server entry point
│   ├── tools/                 # Tool implementations
│   │   ├── generate-module.ts
│   │   ├── generate-entity.ts
│   │   ├── validate-module.ts
│   │   └── get-example-module.ts
│   ├── resources/             # Resource implementations
│   │   ├── framework-guide.ts
│   │   ├── field-types.ts
│   │   ├── examples.ts
│   │   └── best-practices.ts
│   ├── prompts/               # Prompt templates
│   │   ├── module-creation.ts
│   │   ├── entity-design.ts
│   │   └── validation-checklist.ts
│   └── utils/                  # Utility functions
│       ├── code-generator.ts
│       ├── validator.ts
│       └── example-loader.ts
├── package.json
├── tsconfig.json
└── README.md

Integration with FrameIO Framework

This MCP server integrates with:

  • Module Registry: Reads from modules/.registry.ts (auto-updated by CLI)

  • Plugin Registry: Reads from plugins/.registry.ts (auto-updated by CLI)

  • Existing Modules: Scans modules/ directory for examples

  • Existing Plugins: Scans plugins/ directory for examples (Data Orchestrator, OAuth, Integrations)

  • SDK Types: Uses types from platform/sdk/

  • CLI Tools: Leverages code from tools/frameio-cli/ (which auto-registers modules/plugins)

  • Dynamic Module/Plugin Loading: Modules and plugins are discovered and loaded at runtime

  • Storybook: Component development environment available at port 6006

  • Migration System: Versioned database migrations with rollback support

Plugin System

FrameIO includes a powerful plugin system that allows extending the platform's core functionality:

Built-in Plugins

Plugin

Description

data-orchestrator

Visual data flow builder for connecting modules and orchestrating data pipelines

oauth

OAuth authentication providers (Google, GitHub, Azure, etc.)

integration

Third-party API access management with client credentials or API keys

Plugin Capabilities

Plugins can:

  • Modify Core UI: Add items to sidebar, header, and login page

  • Register Routes: Create new pages within the application

  • Define Permissions: Introduce new permission keys for access control

  • Add Backend Logic: Register custom API endpoints and database tables

  • Theme Integration: Automatically adapt to light/dark themes

Plugin Structure

plugins/
├── .registry.ts          # Plugin registration
├── data-orchestrator/    # Visual data flow builder
│   ├── src/
│   │   ├── index.ts      # Plugin definition
│   │   ├── components/   # React components
│   │   └── types/        # TypeScript types
│   └── package.json
├── oauth/                # OAuth authentication
└── integration/          # Third-party integrations

Creating a Plugin

  1. Create directory: plugins/my-plugin/src

  2. Add package.json with @frameio/sdk dependency

  3. Create src/index.ts with plugin registration using createPlugin()

  4. Add components in src/components/

  5. Register in plugins/.registry.ts

  6. Run npm run dev - imports are auto-generated!

Troubleshooting

Module Not Found

If examples aren't loading:

  • Ensure modules exist in modules/ directory

  • Check that src/index.ts exists in each module

  • Verify file permissions

Plugin Not Found

If plugin examples aren't loading:

  • Ensure plugins exist in plugins/ directory

  • Check that src/index.ts exists in each plugin

  • Verify plugin is registered in plugins/.registry.ts

Validation Errors

If validation fails:

  • Check module structure matches conventions

  • Verify export names follow camelCase convention

  • Ensure entity keys follow format

  • Check registry entry exists

MCP Server Not Starting

If server won't start:

  • Verify Node.js version >= 20.0.0

  • Run npm install to install dependencies

  • Run npm run build to compile TypeScript

  • Check MCP client configuration

License

Part of the FrameIO framework.

Available Tools

22 tools
add_plugin_to_registryA

Add a plugin to plugins/.registry.ts and regenerate plugin-imports (apps/web plugin map). Use after generating a new plugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
pluginIdYesKebab-case plugin identifier (e.g. my-plugin)
importPathNoImport path for the plugin (default: ../../plugins/{pluginId}/src)
runGenerateNoRun npm run generate:plugin-imports after adding (default: true)

TDQS

A4/5.0
Behavior3/5

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 does disclose that the tool modifies a registry file and runs a generate command, which are the primary actions. However, it does not mention idempotency, overwriting behavior, failure modes (e.g., if the plugin already exists), or any side effects on existing entries. For a mutation tool, this is a moderate gap that a 3 reflects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero redundancy. It front-loads the primary action and purpose, then adds the usage context. Every word earns its place, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward registration step with three parameters (one required), the description covers the essential context: what the tool does and when to use it. It does not explain potential edge cases like existing registry entries or the exact output of the generate command, but given the simplicity and lack of an output schema, these are minor omissions. The description is adequate for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so each parameter is already documented in the schema. The tool description adds minimal extra semantics—it does not clarify relationships between parameters or any special constraints beyond what the schema provides. Given the high schema coverage, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add a plugin to plugins/.registry.ts'), the resource ('plugins/.registry.ts'), and the secondary action ('regenerate plugin-imports'). It also ties usage to a specific workflow ('Use after generating a new plugin'), which differentiates it from sibling tools like generate_plugin. The purpose is unambiguous and well-scoped.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit timing guidance ('Use after generating a new plugin'), which tells the agent when this tool is appropriate. It does not explicitly list when not to use it or name alternatives, but the sibling context and the workflow reference make the usage context clear. A more detailed exclusion would improve it, but it is already helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_moduleC

Analyze module for issues, unused code, missing relationships, and best practice violations

ParametersJSON Schema
NameRequiredDescriptionDefault
checksNoSpecific checks to run (optional, runs all by default)
modulePathYesPath to module directory (relative to project root)

TDQS

C2.9/5.0
Behavior2/5

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 does not state whether the tool is read-only, what kind of report it returns, whether it modifies files, or how results are presented. The word 'analyze' hints at non-destructive behavior, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that names the action and resource before listing specifics. It is concise and free of filler, though the word 'issues' is somewhat redundant with the enumerated categories.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should explain what the agent receives after calling the tool and clarify side effects or limitations. It does neither, leaving the agent to guess about return format, check names, and whether the operation is safe to run.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both modulePath and checks. The description adds no parameter-level detail beyond the schema, which is acceptable given full coverage, but it also does not enrich the meaning of the 'checks' values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Analyze') and resource ('module') and enumerates concrete focus areas: issues, unused code, missing relationships, and best practice violations. However, it does not distinguish itself from the sibling tool validate_module, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use analyze_module versus validate_module, fix_module, or other siblings. The description implies the tool is for analysis but does not state conditions, exclusions, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_dependenciesC

Check for dependency conflicts, version mismatches, and missing packages

ParametersJSON Schema
NameRequiredDescriptionDefault
modulePathYesPath to module directory
checkOutdatedNoCheck for outdated packages (default: false)
checkPeerDepsNoCheck peer dependencies (default: true)

TDQS

C2.9/5.0
Behavior2/5

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 lists what is checked (conflicts, mismatches, missing packages) and does not state whether the tool modifies anything, what the output/report format looks like, or whether it performs network calls. The verb 'Check' implies read-only but is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of 10 words that front-loads the purpose and contains no redundancy. It is appropriately concise, but could have included a brief note about output or usage context without becoming bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should explain the return type or what constitutes a successful check. It does not. An agent knows the tool checks dependencies but cannot predict what result is produced, such as a report, a boolean pass/fail, or a list of problems. For a tool with 3 parameters, the description is thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains modulePath, checkOutdated, and checkPeerDeps. The description does not add any extra meaning to the parameters beyond the schema. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Check for dependency conflicts, version mismatches, and missing packages.' This clearly identifies the tool's purpose. However, it does not explicitly differentiate it from sibling tools like validate_module, so 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like validate_module or analyze_module. The description merely states what it does, leaving the agent to infer when to invoke it. There are no exclusions, prerequisites, or contextual cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fix_moduleC

Auto-fix common module issues like naming conventions, imports, and exports

ParametersJSON Schema
NameRequiredDescriptionDefault
fixesNoSpecific fixes to apply (optional, applies all by default)
dryRunNoPreview changes without applying (default: true)
modulePathYesPath to module directory

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. 'Auto-fix' does imply modification, but the description is silent on side effects, safety, reversibility, or the fact that dryRun is available. It does not tell the agent whether running the tool will rewrite files in place or just report planned changes, which is critical for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise, front-loaded one-liner that gives the core action and scope. It avoids redundancy, but it also leaves out useful context and reads more like a high-level summary than a tool-use guide.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a mutation-like fix tool with no annotations or output schema. The description does not disclose side effects, failure modes, what happens when dryRun is false, or what the agent should do after validation. This leaves the agent missing key non-structural information needed to use the tool safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even though the description adds no direct parameter explanations. The mention of naming conventions, imports, and exports adds slight, indirect context to the `fixes` parameter, but the schema itself already explains the parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb with resource ('Auto-fix module issues') and names concrete categories (naming conventions, imports, exports), making the tool's purpose clear. It does not explicitly contrast with sibling tools like validate_module or analyze_module, so it gets a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance or mention of alternatives such as validate_module or analyze_module. The phrase 'common module issues' implies a use case, but the description never states when a module should be fixed versus validated or generated, so usage guidance is weak.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_api_endpointC

Generate custom API endpoints with Express route handlers and Swagger documentation

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYesHTTP method
moduleIdYesModule ID (kebab-case)
descriptionYesEndpoint description
handlerNameYesHandler function name (camelCase)
permissionsNoRequired permissions (optional)
endpointPathYesAPI endpoint path (e.g., /process-payment)
requestSchemaNoRequest body schema (optional)
responseSchemaNoResponse schema (optional)

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states 'Generate', which implies creation but does not mention side effects like file modifications, potential overwrites, or whether it is additive. This is a significant gap for a tool with such a broad scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no filler. It front-loads the core purpose. However, given the tool's complexity, a slightly more structured format (e.g., bullet points) could aid scannability, but as written it is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters (5 required), nested objects, and no output schema, this description is severely inadequate. It does not explain what the generated endpoint will contain, how to structure the schemas, or any dependencies or side effects. The agent would have to rely entirely on parameter names and schemas, which is insufficient for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any meaning beyond what the schema already provides for each parameter, such as formatting, relationships, or usage context. It neither enhances nor detracts from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Generate') and resource ('custom API endpoints') and adds context about Express route handlers and Swagger documentation. It distinguishes itself from sibling generation tools like generate_module or generate_entity by specifying 'API endpoints', though it does not explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus other generation tools. There is no mention of prerequisites, conditions, or alternative tools, leaving the agent to infer applicability from the resource type alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_documentationB

Auto-generate README.md and API documentation for a module

ParametersJSON Schema
NameRequiredDescriptionDefault
modulePathYesPath to module directory
outputTypeNoDocumentation type to generatereadme

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing side effects. It mentions 'auto-generate' but does not state whether files are overwritten, if permissions are needed, or any other behavioral implications of writing documentation files. This is a significant gap for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the purpose. Every word is relevant and there is no wasted information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, no annotations, and likely performs file writes, the description lacks critical details such as output location, overwrite behavior, and return values. An agent cannot fully anticipate the tool's effects without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters, so the description adds no additional meaning beyond the schema. The baseline of 3 applies since the schema already documents modulePath and outputType adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates README.md and API documentation for a module, using a specific verb and resource. It distinguishes itself from sibling generate_* tools by focusing on documentation outputs rather than code or module scaffolding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for generating documentation for a module, but does not explicitly state when to use it versus alternatives like generate_module or analyze_module. There is no exclusionary guidance or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_entityC

Generate entity definition code using defineEntity() builder

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNoLucide icon name (optional)
nameYesSingular entity name
viewsNoView configurations (table, kanban, etc.)
fieldsYesArray of field definitions
entityKeyYesEntity key in format {module-id}.{entity-name}
pluralNameYesPlural entity name
descriptionYesEntity description

TDQS

C2.8/5.0
Behavior2/5

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 that code is generated, but does not say whether this writes files, returns source text, mutates project state, or requires particular permissions. The mention of defineEntity() hints at the output style but gives no side-effect or safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler words. It is appropriately brief for a one-line purpose statement, though it could easily have added usage or behavior context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has 7 parameters, 5 required, no output schema, and no annotations, but the description offers no information about field structures, view configurations, icon semantics, or expected return format. An agent would lack critical guidance for correctly constructing a valid call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage of all 7 parameters, so the baseline is 3. The description does not add parameter-level meaning beyond the schema, and the builder name gives only a slight hint about how parameters might be combined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Generate') and resource ('entity definition code') and names the builder 'defineEntity()', which is not a tautology. However, it does not explicitly distinguish itself from sibling tools like generate_module or generate_page, though 'entity' and the builder name provide clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus generate_module, validate_module, or other sibling generators by name. It also does not mention prerequisites, contexts (e.g., an existing module), or cases where another tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_hookC

Generate custom React hooks with SDK integration

ParametersJSON Schema
NameRequiredDescriptionDefault
hookNameYesHook name (must start with "use", e.g., useOrderStatistics)
moduleIdYesModule ID (kebab-case)
parametersNoHook parameters (optional)
returnTypeYesTypeScript return type
descriptionYesHook description
usesSDKHooksNoSDK hooks to use (optional)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the action and target, but doesn't mention side effects (e.g., file creation), permissions required, output format, or reversibility. This is insufficient for an agent to know what happens when the tool is invoked, so a 2.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise and front-loaded. However, it's so brief that it omits critical context, making it under-specified rather than appropriately concise. It does not waste words, but it lacks structure and useful details, so a 3.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has 6 parameters, 4 required, and no output schema. The description provides only the core purpose and gives no information about expected outcomes, return types, or the generation process. Given the complexity and lack of output schema, the description is incomplete and would leave an agent uncertain about what to expect, so a 2.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameters with descriptions, so the schema does the heavy lifting. The description itself doesn't add any parameter-specific meaning beyond what's already in the schema. Given 100% schema coverage, the baseline is 3, and the description adds no extra value, so a 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates custom React hooks and mentions SDK integration, giving a specific verb and resource. However, it doesn't distinguish from sibling generation tools like generate_entity or generate_page, though the resource type is distinct. This is clear but not fully differentiated, so a 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like generate_entity or generate_page. The description doesn't mention any conditions or exclusions, leaving the agent to infer usage from the name alone. This is a significant gap, so a 2.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_migrationC

Generate database migration scripts for schema changes

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYesArray of schema changes
migrationNameYesMigration name in snake_case (e.g., add_discount_to_products)

TDQS

C2.8/5.0
Behavior2/5

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 that it generates scripts but does not explain side effects, return format, whether changes are applied, or any execution requirements. This is a significant gap for a tool that likely produces files or output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence without redundant words. However, it is so brief that it omits crucial details about usage, output, and constraints, making it under-specified rather than appropriately sized. Conciseness without informativeness warrants a mid score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the nested structure of the changes parameter and the absence of an output schema, the description is incomplete. It does not explain how changes should be structured beyond the schema, what the generated script contains, or any limitations. An agent would lack essential context to correctly use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters have descriptions in the schema. The tool description adds no parameter-specific context beyond the schema, which already explains migrationName naming and changes as an array of changes. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates database migration scripts for schema changes, with a specific verb and resource. It does not differentiate from sibling generate_plugin_migration, but the scope is clear enough for basic selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like generate_plugin_migration. The description offers no context about scenarios, prerequisites, or conditions that would favor this tool over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_moduleB

Generate complete module scaffolding with package.json, index.ts, tsconfig.json, and registry entry

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesNoArray of entity definitions (optional)
moduleIdYesKebab-case module identifier (e.g., my-module)
descriptionYesModule description
displayNameYesHuman-readable module name (e.g., My Module)
includeCommandsNoGenerate command palette entries (default: true)
includeNavigationNoGenerate navigation items (default: true)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description must bear the full burden of disclosing behavioral traits. It does not mention that generating a module will create files on disk, whether it overwrites existing content, or if it requires a initialized project. This leaves the agent unaware of potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary purpose and lists concrete outputs. There is no filler or redundant information; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a scaffolding tool that generates multiple files and a registry entry, the description omits crucial operational context such as the target directory, overwrite behavior, and any required project setup. With no annotations or output schema, an agent cannot anticipate the tool's side effects or confirm a successful invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with descriptions for all parameters, so the description adds no additional semantic value beyond the schema. It correctly avoids redundancy, but it also does not clarify relationships between parameters (e.g., how includeCommands interacts with moduleId).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Generate') and a precise resource ('module scaffolding') while enumerating the exact deliverables (package.json, index.ts, tsconfig.json, registry entry). This makes the tool's intent unambiguous and clearly distinguishes it from siblings like generate_entity or generate_workflow, which target different artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no provision of when to use this tool versus alternatives such as generate_plugin or generate_page. The description merely states what the tool does without any context about project structure, prerequisites, or scenarios where a different generator would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_navigationB

Generate navigation sections and items for sidebar and mobile navigation

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesNavigation items
sectionNoNavigation section (optional)
moduleIdYesModule ID (kebab-case)

TDQS

B3.1/5.0
Behavior2/5

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 only says 'generate' without indicating whether this modifies existing navigation, requires specific permissions, or has side effects. The description fails to disclose any behavioral traits beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is concise and to the point, though it could be more informative. The structure is clean and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested objects, no output schema, no annotations), the description is inadequate. It lacks information about return values, side effects, prerequisites, or any operational context that would help an agent use it correctly. The description is too sparse to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all top-level parameters (moduleId, items, section) with basic descriptions, so the baseline is 3. However, the description adds no additional meaning about parameters, and nested item properties (key, label, icon, etc.) lack descriptions. The description does not compensate for the nested object complexity, but the schema provides minimal guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates navigation sections and items for sidebar and mobile navigation. This is a specific verb and resource, and it distinguishes itself from sibling tools that focus on modules, pages, widgets, etc. There is no ambiguity about the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, nor does it mention prerequisites or exclusion scenarios. It simply states what it does without any contextual direction, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_pageC

Generate custom page components with SDK integration and routing

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNoLucide icon name (optional)
pathYesRoute path for the page (e.g., /sales/dashboard)
pageKeyYesPage key identifier (e.g., sales-dashboard)
moduleIdYesModule ID (kebab-case)
pageNameYesDisplay name for the page (e.g., Sales Dashboard)
permissionNoPermission required to view page (optional)
descriptionNoPage description (optional)
componentNameYesReact component name (PascalCase, e.g., SalesDashboard)

TDQS

C2.9/5.0
Behavior2/5

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 disclosure. 'Generate' implies creation, but the description does not disclose what side effects occur — file writes, route registration, SDK modifications, or whether the operation is reversible. Nothing is disclosed beyond the literal action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the verb and resource, and no wasted words. It earns its place, though brevity trades away the behavioral context that other dimensions already penalize.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, 5-required code-generation tool with no annotations and no output schema, a single sentence is thin. It omits preconditions (does the module already exist?), what gets created or modified on disk, and how the agent can verify success. The schema covers parameters, but the generation workflow itself is left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 8 parameters already have meaningful descriptions in the schema. The description's 'SDK integration and routing' loosely maps to moduleId/path, but it adds no per-parameter value beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Generate') and resource ('custom page components') and the qualifiers 'with SDK integration and routing' add useful scope. It is distinguishable from generate_entity or generate_migration, though it does not explicitly delimit itself from close siblings like generate_widget or generate_navigation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus generate_widget, generate_navigation, or generate_workflow, despite 22 sibling tools. No prerequisites are mentioned (e.g., whether an existing module is required) and no when-not-to-use conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_pluginB

Generate complete plugin scaffolding with package.json, index.ts, tsconfig.json, migrations, routes, and registry entry

ParametersJSON Schema
NameRequiredDescriptionDefault
authorNoPlugin author (optional, default: FrameIO Developer)
tablesNoTable definitions for migrations (optional, generates default items table if empty)
pluginIdYesKebab-case plugin identifier (e.g., my-plugin)
descriptionYesPlugin description
displayNameYesHuman-readable plugin name (e.g., My Plugin)
permissionsNoCustom permissions (optional, defaults to read/manage)
includeRoutesNoGenerate backend route file (default: true)
includeMigrationsNoGenerate database migration file (default: true)
includeBackgroundWorkersNoGenerate startBackgroundWorkers stub for scheduled jobs, event handlers, or escalation logic (default: false)

TDQS

B3.3/5.0
Behavior2/5

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 says 'Generate complete plugin scaffolding' without disclosing side effects such as file creation, potential overwriting of existing files, or whether it writes to the registry directly (though it mentions 'registry entry'). For a scaffolding tool that creates multiple files, the lack of information about idempotency or destructive behavior is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose and lists all major outputs. There is no redundant information or unnecessary detail. Every word contributes to conveying what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the main artifacts, it omits important context for a tool with 9 parameters and no output schema. It does not explain what the generated scaffolding looks like, whether it creates files in the current directory, or how it interacts with the registry (does it automatically register, or is that a separate step via add_plugin_to_registry?). Given the complexity and lack of annotations, the description is minimally adequate but leaves room for an agent to misunderstand the workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so each parameter is already documented with clear descriptions. The tool description adds no additional meaning beyond listing the generated artifacts. It does not, for example, explain how the 'tables' parameter maps to migrations or how 'includeRoutes' affects the output. The baseline of 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates complete plugin scaffolding and lists the specific artifacts (package.json, index.ts, tsconfig.json, migrations, routes, registry entry). This distinguishes it from sibling tools like generate_plugin_migration (which only handles migrations) and add_plugin_to_registry (which only registers). The verb 'Generate' plus the resource 'plugin scaffolding' is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 that this tool creates the full plugin scaffold and that other tools like generate_plugin_migration or validate_plugin might be used in sequence. An agent is left to infer usage context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_plugin_migrationA

Generate a new database migration for a specific plugin with table definitions

ParametersJSON Schema
NameRequiredDescriptionDefault
tablesYesArray of table definitions to create
versionYesMigration version (e.g., 1.1.0)
pluginIdYesKebab-case plugin identifier (e.g., my-plugin)
descriptionYesDescription of the migration (e.g., Add settings table)

TDQS

A3.6/5.0
Behavior2/5

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 only says 'Generate a new database migration' without revealing side effects (e.g., file creation, overwriting existing migrations, validation requirements), whether the plugin must already exist, or any idempotency guarantees. This is a significant gap for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence with zero redundancy. It front-loads the core action and resource, and the qualifier is concise. Every word earns its place, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, yet the description fails to mention what the tool returns or produces (e.g., a file path, a success message), or any prerequisites like plugin existence. For a generator with side effects, this is incomplete—an agent cannot anticipate the tool's behavior beyond the vague 'generate'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters already have descriptions in the schema. The tool description itself adds no additional semantic detail beyond the schema, such as constraints or relationships. Baseline 3 is appropriate given the high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate'), a resource ('database migration'), and a qualifier ('for a specific plugin'), clearly distinguishing it from the sibling 'generate_migration' which likely targets general migrations. The mention of 'table definitions' further clarifies the scope. This is unambiguous and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for a specific plugin' provides clear context that this tool is intended when working with a plugin, implying a distinction from generic migration generation. However, it does not explicitly name the alternative (e.g., generate_migration) or state when not to use it. Thus, it has clear context but no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_seed_dataC

Generate seed data scripts for development and testing

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYesEntity seed configurations
moduleIdYesModule ID (kebab-case)
tenantIdNoTenant ID for seed data (default: default)default

TDQS

C2.9/5.0
Behavior2/5

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 that the tool generates seed data scripts, giving no insight into side effects, return values, file output, or any behavioral nuances. For a complex tool with nested configurations, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that gets straight to the point. There is no wasted wording, and the core purpose is front-loaded. It earns full marks for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters, including a complex nested structure for entities, and no output schema or annotations. The description provides no information about how the generated scripts behave, what the output looks like, or how relationships are handled. It is far too minimal for the complexity of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters (moduleId, tenantId, entities) have descriptions in the schema itself. The description adds no extra parameter semantics, so a baseline of 3 is appropriate since the schema already documents them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Generate) and the resource (seed data scripts) with a purpose (for development and testing). It is specific enough to distinguish from other generation tools, though it doesn't explicitly differentiate from siblings like generate_entity or generate_migration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. There is no mention of when not to use it, prerequisites, or context in which it's appropriate. The tool name implies usage, but the description provides no explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_storybook_storyC

Generate Storybook stories for component documentation

ParametersJSON Schema
NameRequiredDescriptionDefault
propsNoComponent props for argTypes
categoryNoStorybook category (default: Components)
componentNameYesComponent name (PascalCase)
componentPathYesImport path for the component

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It fails to disclose any behavioral traits such as side effects, required context, output format, or limitations. The single sentence adds no information beyond the tool's purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, which is good, but it lacks substance. It is a single sentence that conveys only the basic purpose, and while it is front-loaded, it does not earn its place by adding value beyond the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has four parameters, no output schema, and no annotations, the description is inadequate. It does not explain the expected outcome, any prerequisites, or how the parameters influence the result, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters. The description adds no additional meaning or nuance beyond what the schema provides, resulting in the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate') and resource ('Storybook stories') with a clear purpose ('for component documentation'). It is clear and distinct enough from siblings like generate_documentation, though it doesn't explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, nor any exclusions or context. It simply states what it does without advising on appropriate scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_testB

Generate Vitest test files for modules, entities, workflows, pages, or widgets

ParametersJSON Schema
NameRequiredDescriptionDefault
testTypeYesType of test to generate
targetKeyNoTarget key (entity key, workflow key, page key, or widget key)
modulePathYesPath to module directory

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It only states that it generates test files, without disclosing side effects (e.g., file writes/overwrites), prerequisites (e.g., existing module structure), or failure modes. This is insufficient for a tool that likely mutates the filesystem.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It efficiently communicates the core action and scope, earning its place without redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sparse for a generation tool with three parameters and no output schema. It does not explain when targetKey is required, how test files are named, or which test framework versions are targeted. The inclusion of 'modules' in the description but not the enum introduces ambiguity. Given the absence of annotations and output schema, this is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions cover all parameters (100% coverage), so the baseline is 3. The description adds no extra meaning beyond the schema; it merely echoes the enum values. The mismatch where 'modules' appears in the description but not in the testType enum is a minor semantic gap not addressed in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate') and resource ('Vitest test files') and enumerates the target types (modules, entities, workflows, pages, widgets). This clearly distinguishes it from sibling tools that generate the actual artifacts (e.g., generate_entity, generate_widget) rather than their tests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating test files but does not explicitly contrast with alternatives or state when not to use it. With many sibling generate_* tools, a clearer routing statement (e.g., 'use this for test files, not the artifact itself') would improve agent selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_widgetC

Generate dashboard widget definitions (stat, table, list, chart, or custom)

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleIdYesModule ID (kebab-case)
entityKeyNoEntity key for data binding (optional)
widgetKeyYesWidget key in format {module-id}.{widget-name}
widgetNameYesWidget display name
widgetTypeYesWidget type
descriptionYesWidget description
permissionsNoRequired permissions (optional)
propsSchemaNoWidget props schema (optional)
defaultPropsNoDefault prop values (optional)
componentNameNoCustom component name for custom widgets (optional)

TDQS

C2.6/5.0
Behavior1/5

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 only says 'Generate' without specifying side effects (e.g., file creation, project modifications), return value, error conditions, or permissions needed. This is a significant gap for a tool that likely mutates the codebase.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, terse sentence with no fluff, but it is under-specified rather than concise. It omits crucial context that a one-line description could still convey, such as the required parameters or the output format. Under-specification is not conciseness, so this scores low.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, nested objects, and no output schema, this description is grossly incomplete. It does not explain what a widget definition entails, how parameters interact, what the generated artifact looks like, or any dependencies. An agent cannot safely invoke this tool without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 10 parameters. The description adds minimal extra meaning by listing the widget types, which are also in the enum. Since the schema covers everything, a baseline of 3 is appropriate; the description does not introduce new parameter context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Generate') and a specific resource ('dashboard widget definitions'), and lists the widget types it covers. This distinguishes it from sibling tools like generate_module or generate_page, which target different artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus the many sibling generation tools. It does not mention any conditions, prerequisites, or alternative tools for related tasks (e.g., generating pages or modules). An agent would have to infer applicability solely from the widget-specific wording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_workflowB

Generate workflow definitions with states, transitions, and approvals using defineWorkflow() builder

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWorkflow display name
statesYesArray of workflow states
entityKeyYesEntity key this workflow applies to (e.g., pos.order)
descriptionYesWorkflow description
statusFieldYesField name that stores the workflow status (e.g., status)
transitionsYesArray of state transitions
workflowKeyYesWorkflow key in format {module-id}.{workflow-name} (e.g., pos.order-approval)

TDQS

B3.1/5.0
Behavior2/5

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 says 'Generate workflow definitions' and mentions the builder, but doesn't disclose side effects (e.g., file creation, modification, validation) or error behavior. This is a significant gap for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with no redundancy, and the action is front-loaded. However, it is minimal to the point of omitting essential context, so it doesn't earn a top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 required parameters, nested objects, and no output schema, the description should clarify what the tool returns, any validation rules, or examples. It only mentions the builder, leaving agents without enough context to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 7 parameters are described in the schema. The description adds no extra meaning beyond the schema, which is adequate per the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Generate') and resource ('workflow definitions'), and names the builder method. Clearly distinct from sibling tools like generate_module or generate_entity, which target different artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the many other generate_* siblings, nor any prerequisites or conditions. The description only states what it does, not when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_example_moduleC

Fetch example code from existing modules

ParametersJSON Schema
NameRequiredDescriptionDefault
featureNoSpecific feature (entities, navigation, commands, etc.)
patternNoPattern to match (e.g., reference-field, kanban-view)
moduleIdNoSpecific module to fetch (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. 'Fetch' weakly implies a read-only operation, but nothing is said about potential side effects, latency, dependencies between parameters, response format, or error conditions. For a tool with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence is efficiently written and contains no filler. It is appropriately sized relative to the tool's simplicity, though the lack of any additional context makes it feel under-specified rather than intentionally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three optional parameters, no output schema, and no annotations, the description should explain what the agent receives, what 'example code' entails, or how the examples relate to the parameters, but it does not. This is adequate for a trivial tool but incomplete for a real integration in a code-generation suite.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters' meanings are already provided in the schema. The description adds no additional semantic nuance about feature, pattern, or moduleId beyond what the schema gives. Baseline 3 is appropriate because the schema does all the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Fetch example code from existing modules' names a specific verb and resource, clearly identifying it as a retrieval tool for code examples. It distinguishes itself from the sibling generator tools (generate_module, generate_entity, etc.) by emphasizing 'existing modules' rather than creation, though it does not explicitly name any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. With 21 siblings covering generation, validation, and analysis, an agent would need explicit direction about when to fetch examples but gets none.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_moduleA

Validate module structure, code, and conventions. Use modulePath when the MCP runs with cwd at the FrameIO repo root. Use files (package.json + src/index.ts contents) when the MCP is remote or cannot read your disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoRemote mode: map of relative file path to UTF-8 contents. Must include package.json and src/index.ts.
strictNoEnable strict validation (default: false)
moduleIdNoOptional kebab-case id when using files; inferred from package.json name @frameio/<id> if omitted.
modulePathNoPath to module directory (relative to project root). Omit when using files.
registryContentNoOptional full text of modules/.registry.ts for registration check when the MCP host has no copy.

TDQS

A3.7/5.0
Behavior2/5

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 that the tool 'validates' and describes the two input modes, but gives no information about what validation checks are performed, whether it is read-only (likely, but not stated), what the return value looks like, or any error behavior. For a tool with zero annotations, this is a significant gap. The description does not contradict annotations (none exist), but it fails to disclose behavioral traits beyond the mode selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste. The purpose is stated first, followed by the mode-selection guidance. It is front-loaded and efficient. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, a nested object, no output schema, and no annotations. The description covers how to call it (the two modes) but does not explain what the validation result looks like, what criteria are used, or how errors are surfaced. Since there is no output schema, the description should at least hint at the return structure or behavior. It is adequate for basic invocation but incomplete for an agent to fully understand the outcome. Given the complexity, a 3 is fair.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all five parameters with descriptions. The tool description adds a brief context for modulePath vs files usage, and the schema itself already covers the moduleId inference. The description adds marginal value beyond the schema, such as clarifying the 'remote mode' for files, but it does not introduce new meaning for the parameters. Baseline 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Validate module structure, code, and conventions') and clarifies the two input modes (modulePath vs files). It does not explicitly differentiate from sibling tools like analyze_module or fix_module, but the verb 'validate' and the mention of 'conventions' gives it a distinct identity. The purpose is clear enough for an agent to recognize what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit, actionable guidance: 'Use modulePath when the MCP runs with cwd at the FrameIO repo root. Use files (package.json + src/index.ts contents) when the MCP is remote or cannot read your disk.' This clearly tells an agent when to choose each mode, which is exactly what usage guidelines should provide. It does not mention alternatives like analyze_module, but the mode selection is fully covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_pluginC

Validate plugin structure, route contract (createRouter(deps)), build contract (tsconfig.build.json), and registry

ParametersJSON Schema
NameRequiredDescriptionDefault
strictNoEnable strict validation (default: false)
pluginPathYesPath to plugin directory (relative to project root, e.g. plugins/my-plugin)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It only says 'Validate' with no disclosure of side effects, whether it is read-only, what happens on invalid input, or what the output format is. This is a significant gap for a tool that likely returns a validation report.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence listing the validation targets. It is front-loaded and contains no fluff, though it could be slightly more structured by separating the list into bullet points for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description should explain what the validation returns (success/failure, error details) and how the 'strict' flag changes behavior. It doesn't cover these, leaving an agent without enough information to interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds no extra meaning beyond the schema—it lists validation areas but doesn't explain how 'strict' affects them or how pluginPath is interpreted. Baseline 3 applies since the schema handles the documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates a plugin and enumerates specific aspects: structure, route contract, build contract, and registry. It distinguishes the target resource (plugin) from sibling validate_module, though it doesn't explicitly call out that distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (validate a plugin) but provides no explicit guidance on when to choose this over validate_module or other sibling tools like generate_plugin or add_plugin_to_registry. No exclusions or alternatives are mentioned.

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. Dates show when Glama detected each change.

  1. 22 tool updatesv1.0.0
    • First observedadd_plugin_to_registry
    • First observedanalyze_module
    • First observedcheck_dependencies
    • First observedfix_module
    • First observedgenerate_api_endpoint
    • First observedgenerate_documentation
    • First observedgenerate_entity
    • First observedgenerate_hook
    • First observedgenerate_migration
    • First observedgenerate_module
    • First observedgenerate_navigation
    • First observedgenerate_page
    • First observedgenerate_plugin
    • First observedgenerate_plugin_migration
    • First observedgenerate_seed_data
    • First observedgenerate_storybook_story
    • First observedgenerate_test
    • First observedgenerate_widget
    • First observedgenerate_workflow
    • First observedget_example_module
    • First observedvalidate_module
    • First observedvalidate_plugin

TDQS

B3.3/5.0
Disambiguation5/5

Each tool targets a specific artifact (module, entity, workflow, page, widget, navigation, migration, test, API endpoint, hook, storybook, documentation, seed data, plugin, plugin migration) or action (validate, analyze, fix, check, add). Even similar generate tools like generate_migration and generate_plugin_migration are clearly differentiated by scope, and descriptions clarify any overlap.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case, e.g., generate_module, validate_plugin, analyze_module, fix_module, check_dependencies. The verbs are descriptive and uniform, making the set predictable and easy to navigate.

Tool Count3/5

At 22 tools, this is above the ideal 3-15 range, making it a heavy set. However, the breadth is justified by the server's comprehensive scope (generation, validation, analysis, and maintenance for modules and plugins). It is not excessive enough to be chaotic, but agents may need more careful selection.

Completeness4/5

The tool set covers the full lifecycle of generating and validating modules, plugins, and various components, including tests, documentation, migrations, and seed data. Minor gaps exist, such as lack of update/delete operations for existing code, but the server's primary purpose is generation and validation, which is well-served. The inclusion of analyze and fix tools adds robustness.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielldt/frameio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server