MCP Server Reference
What is the MCP Server?
The Fast Mode MCP (Model Context Protocol) Server connects AI coding assistants directly to Fast Mode. This means your AI can:
- Build websites that work perfectly with Fast Mode
- Manage your CMS content (create, update, delete items)
- Create collections and fields automatically
- Deploy websites directly to your projects
- Validate templates and manifests as it works
Available Tools
The MCP Server provides these tools to AI assistants, organized by category:
🚀 Getting Started
get_started
The intelligent entry point for working with Fast Mode. Analyzes your project state and guides you to the right next steps.
Parameters:
intent(optional): What you want to do -explore,add_content,update_schema,convert, ordeployprojectId(optional): Project ID or name to work with
Example: "Show me the schema for my project" triggers get_started(intent: "add_content", projectId: "My Site")
list_projects
List all Fast Mode projects you have access to. Returns project names, IDs, subdomains, and your role.
Triggers authentication if needed.
get_tenant_schema
Get the complete schema for a specific project, including all collections, fields, and custom configurations.
Parameters:
projectId(required): Project ID (UUID) or project name
📝 Content Management
create_cms_item
Create a new item in a CMS collection. Automatically shows warnings if relation fields are left empty.
Parameters:
projectId(required): Project ID or namecollectionSlug(required): Collection to add item to (e.g., "blog", "team")name(required): Item name/titleslug(optional): URL slug (auto-generated if not provided)data(required): Object with field valuespublishedAt(optional): ISO date string to publish immediately
Example:
create_cms_item(
projectId: "My Blog",
collectionSlug: "blog",
name: "My First Post",
data: {
content: "<p>Hello world!</p>",
excerpt: "A brief intro",
author: "abc-123-uuid" // Use item ID for relations
},
publishedAt: "2024-01-20T12:00:00Z"
)
list_cms_items
List all items in a collection with their IDs, names, slugs, and data.
Parameters:
projectId(required): Project ID or namecollectionSlug(required): Collection to listlimit(optional): Max items to return (default: 50)sort(optional): Field to sort byorder(optional):ascordesc
get_cms_item
Get a single item by its slug.
Parameters:
projectId(required): Project ID or namecollectionSlug(required): Collection the item is initemSlug(required): The item's URL slug
update_cms_item
Update an existing item. Only provided fields are changed.
Parameters:
projectId(required): Project ID or namecollectionSlug(required): Collection the item is initemSlug(required): The item's URL slugname(optional): New namedata(optional): Updated field valuespublishedAt(optional): New publish date, ornullto unpublish
delete_cms_item
Delete an item from a collection. Requires explicit user confirmation.
Parameters:
projectId(required): Project ID or namecollectionSlug(required): Collection the item is initemSlug(required): The item's URL slugconfirmDelete(required): Must betrue- only set after user confirms
get_relation_options
Get available items for relation fields. Shows item IDs, names, and slugs for easy reference.
Parameters:
projectId(required): Project ID or namecollectionSlug(required): Collection that has the relation fieldfieldSlug(optional): Specific relation field to get options for
Why you need this: Relation fields require item IDs (UUIDs), not names. This tool shows you what IDs are available.
🏗️ Schema Management
sync_schema
Create or update collections and fields. Use this to set up your CMS structure.
Parameters:
projectId(required): Project ID or namecollectionsToCreate(optional): Array of new collections to createfieldsToAdd(optional): Array of fields to add to existing collections
Example:
sync_schema(
projectId: "My Site",
collectionsToCreate: [{
slug: "testimonials",
name: "Testimonials",
nameSingular: "Testimonial",
fields: [
{ slug: "quote", name: "Quote", type: "richText" },
{ slug: "author", name: "Author", type: "text" },
{ slug: "company", name: "Company", type: "text" }
]
}]
)
get_field_types
List all available field types with their options and configuration.
Returns: Complete list of field types (text, richText, number, date, image, relation, etc.) with descriptions and available options.
generate_sample_items
Generate realistic sample content for your collections. Great for testing templates.
Parameters:
projectId(required): Project ID or namecollectionSlugs(optional): Specific collections to generate for (default: all empty collections)
🚀 Deployment
create_site
Create a new Fast Mode project.
Parameters:
name(required): Site namesubdomain(required): Subdomain for yoursite.fastmode.ai
deploy_package
Deploy a website package (ZIP file) to a project. Validates the package before deployment.
Parameters:
projectId(required): Project ID or name to deploy tozipPath(required): Path to the ZIP file containing your website
The package is validated before deployment: Manifest is checked, templates are validated, and any errors block the deploy.
✅ Validation
validate_manifest
Check if a manifest.json file is valid.
Parameters:
manifest(required): The manifest.json content as a string
validate_template
Check an HTML template for correct token usage.
Parameters:
html(required): The template HTML contenttemplateType(required): Type of template (blog_index, blog_post, team, etc.)collectionSlug(optional): For custom collection templates
validate_package
Validate a complete website package structure.
Parameters:
fileList(required): Array of file paths in the packagemanifestContent(required): The manifest.json contenttemplateContentsJson(optional): JSON mapping template paths to their content
📚 Documentation
get_example
Get working code examples for specific patterns.
Parameters:
exampleType(required): One of:manifest_basic,manifest_custom_pathsblog_index_template,blog_post_templateteam_template,downloads_templatecustom_collection_templateform_handling,each_loop,conditional_if
get_conversion_guide
Get the complete guide for converting existing websites to Fast Mode format.
Parameters:
section(optional): Specific section -full,analysis,structure,manifest,templates,tokens,forms,assets,checklist
Working with Relation Fields
Relation fields link items between collections (e.g., a blog post's author). They require special handling:
The Key Rule
Relation fields require the item ID (UUID), not the item name.
// ❌ WRONG - Using name
data: { author: "John Smith" }
// ✅ CORRECT - Using ID
data: { author: "abc-123-def-456" }
How to Find IDs
- Use
get_relation_options- Shows all options for a relation field - Use
list_cms_items- Lists items with their IDs - Check
get_started(intent: "add_content")- Shows relation options automatically
In Templates
To display related item data, use dot notation:
<!-- Display author name -->
<!-- Display author photo -->
<img src="">
Authentication
The MCP server uses automatic browser-based authentication:
- First time you use a tool requiring auth, your browser opens
- Go to
app.fastmode.ai/device - Enter the code shown in your AI tool
- Click Authorize
- Done! Credentials save to
~/.fastmode/credentials.jsonand auto-refresh for 90 days
Configuration
Add to your IDE's MCP configuration:
{
"mcpServers": {
"fastmode": {
"command": "npx",
"args": ["-y", "fastmode-mcp"]
}
}
}
Environment Variables (optional):
| Variable | Default | Description |
|---|---|---|
FASTMODE_API_URL | https://api.fastmode.ai | API base URL |
FASTMODE_AUTH_TOKEN | - | Manual auth token (device flow is preferred) |
Related Docs
- MCP Server Setup — Installation for all IDEs
- Using the MCP Server — Prompting tips and workflows
- MCP Troubleshooting — Common issues and fixes