Skip to main content
Glama
LaunchFrame MCP

LaunchFrame MCP

@launchframe/mcp

MCP server that gives AI agents (Claude Code, Cursor, etc.) architectural knowledge about your LaunchFrame project — auth patterns, entity conventions, queue usage, cron jobs, webhooks, and more.

Installation

Running launchframe init automatically configures this MCP server in your project. No manual setup needed.

Related MCP server: Laravel AI MCP Server

What It Does

Instead of bloating CLAUDE.md with rules, agents call tools on demand to pull the exact pattern they need:

Tool

Description

auth_get_overview

Auth system, guard hierarchy, session flow

auth_get_decorator_usage

Exact decorator for a given auth need

auth_get_guard_usage

Guard class + import for admin/user/credits

feature_gates_get_overview

How feature gates are stored and queried

feature_gates_get_check_pattern

Copy-paste feature check snippet

credits_get_deduction_pattern

Decorator + guard for route-level credit deduction

credits_get_add_pattern

Code snippet for programmatic credit addition

credits_get_monetization_strategies

Overview of free/subscription/credits/hybrid modes

queue_get_names

Available Bull queues and their purpose

queue_scaffold_producer

Producer injection snippet for a given queue

queue_scaffold_processor

Processor class scaffold for a queue + job name

webhook_get_architecture

Receipt/processing separation, retry logic

webhook_scaffold_handler

Controller + processor scaffold for a provider/event

cron_get_pattern

Where crons live, available schedules, rules

cron_scaffold_job

Cron method scaffold to add to CronService

module_get_structure

NestJS module folder structure and conventions

module_scaffold_nestjs

Full module scaffold (module + service + controller + entity)

entity_get_conventions

TypeORM entity conventions and required decorators

entity_scaffold_typeorm

TypeORM entity file scaffold

env_get_conventions

Centralized .env rules and key variable reference

variant_get_overview

Base / Multi-tenant / B2B2C variant differences

database_schema

Full DB schema with tables, columns, types, and common SQL snippets

subscriptions_get_plans_overview

Subscription plans system: plan groups, annual billing, API shape

architecture_get_overview

Overall architecture: services, modules, patterns, infrastructure

email_get_conventions

Email system: sending patterns, templates, built-in templates

email_scaffold_template

Handlebars template stub for a new transactional email

email_scaffold_send

NestJS code to send an email (direct or queued)

cli_docker_up

Start Docker services (detached)

cli_docker_down

Stop all running Docker services

cli_docker_build

Build Docker images (all or specific service)

cli_docker_logs

Fetch a snapshot of Docker service logs

cli_docker_destroy

Destroy ALL Docker resources — irreversible

cli_migration_run

Run all pending TypeORM migrations

cli_migration_create

Create a new empty TypeORM migration file

cli_migration_revert

Revert the most recently applied migration

cli_database_query

Execute a SQL query (local or remote via SSH)

cli_service_list

List available optional services

cli_service_add

Install an optional service non-interactively

cli_module_list

List available optional modules

cli_module_add

Install a module non-interactively

cli_deploy_build

Build production images and push to GHCR

cli_deploy_up

Deploy latest images to VPS via SSH

cli_deploy_sync_features

Sync plan features to production DB — destructive

cli_waitlist_up

Start the waitlist service locally

cli_waitlist_down

Stop the local waitlist service

cli_waitlist_deploy

Build and deploy waitlist service to VPS

cli_waitlist_logs

Fetch waitlist service logs from VPS

cli_dev_add_user

Create a random test user in the local DB

cli_dev_npm_install

Run npm install inside a service via Docker

cli_dev_logo

Generate and inject logo/favicon assets

cli_cache_info

Show local service cache info

cli_cache_update

Force-update the local service cache

cli_cache_clear

Delete the entire local service cache

Manual Install

If you prefer a global install:

npm install -g @launchframe/mcp

Then in .mcp.json:

{
  "mcpServers": {
    "launchframe": {
      "command": "launchframe-mcp"
    }
  }
}

Available Tools

53 tools
architecture_get_overviewA

Get the overall architecture of the LaunchFrame project: services, backend module layout, key patterns, frontend structure, and infrastructure.

Inputs: no named parameters.

auth_get_decorator_usageB

Get the exact decorator and import for a specific auth need.

Inputs: need (required).

auth_get_guard_usageB

Get the guard class, import path, and decorator combo for a specific guard type.

Inputs: guard (required).

auth_get_overviewA

Get full auth system overview: guard hierarchy, session flow, Better Auth setup, roles, and decorator system.

Inputs: no named parameters.

cli_cache_clearA

Delete the entire local LaunchFrame service cache. Services will be re-downloaded on next use.

