FrameIO MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FrameIO MCP Server generate a module for managing tasks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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: Dynamic MCP Server
Installation
cd tools/frameio-mcp
npm install
npm run buildConfiguration
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.jsAvailable Tools
1. generate_module
Generate complete module scaffolding.
Parameters:
moduleId(string, required): Kebab-case module identifierdisplayName(string, required): Human-readable module namedescription(string, required): Module descriptionentities(array, optional): Array of entity definitionsincludeNavigation(boolean, default: true): Generate navigation itemsincludeCommands(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 namepluralName(string, required): Plural entity namedescription(string, required): Entity descriptionfields(array, required): Array of field definitionsicon(string, optional): Lucide icon nameviews(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 leastpackage.jsonandsrc/index.ts. OptionalmoduleIdif the package name is non-standard; optionalregistryContentwith the full text ofmodules/.registry.tsto 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 fetchfeature(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 exampleframeio://examples/module-rewards- Comprehensive feature exampleframeio://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 IDdisplayName(optional): Display namedescription(optional): Description
2. entity_design_guide
Guidance for designing entities.
Arguments:
entityName(optional): Name of the entitymoduleId(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: trueValidate a Plugin
Use the validate_plugin tool with:
- pluginPath: "plugins/my-plugin"
- strict: falseValidates 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 buildDevelopment Mode
npm run dev # Watch modeRunning
npm startProject 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.mdIntegration 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 examplesExisting 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 |
| Visual data flow builder for connecting modules and orchestrating data pipelines |
| OAuth authentication providers (Google, GitHub, Azure, etc.) |
| 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 integrationsCreating a Plugin
Create directory:
plugins/my-plugin/srcAdd
package.jsonwith@frameio/sdkdependencyCreate
src/index.tswith plugin registration usingcreatePlugin()Add components in
src/components/Register in
plugins/.registry.tsRun
npm run dev- imports are auto-generated!
Troubleshooting
Module Not Found
If examples aren't loading:
Ensure modules exist in
modules/directoryCheck that
src/index.tsexists in each moduleVerify file permissions
Plugin Not Found
If plugin examples aren't loading:
Ensure plugins exist in
plugins/directoryCheck that
src/index.tsexists in each pluginVerify 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 installto install dependenciesRun
npm run buildto compile TypeScriptCheck MCP client configuration
License
Part of the FrameIO framework.
Available Tools
22 toolsadd_plugin_to_registryA
Add a plugin to plugins/.registry.ts and regenerate plugin-imports (apps/web plugin map). Use after generating a new plugin.
Inputs: pluginId (required), importPath, runGenerate.
analyze_moduleC
Analyze module for issues, unused code, missing relationships, and best practice violations
Inputs: modulePath (required), checks.
check_dependenciesC
Check for dependency conflicts, version mismatches, and missing packages
Inputs: modulePath (required), checkOutdated, checkPeerDeps.
fix_moduleC
Auto-fix common module issues like naming conventions, imports, and exports
Inputs: modulePath (required), fixes, dryRun.
generate_api_endpointC
Generate custom API endpoints with Express route handlers and Swagger documentation
Inputs: method (required), moduleId (required), description (required), handlerName (required), +4 more.
generate_documentationB
Auto-generate README.md and API documentation for a module
Inputs: modulePath (required), outputType.
generate_entityC
Generate entity definition code using defineEntity() builder
Inputs: name (required), fields (required), entityKey (required), pluralName (required), +3 more.
generate_hookC
Generate custom React hooks with SDK integration
Inputs: hookName (required), moduleId (required), returnType (required), description (required), +2 more.
generate_migrationC
Generate database migration scripts for schema changes
Inputs: changes (required), migrationName (required).
generate_moduleB
Generate complete module scaffolding with package.json, index.ts, tsconfig.json, and registry entry
Inputs: moduleId (required), description (required), displayName (required), entities, +2 more.
generate_pageC
Generate custom page components with SDK integration and routing
Inputs: path (required), pageKey (required), moduleId (required), pageName (required), +4 more.
generate_pluginB
Generate complete plugin scaffolding with package.json, index.ts, tsconfig.json, migrations, routes, and registry entry
Inputs: pluginId (required), description (required), displayName (required), author, +5 more.
generate_plugin_migrationA
Generate a new database migration for a specific plugin with table definitions
Inputs: tables (required), version (required), pluginId (required), description (required).
generate_seed_dataC
Generate seed data scripts for development and testing
Inputs: entities (required), moduleId (required), tenantId.
generate_storybook_storyC
Generate Storybook stories for component documentation
Inputs: componentName (required), componentPath (required), props, category.
generate_testB
Generate Vitest test files for modules, entities, workflows, pages, or widgets
Inputs: testType (required), modulePath (required), targetKey.
generate_widgetC
Generate dashboard widget definitions (stat, table, list, chart, or custom)
Inputs: moduleId (required), widgetKey (required), widgetName (required), widgetType (required), +6 more.
generate_workflowB
Generate workflow definitions with states, transitions, and approvals using defineWorkflow() builder
Inputs: name (required), states (required), entityKey (required), description (required), +3 more.
get_example_moduleC
Fetch example code from existing modules
Inputs: feature, pattern, moduleId.
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.
Inputs: files, strict, moduleId, modulePath, +1 more.
validate_pluginC
Validate plugin structure, route contract (createRouter(deps)), build contract (tsconfig.build.json), and registry
Inputs: pluginPath (required), strict.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 22 tools
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.
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.
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.
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
Related MCP Connectors
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
The official MCP Server for the Mux API
MCP server for Google Veo AI video generation
MCP registry & directory: search, find & install 31k+ MCP servers & tools. Catalog and marketplace.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA minimal, well-documented MCP server boilerplate providing a reusable baseline with tools, resources, prompts, and extensive documentation for building custom MCP servers.-
- AlicenseNot gradedqualityDmaintenanceA flexible, extensible framework for building MCP servers with API key authentication, user management, and dynamic tool sharing.7 npm11MIT
- AlicenseBqualityDmaintenanceHelps users easily create new MCP servers by providing documentation, templates, and tools to generate complete server files and configuration.21MIT
- FlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server template built with mcp-framework, providing a foundation for creating custom tools and publishing npm packages.2-