Inputs: no named parameters.

cli_cache_infoA

Show information about the local LaunchFrame service cache (location, size, cached services, last update time).

Inputs: no named parameters.

cli_cache_updateA

Force-update the local LaunchFrame service cache by re-downloading cached services.

Inputs: no named parameters.

cli_database_queryA

Execute a SQL query and return the results as text.

Workflow:

  1. Call database_schema first to learn table/column names.

  2. Call this tool with a complete, valid SQL statement.

  3. Read the returned text — it is raw psql output (column headers + rows).

Local (default): runs against the Docker Compose database on the developer machine. → Requires launchframe docker:up to be running.

Remote (remote=true): SSHs into the VPS and runs against the production database. → Will ask the user for confirmation before executing. → Only use when the user explicitly asks about production/live data.

Supported statements: SELECT, INSERT, UPDATE, DELETE, EXPLAIN, etc. Always end the SQL with a semicolon. Quote identifiers that are reserved words (e.g. "user", "order").

Inputs: projectPath (required), sql (required), remote.

cli_deploy_buildC

Build production Docker images and push to GitHub Container Registry. Optionally build a specific service only.

Inputs: projectPath (required), service.

cli_deploy_sync_featuresA

Sync subscription plan features from the local database to the production database. DESTRUCTIVE: truncates subscription_plan_features on production. Will prompt for confirmation before proceeding.

Inputs: projectPath (required).

cli_deploy_upA

Deploy the latest images to the VPS and restart all production services via SSH.

Inputs: projectPath (required).

cli_dev_add_userA

Create a random test user in the local database. Generates a unique email + bcrypt password hash and inserts via docker exec. Creates a demo project if the project uses multi-tenancy.

Inputs: projectPath (required).

cli_dev_npm_installA

Run npm install inside a service directory using a node:20-alpine Docker container (matches the build environment). Use this to add packages or update package-lock.json.

Inputs: projectPath (required), service (required), packages.

cli_docker_buildB

Build Docker images for a LaunchFrame project (all services or a specific one).

Inputs: projectPath (required), service.

cli_docker_destroyA

Destroy ALL Docker resources for a LaunchFrame project (containers, volumes, images, network). IRREVERSIBLE — all local data including database volumes will be lost. Will prompt for confirmation before proceeding.

Inputs: projectPath (required).

cli_docker_downB

Stop all running Docker services for a LaunchFrame project.

Inputs: projectPath (required).

cli_docker_logsA

Fetch a snapshot of Docker service logs (non-streaming). Returns the last N lines.

Inputs: projectPath (required), service, tail.

cli_docker_upA

Start Docker services for a LaunchFrame project. Always runs detached (background). Use cli_docker_logs to inspect output afterward.

Inputs: projectPath (required), service.

cli_migration_createB

Create a new empty TypeORM migration file with the given name.

Inputs: projectPath (required), name (required).

cli_migration_revertA

Revert the most recently applied TypeORM database migration.

Inputs: projectPath (required).

cli_migration_runB

Run all pending TypeORM database migrations against the local database.

Inputs: projectPath (required).

cli_module_addA

Install a module into a LaunchFrame project. Runs non-interactively (skips confirmation). Rebuilds affected containers and restarts the stack in detached mode.

Inputs: projectPath (required), name (required).

cli_module_listB

List all available modules that can be added to a LaunchFrame project (e.g., feature-flags, multi-tenancy).

Inputs: projectPath (required).

cli_service_addA

Install an optional service into a LaunchFrame project. Runs non-interactively (skips prompts). Env vars will be empty — configure them manually in infrastructure/.env afterward.

Inputs: projectPath (required), name (required).

cli_service_listA

List all available optional services that can be added to a LaunchFrame project (e.g., waitlist, docs, customers-portal).

Inputs: projectPath (required).

cli_waitlist_deployB

Build and deploy the waitlist service to the VPS via SSH.

Inputs: projectPath (required).

cli_waitlist_downA

Stop the locally running waitlist service.

Inputs: projectPath (required).

cli_waitlist_logsA

Fetch a snapshot of waitlist service logs from the VPS (non-streaming). Returns the last N lines.

Inputs: projectPath (required), tail.

cli_waitlist_upA

Start the waitlist service locally using Docker Compose.

Inputs: projectPath (required).

credits_get_add_patternA

Get the code snippet for programmatically adding credits to a user with a specific transaction type.

Inputs: transactionType (required).

credits_get_deduction_patternB

Get the decorator + guard pattern for deducting credits on a route.

Inputs: no named parameters.

credits_get_monetization_strategiesA

Get an overview of all monetization strategies (free, subscription, credits, hybrid) and when to use each.

Inputs: no named parameters.

cron_get_patternA

Get the LaunchFrame cron job pattern: where jobs live, available CronExpression presets, and module registration rules.

Inputs: no named parameters.

cron_scaffold_jobC

Scaffold a new cron method to add to CronService (src/jobs/cron.service.ts).

Inputs: methodName (required), schedule (required), queueName.

database_schemaA

Returns the full database schema (all tables, columns, types, relations) plus ready-made SQL snippets for common questions like user counts, active sessions, subscription plans, credit balances, etc. Call this before running cli_database_query when the user asks a data question.

Inputs: no named parameters.

email_get_conventionsA

Get an overview of the LaunchFrame email system: sending patterns (direct vs queue-based), template conventions, built-in templates, and environment setup.

Inputs: no named parameters.

email_scaffold_sendA

Generate NestJS code to send a transactional email — either by injecting MailService directly (direct) or via the emails Bull queue (queued).

Inputs: templateName (required), method (required), contextVars (required).

email_scaffold_templateA

Generate a Handlebars (.hbs) template stub for a new LaunchFrame transactional email, following project conventions.

Inputs: templateName (required), contextVars (required).

entity_get_conventionsB

Get TypeORM entity conventions for LaunchFrame: required decorators, naming strategy, column types, relations, and multi-tenancy.

Inputs: no named parameters.

entity_scaffold_typeormB

Generate a TypeORM entity file following LaunchFrame conventions.

Inputs: entityName (required), tableName (required), primaryKeyType, multiTenant, +1 more.

env_get_conventionsA

Get environment variable conventions for LaunchFrame: single centralized .env location, variable naming rules, full key variable reference, and how to add new variables.

Inputs: no named parameters.

feature_gates_get_check_patternA

Get a copy-paste TypeScript snippet for checking a feature gate by code and type.

Inputs: featureCode (required), featureType (required).

feature_gates_get_overviewB

Get the feature gate system overview: how features are stored, how to query them, and the check pattern.

Inputs: no named parameters.

module_get_structureB

Get the NestJS module folder structure, conventions, and rules used in LaunchFrame.

Inputs: no named parameters.

module_scaffold_nestjsB

Generate a NestJS module scaffold (module + service + optional controller + optional entity) following LaunchFrame conventions.

Inputs: moduleName (required), withController, withEntity.

queue_get_namesB

List all available Bull queues in LaunchFrame with their purpose and usage rules.

Inputs: no named parameters.

queue_scaffold_processorC

Get a Bull processor class scaffold for a given queue and job name.

Inputs: queueName (required), jobName (required).

queue_scaffold_producerB

Get the code to inject and use a Bull queue as a producer in a NestJS service.

Inputs: queueName (required).

subscriptions_get_plans_overviewA

Get an overview of the subscription plans system: plan groups, annual billing toggle, API response shape, and key files.

Inputs: no named parameters.

variant_get_overviewA

Get an overview of LaunchFrame project variants: Base (B2B single-tenant), Multi-tenant, and B2B2C. Explains how to read the active variant from the .launchframe file and what behavioral differences to account for when writing new code.

Inputs: no named parameters.

webhook_get_architectureA

Get an overview of the LaunchFrame webhook architecture: receipt/processing separation, WebhookLog entity, Bull queue, and retry cron.

Inputs: no named parameters.

webhook_scaffold_handlerB

Get a scaffold for a new webhook handler: controller receipt + Bull processor for a given provider and event type.

Inputs: provider (required), eventType (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 53 tools

    Disambiguation4/5

    Most tools have distinct purposes, but some overlap exists, such as between cli_cache_clear, cli_cache_update, and cli_database_query (which involves cache considerations). However, descriptions clarify boundaries, and tools are generally well-separated by domain (e.g., auth, cli, database).

    Naming Consistency5/5

    Tool names follow a highly consistent pattern: most use a clear domain_prefix_verb_noun structure (e.g., auth_get_overview, cli_cache_clear, database_schema). This predictability makes it easy for an agent to understand the tool's scope and action.

    Tool Count2/5

    With 53 tools, the count is excessive for a single server, making it overwhelming and difficult to navigate. This many tools suggests the server is trying to cover too many domains (e.g., CLI operations, database, auth, email) without proper scoping, which can lead to confusion and inefficiency.

    Completeness5/5

    The tool set provides comprehensive coverage for the LaunchFrame project domain, including CRUD-like operations, scaffolding, system overviews, and lifecycle management across various components (e.g., auth, database, CLI, email). There are no obvious gaps, and tools support end-to-end workflows effectively.

    Related MCP Connectors

    Related MCP Servers