LaunchFrame MCP
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., "@LaunchFrame MCPscaffold a new NestJS module for 'orders' following project conventions"
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.
@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: CleanSlice 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 system, guard hierarchy, session flow |
| Exact decorator for a given auth need |
| Guard class + import for admin/user/credits |
| How feature gates are stored and queried |
| Copy-paste feature check snippet |
| Decorator + guard for route-level credit deduction |
| Code snippet for programmatic credit addition |
| Overview of free/subscription/credits/hybrid modes |
| Available Bull queues and their purpose |
| Producer injection snippet for a given queue |
| Processor class scaffold for a queue + job name |
| Receipt/processing separation, retry logic |
| Controller + processor scaffold for a provider/event |
| Where crons live, available schedules, rules |
| Cron method scaffold to add to CronService |
| NestJS module folder structure and conventions |
| Full module scaffold (module + service + controller + entity) |
| TypeORM entity conventions and required decorators |
| TypeORM entity file scaffold |
| Centralized |
| Base / Multi-tenant / B2B2C variant differences |
| Full DB schema with tables, columns, types, and common SQL snippets |
| Subscription plans system: plan groups, annual billing, API shape |
| Overall architecture: services, modules, patterns, infrastructure |
| Email system: sending patterns, templates, built-in templates |
| Handlebars template stub for a new transactional email |
| NestJS code to send an email (direct or queued) |
| Start Docker services (detached) |
| Stop all running Docker services |
| Build Docker images (all or specific service) |
| Fetch a snapshot of Docker service logs |
| Destroy ALL Docker resources — irreversible |
| Run all pending TypeORM migrations |
| Create a new empty TypeORM migration file |
| Revert the most recently applied migration |
| Execute a SQL query (local or remote via SSH) |
| List available optional services |
| Install an optional service non-interactively |
| List available optional modules |
| Install a module non-interactively |
| Build production images and push to GHCR |
| Deploy latest images to VPS via SSH |
| Sync plan features to production DB — destructive |
| Start the waitlist service locally |
| Stop the local waitlist service |
| Build and deploy waitlist service to VPS |
| Fetch waitlist service logs from VPS |
| Create a random test user in the local DB |
| Run npm install inside a service via Docker |
| Generate and inject logo/favicon assets |
| Show local service cache info |
| Force-update the local service cache |
| Delete the entire local service cache |
Manual Install
If you prefer a global install:
npm install -g @launchframe/mcpThen in .mcp.json:
{
"mcpServers": {
"launchframe": {
"command": "launchframe-mcp"
}
}
}Available Tools
53 toolsarchitecture_get_overviewA
Get the overall architecture of the LaunchFrame project: services, backend module layout, key patterns, frontend structure, and infrastructure.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It effectively discloses what informational domains are retrieved (services, backend layout, patterns, frontend, infrastructure), but omits operational characteristics like data source (file scan vs cache), performance cost, or output format (JSON vs markdown).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence with colon-delimited enumeration. Every term earns its place: 'overall' distinguishes scope, the list clarifies coverage. Front-loaded with action and object, zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no annotations, and no output schema, the description adequately compensates by enumerating the five architectural domains returned. Minor gap: does not specify output format/structure, though the domain list provides reasonable completeness for an introspection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema contains zero parameters. Per rubric guidelines, zero parameters establishes a baseline score of 4. The description correctly requires no parameter explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Get' with resource 'overall architecture' and explicitly scopes the query to 'LaunchFrame project'. It clearly distinguishes from siblings like 'module_get_structure' or 'auth_get_overview' by emphasizing 'overall' coverage across services, backend, frontend, and infrastructure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies a high-level scope through the 'overall' modifier and broad category listing (services, infrastructure, etc.), it lacks explicit guidance on when to use this versus specific alternatives like 'module_get_structure' or 'webhook_get_architecture'. Usage must be inferred from scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_get_decorator_usageB
Get the exact decorator and import for a specific auth need.
| Name | Required | Description | Default |
|---|---|---|---|
| need | Yes | The auth need for the route |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it retrieves 'exact' decorator and import, hinting at precise return values. However, lacks disclosure on return format (string vs object), error handling for invalid enum values, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 9 words. Front-loaded with verb 'Get'. Every word earns its place with no redundancy. Perfect efficiency for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter lookup tool with clear enum values. States what is retrieved (decorator/import) and the input dimension (auth need). However, could briefly mention it returns code snippets/strings since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage with self-explanatory enum values. Description mentions 'auth need' which aligns with the parameter name but adds no syntax details, validation rules, or examples beyond what the schema enum already provides. Baseline 3 appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses specific verb 'Get' with clear resource 'decorator and import'. Mentions 'exact' implying precise code retrieval. Implicitly distinguishes from sibling auth_get_guard_usage by focusing on decorators rather than guards, though explicit differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus auth_get_guard_usage or auth_get_overview. No prerequisites mentioned (e.g., whether certain auth types require specific setup).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_get_guard_usageB
Get the guard class, import path, and decorator combo for a specific guard type.
| Name | Required | Description | Default |
|---|---|---|---|
| guard | Yes | The guard to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully documents what data is returned (class, path, decorator combo) but omits safety characteristics (read-only vs mutation), error behaviors, or performance characteristics like caching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with zero waste. Information is front-loaded with the verb 'Get' followed immediately by the three specific return value components, earning its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup tool without output schema, the description adequately compensates by detailing the three specific fields returned. It lacks only safety/permission context to be fully complete for its complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter fully documented as 'The guard to look up' including enum values. The description mentions 'specific guard type' which aligns with the parameter but adds no additional semantic context (e.g., what distinguishes 'admin' from 'business_user' guards) beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific retrieval target (guard class, import path, decorator combo) and scope (specific guard type). It distinguishes from the general auth_get_overview sibling, though it could better clarify how it differs from auth_get_decorator_usage given the overlap in 'decorator' terminology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings (particularly auth_get_decorator_usage), nor does it mention prerequisites such as authentication requirements or when this lookup should be performed in a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_get_overviewA
Get full auth system overview: guard hierarchy, session flow, Better Auth setup, roles, and decorator system.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clarifies what content is retrieved (guard hierarchy, session flow, etc.) but does not disclose whether this reads from config files, requires specific permissions, or details the return format/structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficiently structured sentence that front-loads the action ('Get full auth system overview') and uses a colon-delimited list to specify covered domains without verbosity. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description achieves reasonable completeness by enumerating the specific auth components covered (guard hierarchy, session flow, Better Auth setup, roles, decorator system), which sufficiently signals the scope of retrieved information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, which per the evaluation rules establishes a baseline score of 4. The description appropriately acknowledges this by not referencing parameters, focusing entirely on the return value semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('auth system overview') and clearly distinguishes from siblings like 'auth_get_guard_usage' and 'auth_get_decorator_usage' by positioning this as the 'full' overview that comprehensively covers guards, decorators, sessions, roles, and Better Auth setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by claiming 'full' coverage and listing specific auth domains, suggesting it should be used for broad architectural understanding. However, it lacks explicit guidance on when to prefer specific siblings (auth_get_decorator_usage) versus this comprehensive overview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_cache_clearA
Delete the entire local LaunchFrame service cache. Services will be re-downloaded on next use.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Effectively discloses destructive behavior ('Delete the entire') and critical downstream effect ('re-downloaded on next use'). Could be improved by mentioning if operation is irreversible or requires specific permissions, but covers the primary behavioral traits well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly structured two-sentence description. Front-loaded with the destructive action ('Delete'), followed by consequence clause. No filler or redundancy; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a zero-parameter mutation tool. The description compensates for missing annotations by explaining the destructive nature and side effects. No output schema exists, but the consequence sentence ('re-downloaded') effectively proxies the behavioral outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present in schema, establishing baseline score of 4 per rubric. Description appropriately focuses on operation behavior rather than non-existent parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: 'Delete' (verb) + 'local LaunchFrame service cache' (resource) + 'entire' (scope). The phrase 'Services will be re-downloaded on next use' clearly distinguishes this destructive full-clear operation from sibling tools like cli_cache_update (likely partial refresh) and cli_cache_info (read-only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implicit usage context by explaining the side effect (re-downloading on next use), which hints at when to use it (e.g., corrupted cache scenarios). However, lacks explicit when-to-use/when-not-to-use guidance or comparison to cli_cache_update as an alternative for non-destructive refresh.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_cache_infoA
Show information about the local LaunchFrame service cache (location, size, cached services, last update time).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses what information is retrieved (location, size, etc.) but omits operational characteristics: it doesn't confirm this is read-only/safe, doesn't describe the output format, and mentions no error conditions (e.g., if cache doesn't exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence front-loaded with the action verb 'Show'. The parenthetical list of returned data fields adds specificity without verbosity. No redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero input parameters and no output schema, the description adequately covers the tool's function by specifying exactly what cache metadata is exposed. While it omits output format details, listing the specific data fields provides sufficient context for a simple introspection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters. Per the evaluation guidelines, tools with 0 parameters receive a baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Show' with the resource 'local LaunchFrame service cache' and enumerates the specific data points returned (location, size, cached services, last update time). However, it lacks explicit differentiation from sibling tools like cli_cache_clear or cli_cache_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings (cli_cache_clear, cli_cache_update) or other inspection alternatives. There are no 'when-not' exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_cache_updateA
Force-update the local LaunchFrame service cache by re-downloading cached services.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully indicates this is a mutation operation ('update', 'downloading'). However, it lacks details on idempotency, whether this is destructive (overwrites vs merges), network requirements, or execution duration characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with zero waste. Front-loaded with the action ('Force-update') followed by resource and mechanism. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no annotations, and no output schema, the description adequately explains the tool's purpose. It could be improved by noting whether the operation is synchronous or if it returns the refreshed cache contents, but it is sufficient for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters. Per evaluation guidelines, zero-parameter tools receive a baseline score of 4. The description appropriately requires no parameter explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Force-update', 're-downloading') and identifies the exact resource ('local LaunchFrame service cache'). It clearly distinguishes from sibling tools: cli_cache_clear (deletion) and cli_cache_info (query) by positioning this as a refresh/mutation operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The term 'Force-update' implies usage when standard refresh mechanisms are insufficient or when immediate synchronization is required. However, there is no explicit comparison to siblings (e.g., 'unlike cli_cache_clear, this preserves entries') or guidance on when to prefer this over automatic cache updates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_database_queryA
Execute a SQL query and return the results as text.
Workflow:
Call database_schema first to learn table/column names.
Call this tool with a complete, valid SQL statement.
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").
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| sql | Yes | Complete SQL statement to execute, ending with a semicolon. Example: SELECT id, email FROM "user" LIMIT 10; | |
| remote | No | Set to true to query the PRODUCTION database via SSH. Omit or set false for the local database. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It richly compensates by disclosing: output format (raw psql output with headers/rows), infrastructure requirements (Docker Compose for local, SSH for remote), interactive safety behavior (asks user confirmation for production), and statement support scope. Also warns about reserved word quoting requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly structured with zero waste: opening purpose statement, numbered workflow steps, bullet-separated environment contexts (Local/Remote), and concise syntax rules. Every sentence delivers actionable information appropriate to the complexity of dual-environment database access.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema and annotations, the description comprehensively covers return values (raw psql output format), execution environments (local Docker vs production SSH), safety constraints (confirmation dialogs), and prerequisites (sibling tool dependency). Complete for a high-risk database mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, establishing baseline 3. The description adds substantial value beyond the schema by providing SQL syntax guidance (semicolon termination, reserved word quoting with examples like \"user\"), clarifying the default behavior (local vs remote), and explaining the production confirmation flow implied by the remote parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise action (Execute a SQL query) and output format (return results as text). It clearly distinguishes from the sibling 'database_schema' tool by explicitly positioning it as step 2 in the workflow after schema discovery, and by listing specific SQL statement types it supports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Excellent explicit guidance including: a numbered workflow integrating the sibling tool (database_schema first), clear when-to-use conditions for remote=true ('Only use when the user explicitly asks about production/live data'), and local environment prerequisites ('Requires launchframe docker:up'). Includes both affirmative usage and explicit prohibitions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_deploy_buildC
Build production Docker images and push to GitHub Container Registry. Optionally build a specific service only.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| service | No | Specific service to build and push (e.g., "backend"). Omit to build all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. While it mentions pushing to GHCR (a side effect), it omits critical behavioral details: GHCR authentication requirements, whether it overwrites existing image tags, network requirements, Docker daemon dependency, and failure modes. For a deployment tool with registry mutations, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Appropriately compact with two front-loaded sentences. The first covers the primary operation and target registry; the second covers the optional filtering. No redundant text, though slightly more detail could have been added without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a deployment tool with external side effects (registry push) and no output schema or annotations, the description should disclose prerequisites, auth needs, and idempotency characteristics. Current description is inadequate for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description adds minimal meaning beyond the schema—specifically clarifying the optionality of the service parameter ('Optionally...only'), which aligns with but doesn't significantly extend the schema's 'Omit to build all' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the exact action (build production Docker images), destination (GitHub Container Registry), and scope option (specific service). It implicitly distinguishes from sibling 'cli_docker_build' by emphasizing 'production' and registry push, though it doesn't explicitly contrast with related deployment tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides only implicit guidance through the optional service parameter ('Optionally build a specific service only'). Missing explicit when-to-use recommendations, prerequisites (e.g., Docker daemon running), or alternatives to distinguish from 'cli_docker_build' or 'cli_deploy_up'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It excellently discloses the destructive truncation behavior and the interactive confirmation prompt. These are critical behavioral traits for a mutation tool that cannot be inferred from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are front-loaded and information-dense. The first establishes purpose, the second warns of destruction, the third notes the interactive prompt. Slightly telegraphic 'DESTRUCTIVE:' prefix is acceptable for CLI tooling, though sentence 2 could flow more naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive sync operation with no output schema, the description covers the essential safety concerns and data flow. It specifies the exact table affected (subscription_plan_features) and the confirmation behavior, which is sufficient given the tool's narrow scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage describing projectPath as the absolute path to the LaunchFrame project root. Since the schema fully documents the single parameter, the baseline score applies. The description provides no additional parameter constraints or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (sync), source resource (subscription plan features), origin (local database), and destination (production database). The verb and scope are precise and distinguish this from general deployment siblings like cli_deploy_up or database tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides crucial safety context by warning that the operation is DESTRUCTIVE and requires confirmation prompting, which informs when NOT to use the tool. However, it lacks explicit comparison to sibling tools (e.g., when to choose this over cli_database_query) and omits prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_deploy_upA
Deploy the latest images to the VPS and restart all production services via SSH.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently discloses that services will be 'restart[ed]' (indicating downtime/mutation) and uses 'SSH' (indicating remote execution), which is valuable. However, it lacks critical safety context for a production deployment tool: no mention of downtime duration, rollback behavior, failure handling, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence of 11 words with no redundancy. It front-loads the action ('Deploy') and every phrase earns its place by conveying critical information about the mechanism (SSH), target (VPS), and impact (restart).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-risk production deployment tool with no annotations and no output schema, the description covers the core operation adequately but lacks completeness regarding operational safety. It should disclose whether the deployment causes downtime, requires pre-existing SSH keys, or has dependencies on other tools in the deploy pipeline.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its single parameter, establishing a baseline of 3. The description does not explicitly reference the 'projectPath' parameter or add semantic context about how the path is used, but this is acceptable given the schema fully documents it. No additional constraints or format details are provided in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Deploy'), the target ('latest images to the VPS'), and the side effects ('restart all production services via SSH'). It effectively distinguishes itself from sibling tools like 'cli_deploy_build' (which likely creates images) and 'cli_deploy_sync_features' (which likely syncs configuration) by specifying this is the final remote production deployment step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the target context ('production services') which implies this is for production environments, but it lacks explicit guidance on when to use this tool versus alternatives like 'cli_deploy_build' or 'cli_docker_up'. There is no mention of prerequisites (e.g., requiring a build first) or warnings about when NOT to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses implementation (docker exec), security handling (bcrypt hash), and significant side effect (creates demo project if multi-tenancy enabled). Missing idempotency statement and return value description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste. Front-loaded with main action, followed by implementation details, ending with conditional side effect. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers tool's purpose, side effects, and constraints despite no output schema. Could improve by describing return value (credentials? success bool?) and prerequisites (requires docker running).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear description of projectPath ('Absolute path to the LaunchFrame project root'). Description implies the LaunchFrame context but does not add syntax or validation details beyond the schema. Baseline 3 appropriate for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Create) + resource (random test user) + location (local database). Distinguishes from sibling auth_get_* tools which analyze existing code patterns, while this tool generates data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies development/testing context via 'random test user' and 'local database' (vs production), and mentions conditional behavior for multi-tenancy. Lacks explicit 'when not to use' or named alternatives (e.g., cli_database_query).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_dev_logoA
Generate and inject logo/favicon assets across all frontend services from an SVG file. Defaults to /logo.svg if no path is given.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| svgPath | No | Absolute path to the SVG logo file (defaults to <projectRoot>/logo.svg) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure burden. It reveals scope ('across all frontend services') and implies mutation via 'inject', but omits critical details like destructivity (whether existing assets are overwritten), reversibility, or what specific asset formats are generated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero redundancy: the first establishes purpose and mechanism, the second specifies default parameter behavior. Every clause earns its place with no filler or templated language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for tool selection and invocation given 100% schema coverage and straightforward single-action purpose. Missing output description and destructivity details that would be necessary for a safety-critical operation, but sufficient for a development utility with clear scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description mentions the default path behavior ('Defaults to <projectRoot>/logo.svg if no path is given'), but this merely restates information already present in the svgPath parameter's schema description without adding syntax details, format constraints, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Generate and inject') and resources ('logo/favicon assets') and clearly distinguishes this from sibling CLI tools like cache management, deployment, or user creation by specifying the logo/favicon domain and SVG source material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context by specifying the default SVG path behavior ('Defaults to <projectRoot>/logo.svg if no path is given'), which guides when the svgPath parameter can be omitted. Lacks explicit comparison to alternatives, though no sibling tools offer overlapping functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| service | Yes | Service directory name (e.g., "backend", "admin-portal", "website") | |
| packages | No | Package names to install (e.g., ["stripe", "zod"]). Omit to run plain npm install. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full behavioral disclosure burden. Adds critical execution context: runs in 'node:20-alpine Docker container' that 'matches the build environment.' However, omits mutation disclosure (modifies package.json, node_modules), idempotency characteristics, or failure modes for a file-modifying operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First defines execution mechanism and environment; second states value proposition and use cases. Information density is high with no redundant phrases or tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a 3-parameter Dockerized CLI tool. Covers execution environment (Docker), primary action (npm install), and conditional behavior (omit packages for plain install). Missing explicit acknowledgment of side effects (file system mutations) but sufficient given the domain context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing baseline 3. Description mentions 'service directory' and 'add packages' which loosely map to the 'service' and 'packages' parameters, but does not add semantic depth beyond schema (e.g., valid package name formats, relationship between projectPath and service). Adequate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb 'Run npm install' with resource 'service directory' and execution context 'node:20-alpine Docker container'. Explicitly distinguishes from sibling tools by specifying npm package management vs other CLI operations like deployment or database queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit positive usage guidance: 'Use this to add packages or update package-lock.json.' Clearly indicates when to invoke the tool. Lacks explicit negative guidance (when not to use) or alternatives comparison, but effectively constrains intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_docker_buildB
Build Docker images for a LaunchFrame project (all services or a specific one).
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| service | No | Specific service to build (e.g., "backend"). Omit to build all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Fails to disclose that this creates/modifies local Docker images, may be long-running, produces build output/logs, or how it handles cached layers. No mention of side effects or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence, front-loaded with action verb. Information density is high with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite simple 2-parameter schema, description inadequate for build operation lacking output schema and annotations. Missing critical context: build duration expectations, image tagging behavior, relationship to docker-compose, and success/failure indicators.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, establishing baseline 3. Description adds value by explaining the 'omit to build all' semantics for the optional 'service' parameter, clarifying scope behavior beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action 'Build Docker images' and resource 'LaunchFrame project', with clear scope ('all services or a specific one'). Distinguishes from sibling 'cli_docker_up' (run containers) by focusing on image building, though could better differentiate from 'cli_deploy_build'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives like 'cli_deploy_build' or 'cli_docker_up'. Missing prerequisites (Docker daemon running) and expected workflow sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden and excels: it discloses exactly what resources are affected, warns of irreversible data destruction, notes the interactive confirmation prompt, and clarifies local scope. This is exemplary safety disclosure for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly constructed sentences with zero waste: sentence 1 establishes scope, sentence 2 warns of consequences, sentence 3 discloses interaction model. Perfectly front-loaded and appropriately sized for the operational severity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive coverage of the destructive behavior and safety mechanisms given the lack of output schema. Minor gap: does not specify what occurs if confirmation is declined or the command's exit behavior, though this is acceptable for a CLI tool where the prompt mechanism is the primary output concern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (projectPath is fully described), establishing a baseline of 3. The description references 'LaunchFrame project' which aligns with the parameter semantics but does not add syntactic details or examples beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Destroy' with explicit resource enumeration (containers, volumes, images, network). The phrase 'ALL Docker resources' and 'IRREVERSIBLE' effectively distinguishes this from sibling commands like cli_docker_down (which likely only stops containers) and cli_docker_build.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The irreversibility warning and explicit mention of data loss (including database volumes) provide strong implicit guidance about when NOT to use this tool. However, it does not explicitly name alternatives (e.g., 'use cli_docker_down to stop without data loss'), falling just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_docker_downB
Stop all running Docker services for a LaunchFrame project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'Stop' but doesn't clarify Docker 'down' semantics (typically removes containers/networks vs mere stopping), doesn't address volume persistence, graceful shutdown timing, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action verb, appropriately scoped. No redundancy or waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter tool, but lacking behavioral disclosure expected for a mutative Docker operation. No output schema means description should ideally summarize effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with clear description of projectPath. The description adds no parameter semantics beyond the schema, which is acceptable given complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Stop' with resource 'Docker services' and scopes to 'LaunchFrame project.' This distinguishes it from sibling cli_waitlist_down, though it fails to differentiate from cli_docker_destroy (likely more destructive).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use versus cli_docker_destroy or prerequisites such as requiring services to be running first. No mention of idempotency or error handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_docker_logsA
Fetch a snapshot of Docker service logs (non-streaming). Returns the last N lines.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| service | No | Specific service to get logs for (e.g., "backend"). Omit for all services. | |
| tail | No | Number of log lines to return (default: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully conveys the snapshot/non-streaming nature of the operation, implying a read-only fetch. However, it lacks details on prerequisites (e.g., requiring Docker to be running), error behaviors, or side effects that would be critical given the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly concise: two sentences, front-loaded with the action verb, zero redundancy. Every word earns its place without repeating schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a 3-parameter tool with complete schema coverage and no output schema. The description covers the essential behavioral trait (non-streaming snapshot). However, given the Docker context and lack of annotations, it could benefit from mentioning runtime prerequisites or log source details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description adds minimal but useful semantic context by referring to 'last N lines,' which reinforces the temporal behavior of the 'tail' parameter. No additional parameter guidance (e.g., path format expectations for projectPath) is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Fetch') + resource ('Docker service logs') + scope ('snapshot', 'last N lines'). The 'non-streaming' qualifier effectively distinguishes this from real-time log streaming tools. However, it does not explicitly differentiate from the sibling tool 'cli_waitlist_logs' (which also handles logs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'non-streaming' and 'snapshot' descriptors provide implied usage guidance (use for inspection, not monitoring), but there is no explicit guidance on when to use this versus 'cli_waitlist_logs' or other Docker-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_docker_upA
Start Docker services for a LaunchFrame project. Always runs detached (background). Use cli_docker_logs to inspect output afterward.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| service | No | Specific service to start (e.g., "backend", "admin-portal"). Omit to start all services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It successfully discloses the detached/background execution behavior and implies no log output is returned. However, lacks details on error handling, idempotency, or side effects when services already exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First sentence establishes purpose and execution mode; second provides essential workflow guidance. Every word earns its place with no redundant explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriately complete for a 2-parameter Docker command with no output schema. Covers execution context (detached) and result inspection pathway. Could improve by mentioning success/error return behavior or prerequisite checks, but sufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, documenting both projectPath and service parameters with clear examples. The description relies entirely on the schema for parameter semantics, earning the baseline score for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb 'Start' with resource 'Docker services' and scope 'for a LaunchFrame project'. The mention of 'Use cli_docker_logs to inspect output afterward' effectively distinguishes from siblings like cli_docker_down or cli_docker_destroy by establishing the intended workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage constraint ('Always runs detached') and clear alternative tool reference ('Use cli_docker_logs'). Implicitly guides against using for foreground/real-time output viewing, though it lacks explicit 'when not to use' exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_migration_createB
Create a new empty TypeORM migration file with the given name.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| name | Yes | Migration name in PascalCase (e.g., "AddStripeCustomerId") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the file is created 'empty' (valuable behavioral detail distinguishing it from scaffolding), but omits return value, file overwrite behavior, and directory creation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence appropriately front-loaded with the action. 'Empty' earns its place; 'new' is slightly redundant with 'create' but acceptable. Efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple file creation tool with rich schema coverage, but gaps remain regarding return values and error conditions (e.g., existing files) given the lack of output schema or annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description mentions 'given name' linking to the name parameter and 'TypeORM' providing context for projectPath, but doesn't add syntax details or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Create') and resource ('TypeORM migration file') with specific characteristic ('empty'). Distinguishes from workflow siblings 'run' and 'revert' via verb choice, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus cli_migration_run or cli_migration_revert, nor any mention of the typical workflow (create → edit → run). Lacks prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_migration_revertA
Revert the most recently applied TypeORM database migration.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states the action but omits critical details: that this is a destructive database operation, that it only reverts a single migration, potential rollback requirements, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Information is front-loaded (action first) and the length is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema (1 parameter) and lack of output schema, the description covers the basic operation. However, for a destructive database tool with no annotations, it lacks safety context or prerequisite information that would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the projectPath parameter fully documented in the schema. The description adds no specific parameter guidance, but none is needed given the complete schema documentation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Revert'), target ('TypeORM database migration'), and scope ('most recently applied'). The verb 'revert' effectively distinguishes this tool from siblings cli_migration_create and cli_migration_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the action implies usage context (undoing a migration), there is no explicit guidance on when to use this versus cli_migration_run, or warnings about data loss risks. It lacks 'when-not-to-use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_migration_runB
Run all pending TypeORM database migrations against the local database.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Identifies the technology (TypeORM) and environment (local database), which adds context. However, for a destructive schema-modification operation with no annotations, it fails to disclose critical behaviors: failure modes, idempotency, whether it requires the database to be running, or rollback procedures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with zero waste. Every word earns its place: 'Run' (action), 'all pending' (scope), 'TypeORM' (technology), 'against the local database' (target).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter tool, but given this is a destructive database operation with no annotations and no output schema, the description should include safety warnings or behavioral expectations to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage describing projectPath, the schema carries the full burden. The description mentions 'local database' which provides context for why projectPath is needed, but adds no syntax, format, or semantic details beyond the schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb (Run), resource (TypeORM database migrations), and scope (all pending, local database). However, it does not explicitly differentiate from siblings cli_migration_create and cli_migration_revert in the description text, though the tool name helps distinguish them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives (e.g., when to run migrations vs. create them vs. revert them). No prerequisites or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| name | Yes | Module name to install (e.g., "feature-flags") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden and successfully reveals critical side effects: container rebuilds and stack restarts in detached mode, plus the non-interactive nature. It effectively warns about the operational impact beyond just schema validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three well-structured sentences with zero waste: purpose declared first, followed by interaction mode, then side effects. Every sentence earns its place with no redundant or vague padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description adequately covers operational concerns for a mutation tool—explaining what gets modified (containers, stack state) and execution characteristics. It misses only minor details like error handling or return value description, which are less critical given the schema simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters ('projectPath' and 'name') fully documented in the JSON schema. The description references 'module' and 'project' aligning with these parameters but adds no additional semantic detail beyond what the schema already provides, warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Install'), resource ('module'), and target context ('LaunchFrame project'), distinguishing it from siblings like 'cli_module_list' (which only lists) and 'cli_service_add' (which handles services rather than modules).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it notes the non-interactive behavior ('skips confirmation') which implies automation use cases, it lacks explicit guidance on when to prefer this over alternatives or prerequisites like checking available modules first. The guidance remains implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_module_listB
List all available modules that can be added to a LaunchFrame project (e.g., feature-flags, multi-tenancy).
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States what is listed but omits output format, pagination behavior, side effects, or error conditions for invalid projectPath.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loaded with action and resource. Parenthetical examples add value without verbosity. No redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter tool but lacks output description given no output schema exists. Module examples partially compensate for missing return value documentation, but gap remains for programmatic consumption.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with projectPath fully described in schema. Description adds no parameter details, but baseline of 3 applies per rules for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and resource 'available modules' with scope 'LaunchFrame project'. Examples clarify module types. Lacks explicit differentiation from sibling cli_module_add (which adds modules vs listing installable candidates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides examples of modules (feature-flags, multi-tenancy) but lacks explicit when-to-use guidance or contrast with cli_module_add or cli_service_list. No prerequisites mentioned despite requiring projectPath.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| name | Yes | Service name to install (e.g., "waitlist", "docs", "customers-portal") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses non-interactive execution, skipped prompts, and critical post-installation requirement to 'configure them manually in infrastructure/.env afterward.' Missing idempotency or error-handling details, but strong for a CLI wrapper.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose statement, runtime behavior disclosure, and post-installation warning. Front-loaded with intent, zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive for a CLI installation tool. Covers what it installs, how it runs (non-interactively), and critical manual follow-up steps. The specific path 'infrastructure/.env' provides actionable context. No output schema exists, but description adequately sets expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions and examples (e.g., 'waitlist', 'docs'). Description mentions 'optional service' which adds domain context to the 'name' parameter, and references the project structure ('infrastructure/.env') implying projectPath scope. Baseline 3 appropriate given schema quality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb (Install) + resource (optional service) + target (LaunchFrame project). The term 'optional' effectively distinguishes this from core framework services that might be added by other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear behavioral context that it 'Runs non-interactively' and warns about empty environment variables requiring manual configuration. Lacks explicit comparison to sibling tools (e.g., vs cli_module_add), but gives sufficient runtime context for an agent to handle the tool correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_service_listA
List all available optional services that can be added to a LaunchFrame project (e.g., waitlist, docs, customers-portal).
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'List' strongly implies read-only behavior and no side effects, but omits return format details, error conditions (invalid projectPath), and whether results are cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded action, zero waste. Parenthetical examples add density without clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriately complete for a simple discovery tool with 1 well-documented parameter. Missing output format specification (array of strings vs objects), but sufficient given tool's straightforward purpose and lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with `projectPath` fully described. Description adds no parameter-specific details beyond schema, which is acceptable given the high coverage baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb (list) + resource (optional services) + domain context (LaunchFrame project). Examples (waitlist, docs, customers-portal) help distinguish from sibling `cli_module_list`, though explicit contrast with `cli_service_add` is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context through 'available... that can be added,' suggesting discovery before installation. However, lacks explicit workflow guidance (e.g., 'use before cli_service_add') or prerequisites (e.g., project must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_waitlist_deployB
Build and deploy the waitlist service to the VPS via SSH.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It mentions SSH deployment but fails to disclose critical behavioral traits: whether this is destructive (replaces running instances), causes downtime, requires specific credentials, produces build artifacts locally, or how it handles deployment failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and target. Every word earns its place: 'Build and deploy' (action), 'waitlist service' (resource), 'VPS via SSH' (method/destination). No redundancy or filler present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with full schema coverage, the description minimally covers the operation. However, given this is a deployment tool (high-stakes, side-effect heavy) with no annotations or output schema, the description is incomplete regarding safety profiles, side effects, or return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single `projectPath` parameter ('Absolute path to the LaunchFrame project root'). Since the schema fully documents the parameter, the description does not need to add semantics; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Build and deploy') and identifies the target resource ('waitlist service' to 'VPS via SSH'). However, it does not explicitly differentiate from sibling tools like `cli_deploy_up` (general deployment) or `cli_waitlist_up` (likely just starting the service), relying on the tool name to provide that context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'VPS via SSH' provides implied context that this is for remote production deployment versus local operations. However, it lacks explicit guidance on when to use this versus `cli_waitlist_up` or general deployment tools, and omits prerequisites like SSH configuration requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_waitlist_downA
Stop the locally running waitlist service.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers only the minimal action 'Stop'. It omits critical behavioral details: whether the stop is graceful, if it waits for shutdown completion, what happens to underlying resources/containers, idempotency, or prerequisites (e.g., service must be running).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action verb, zero redundancy. Length and structure are perfectly calibrated for a simple lifecycle tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lifecycle tool, the description covers the core action but leaves gaps regarding the lifecycle relationship with 'up', error conditions (what if service isn't running), and whether this persists data. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with 'projectPath' fully documented in the schema itself. The description adds no parameter-specific guidance, but with complete schema coverage, no additional compensation is strictly necessary. Baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Stop' with clear resource target 'locally running waitlist service'. The term 'locally' effectively distinguishes this from the sibling 'cli_waitlist_deploy' tool, while 'down' in the name pairs naturally with 'cli_waitlist_up'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage context through 'locally running' (suggesting development environments), but lacks explicit when-to-use guidance, prerequisites, or mentions of complementary lifecycle tools like 'cli_waitlist_up' that would help an agent understand the full operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_waitlist_logsA
Fetch a snapshot of waitlist service logs from the VPS (non-streaming). Returns the last N lines.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root | |
| tail | No | Number of log lines to return (default: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full disclosure burden. It successfully adds behavioral context beyond the schema by specifying 'snapshot' and 'non-streaming' modes, plus 'Returns the last N lines' for output behavior. However, lacks details on potential failures, latency, or log format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficiently structured sentences with zero waste. Front-loaded with action and resource type, with second sentence clarifying return value. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a low-complexity 2-parameter tool with complete schema coverage. The description compensates for missing output schema by stating 'Returns the last N lines'. Adequate but not exceptional given lack of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description mentions 'last N lines' which loosely maps to the 'tail' parameter, but adds no syntax, format constraints, or usage examples beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb 'Fetch' and resource 'waitlist service logs' with scope 'from the VPS'. The '(non-streaming)' parenthetical effectively distinguishes this from streaming log alternatives, though it doesn't explicitly name sibling tools like cli_docker_logs as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context with '(non-streaming)' indicating when to use this versus streaming alternatives, but lacks explicit 'use when X' or 'instead of Y' guidance. No mention of prerequisites like VPS access requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_waitlist_upA
Start the waitlist service locally using Docker Compose.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the LaunchFrame project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden; it successfully identifies Docker Compose as the underlying mechanism. However, it omits critical behavioral details such as port binding, container state changes, idempotency, or error conditions when Docker is unavailable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description delivers maximum information in nine words, front-loading the action verb and precisely identifying target, scope, and method without redundancy. Every word serves a distinct semantic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter tool with complete schema documentation, covering the essential operation and mechanism. Given zero annotations and no output schema, it lacks sufficient disclosure of side effects and failure modes expected for Docker operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with 'projectPath' fully documented as 'Absolute path to the LaunchFrame project root', establishing a baseline. The description text itself does not augment parameter semantics, relying entirely on the schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Start' with the clear resource 'waitlist service', and qualifies the scope with 'locally using Docker Compose'. It effectively distinguishes from siblings like 'cli_waitlist_deploy' (remote vs local) and 'cli_docker_up' (general vs waitlist-specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The term 'locally' implicitly contrasts with 'cli_waitlist_deploy', hinting at development vs production use. However, it lacks explicit prerequisites (e.g., Docker daemon running) or clear when-to-use guidance relative to the deploy alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credits_get_add_patternA
Get the code snippet for programmatically adding credits to a user with a specific transaction type.
| Name | Required | Description | Default |
|---|---|---|---|
| transactionType | Yes | The CreditTransactionType to use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Successfully clarifies this retrieves a code pattern/template rather than performing the actual credit mutation. However, lacks details on output format (language, structure) or whether snippet is framework-specific.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, efficient sentence with no redundancy. 'Programmatically' is slightly implicit (given 'code snippet') but acceptable. Front-loads the action and resource clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a low-complexity, single-parameter tool with complete schema coverage. Sufficient for agent to understand it returns a pattern/snippet, though specifying output format (e.g., 'TypeScript example') would further help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with transactionType well-defined via enum values. Description mentions 'with a specific transaction type' which contextualizes the parameter but doesn't add syntactic or semantic details beyond the schema's enum list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' and resource 'code snippet for programmatically adding credits'. Implicitly distinguishes from sibling 'credits_get_deduction_pattern' by specifying 'adding' operation, though explicit differentiation would strengthen it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied context (use when implementing credit addition logic) but lacks explicit guidance on when to use vs 'credits_get_deduction_pattern' or 'credits_get_monetization_strategies', and doesn't state prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credits_get_deduction_patternB
Get the decorator + guard pattern for deducting credits on a route.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it states what it retrieves (a pattern), it fails to specify the return format (code string, JSON object, documentation), whether the result is cached, or any authentication requirements needed to apply the pattern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence of nine words that front-loads the action ('Get') and immediately specifies the target resource. Every word serves a purpose without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description provides minimally sufficient context by identifying the returned asset (pattern) and its use case (route-level credit deduction). However, it lacks explanation of the output structure or format, which would help an agent understand how to utilize the returned pattern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters, which per evaluation rules establishes a baseline score of 4. The description appropriately requires no parameter clarification since there are no inputs to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Get') and clearly identifies the resource as a 'decorator + guard pattern for deducting credits on a route.' It effectively distinguishes itself from sibling `credits_get_add_pattern` by specifying 'deduction' versus 'add,' clarifying this is specifically for spending/consuming credits rather than adding them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like `credits_get_add_pattern` or `auth_get_guard_usage`. It omits prerequisites such as requiring authentication setup or when deduction logic is appropriate versus other monetization strategies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credits_get_monetization_strategiesA
Get an overview of all monetization strategies (free, subscription, credits, hybrid) and when to use each.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'Get' implies a read-only operation, and mentioning the content includes decision criteria ('when to use each') provides some insight into the return value structure. However, it omits details about caching, potential errors, or whether this is static reference data versus dynamic computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that efficiently communicates the action (Get), resource (monetization strategies), enumeration (free, subscription, credits, hybrid), and value-add (when to use each). No words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (zero parameters, no output schema defined) and absence of annotations, the description adequately covers what the agent needs to know: it returns a strategic overview with decision criteria. It appropriately does not attempt to describe undefined output schemas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters and the schema is empty. With no parameters requiring semantic explanation, this meets the baseline score of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves an overview of monetization strategies, listing specific types (free, subscription, credits, hybrid). However, it does not explicitly distinguish this tool from the sibling `subscriptions_get_plans_overview`, which could create selection ambiguity since 'subscription' is mentioned in both contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description mentions the output includes 'when to use each' strategy (implying decision-making context), it lacks explicit guidance on when to invoke this specific tool versus siblings like `subscriptions_get_plans_overview` or `credits_get_add_pattern`. The 'when to use' refers to the business strategies rather than tool invocation criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cron_get_patternA
Get the LaunchFrame cron job pattern: where jobs live, available CronExpression presets, and module registration rules.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full behavioral burden. It successfully discloses the informational nature and specific content domains returned (locations, presets, rules), but omits details about data source (live config vs static docs), caching, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient single-sentence structure with zero waste. The colon structure front-loads the action and efficiently enumerates the three content areas without repetition or schema duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema, but description compensates effectively by enumerating the specific informational domains returned (job locations, presets, registration rules). Adequate for a zero-parameter documentation retrieval tool, though could mention return format (JSON structure).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present, which per rules establishes baseline 4. Description correctly implies no filtering or input is needed to retrieve the pattern, consistent with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific retrieval action (Get) and resource (LaunchFrame cron job pattern). The colon-separated list clarifies scope (job locations, CronExpression presets, registration rules), distinguishing it from the sibling scaffold tool by implying this returns documentation rather than creating resources. Could be elevated to 5 by explicitly contrasting with cron_scaffold_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the content description (retrieving pattern documentation suggests use during discovery/planning), but lacks explicit when-to-use guidance or contrast with cron_scaffold_job. No prerequisites or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cron_scaffold_jobC
Scaffold a new cron method to add to CronService (src/jobs/cron.service.ts).
| Name | Required | Description | Default |
|---|---|---|---|
| methodName | Yes | The name of the cron method, camelCase (e.g. "syncUserStats") | |
| schedule | Yes | The CronExpression preset to use | |
| queueName | No | Optional Bull queue name to enqueue work into (e.g. "api"). Omit for jobs that do lightweight direct work. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full responsibility for behavioral disclosure. While it mentions the target file path, it fails to specify whether it appends or overwrites existing methods, what happens if the method name already exists, or whether the file is created if missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no redundancy. It front-loads the action and target, though appropriate conciseness is somewhat undermined by the lack of necessary behavioral context for a file-modifying operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage and absence of an output schema, the description adequately covers the basic purpose. However, for a scaffolding tool with no annotations, it lacks important context about error handling, idempotency, and integration requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the parameters are fully self-documenting. The description adds no parameter-specific guidance, meeting the baseline expectation when the schema already provides complete documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Scaffold' with the resource 'cron method' and identifies the target file 'CronService (src/jobs/cron.service.ts)'. This clearly distinguishes it from the sibling tool 'cron_get_pattern' (which reads) by indicating this is a code generation operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus other scaffolding tools like 'queue_scaffold_processor' or 'email_scaffold_send', nor does it mention prerequisites such as whether CronService must exist first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It clearly indicates read-only behavior ('Returns') and describes the content of the output (schema + snippets). However, lacks operational context: no mention of potential payload size, caching behavior, database connection requirements, or performance characteristics of introspecting the full schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. First sentence front-loads the core value proposition (schema + snippets with examples). Second sentence provides actionable workflow guidance. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but description adequately compensates by detailing what content is returned (tables, columns, relations, specific SQL snippet examples). Missing output format details (JSON vs formatted text) prevents a 5, but sufficient for tool selection purposes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Baseline score of 4 applies for zero-parameter tools. The description provides no parameter-specific details (none needed), but enriches understanding by implying this is a configuration-free call that returns comprehensive results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: states it 'Returns the full database schema' with specific components (tables, columns, types, relations) and gives concrete examples of SQL snippets provided (user counts, active sessions, subscription plans, credit balances). Clearly distinguishes from cli_database_query and other CLI siblings by specifying it provides schema metadata rather than executing queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing guidance: 'Call this before running cli_database_query when the user asks a data question.' Provides clear trigger condition ('when the user asks a data question') and names the specific sibling tool to use subsequently. No ambiguity about when to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It adequately explains the content domains returned (sending patterns, templates, environment), but lacks operational details like output format (JSON vs Markdown), caching behavior, or any required authentication context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with zero waste. Effectively front-loaded with the core action ('Get an overview'), followed by a colon-delimited specificity section. Every clause earns its place by defining distinct content areas.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter documentation tool without output schema, the description adequately covers intellectual content but should specify the output format (structured data vs. text). Given the lack of annotations and output schema, gaps remain regarding response structure and operational constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present, triggering the baseline score of 4 per the rubric. The description appropriately acknowledges this by focusing entirely on the return value content rather than implying parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: 'Get' (verb) + 'overview of the LaunchFrame email system' (resource). The colon-separated list (sending patterns, template conventions, built-in templates, environment setup) clearly distinguishes this documentation retrieval tool from siblings like 'email_scaffold_send' and 'email_scaffold_template' (which generate code vs. explain conventions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives mentioned. While 'conventions' and 'overview' imply this is for learning before implementation, it doesn't state when to use this vs. the scaffolding tools or prerequisite relationships.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_scaffold_sendA
Generate NestJS code to send a transactional email — either by injecting MailService directly (direct) or via the emails Bull queue (queued).
| Name | Required | Description | Default |
|---|---|---|---|
| templateName | Yes | kebab-case template name without extension (e.g. "invoice-paid") | |
| method | Yes | "direct" injects MailService; "queued" adds a job to the emails Bull queue | |
| contextVars | Yes | camelCase context variable names required by the template (excluding baseUrl — auto-injected) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully conveys that this generates code (not sends actual emails) and specifies architectural patterns (MailService injection, Bull queue), but omits critical behavioral details expected of scaffold tools: what files are created, where they are placed, or idempotency/overwrite behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is efficiently structured with the primary purpose front-loaded ('Generate NestJS code...') and implementation details following the em-dash. Every clause earns its place—no tautology or unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While adequate for identifying the tool's purpose, the description lacks completeness for a scaffolding tool with no output schema or annotations. It should disclose that this generates service/provider code files and clarify the relationship to the Bull queue system mentioned in siblings (queue_scaffold_producer).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description provides high-level context for the 'method' parameter by mentioning the specific implementation patterns (direct injection vs queue), but this largely mirrors the schema's enum descriptions. It does not add significant semantic context for 'templateName' or 'contextVars' beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generate NestJS code') and resource ('transactional email'), clearly identifying this as a code scaffolding tool rather than a runtime email sender. The scope (generating sending logic vs templates) effectively distinguishes it from sibling tools like email_scaffold_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description enumerates the two method options (direct vs queued) but stops short of providing selection criteria (e.g., when to choose queued over direct). It does not reference sibling tools as alternatives or explain prerequisites for using this scaffold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_scaffold_templateA
Generate a Handlebars (.hbs) template stub for a new LaunchFrame transactional email, following project conventions.
| Name | Required | Description | Default |
|---|---|---|---|
| templateName | Yes | kebab-case template name without extension (e.g. "invoice-paid", "trial-ending") | |
| contextVars | Yes | camelCase context variable names the template will use (e.g. ["firstName", "url", "planName"]). Do not include baseUrl — it is auto-injected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions 'following project conventions' but fails to disclose side effects (creates files?), return format (content vs. path), idempotency, or destructiveness (overwrites existing?).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded action, zero waste. Every element earns its place: format (.hbs), framework (LaunchFrame), type (transactional), and constraint (conventions).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a 2-parameter scaffold tool, but gaps remain: no output schema, no annotations, and missing disclosure of what gets generated (file path? code content?) despite scaffolding being a side-effect-heavy operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for both parameters (kebab-case, camelCase, baseUrl exclusion). Description text adds no parameter semantics beyond schema, which is appropriate baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: verb 'Generate', resource 'Handlebars (.hbs) template stub', domain 'LaunchFrame transactional email'. Clearly distinguishes from sibling 'email_scaffold_send' by specifying template scaffolding vs. sender scaffolding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear implied context (use when creating new transactional email templates), but lacks explicit when/when-not guidance or prerequisites (e.g., relationship to 'email_get_conventions').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_get_conventionsB
Get TypeORM entity conventions for LaunchFrame: required decorators, naming strategy, column types, relations, and multi-tenancy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry full behavioral burden. It clarifies what 'conventions' entails (content categories), but fails to disclose whether this is read-only, cached, or what format/structure it returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence, front-loaded with action and resource. The colon-delimited list provides scannable detail without verbosity. Zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without output schema or annotations, the description should ideally characterize the return value (e.g., markdown documentation, JSON object). It compensates partially by listing content categories, but gaps remain regarding output format and behavioral guarantees.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present, which per rubric establishes baseline 4. No parameter description needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb 'Get' and resource 'TypeORM entity conventions', with detailed enumeration of what is covered (decorators, naming strategy, column types, relations, multi-tenancy). However, lacks explicit differentiation from sibling tool entity_scaffold_typeorm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this versus entity_scaffold_typeorm or database_schema. No mention of prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_scaffold_typeormB
Generate a TypeORM entity file following LaunchFrame conventions.
| Name | Required | Description | Default |
|---|---|---|---|
| entityName | Yes | Entity class name in PascalCase (e.g. "FeedbackEntry", "AiSummary") | |
| tableName | Yes | Database table name in snake_case (e.g. "feedback_entries", "ai_summaries") | |
| primaryKeyType | No | Primary key type: "int" (auto-increment) or "uuid" | int |
| multiTenant | No | Add projectId column for multi-tenant variant | |
| withEnum | No | Optional: define a status enum. Provide enum name in PascalCase (e.g. "EntryStatus"). Values will be a placeholder — edit as needed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden but only states it generates a file. Critical behavioral traits undisclosed: whether it overwrites existing files, what the return value contains (file path? content? success status?), idempotency guarantees, and required execution context/working directory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence with zero waste. Front-loaded with action verb 'Generate', immediately identifies resource type 'TypeORM entity file', and concludes with contextual qualifier 'following LaunchFrame conventions'. Appropriate length for the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file generation tool with 5 well-documented parameters but no output schema, the description mentions file generation but omits side effect details (file location, overwrite behavior) and return structure. Adequate but incomplete given the mutation nature of the operation and lack of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed information about PascalCase/snake_case conventions and enum options. The description adds minimal parameter-specific semantics beyond the schema, though 'LaunchFrame conventions' contextualizes why specific naming standards matter. Baseline 3 appropriate given schema completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Generate' with clear resource 'TypeORM entity file'. The phrase 'following LaunchFrame conventions' distinguishes it from generic entity generators and siblings like entity_get_conventions (which retrieves conventions rather than generating files) and other scaffolding tools like cron_scaffold_job or module_scaffold_nestjs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives such as entity_get_conventions (which should likely be consulted first), nor any mention of prerequisites like requiring an existing TypeORM setup or specific project structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. While it describes what information is returned, it omits operational traits: no mention of idempotency, caching behavior, authentication requirements, or side effects. The word 'Get' implies read-only but doesn't confirm safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, appropriately front-loaded with action and resource. The colon-separated list efficiently details specific convention aspects without verbosity. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking output schema, the description comprehensively enumerates content domains covered (4 specific areas). Adequate for a simple lookup tool, though return format (string vs object) remains unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present (empty schema). With no parameters to document, baseline score applies. Description appropriately avoids inventing parameter documentation where none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: verb 'Get' + resource 'environment variable conventions' + domain 'LaunchFrame'. The colon-separated list of specific aspects (naming rules, location, reference) clearly distinguishes this from sibling tools like email_get_conventions or entity_get_conventions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lists four specific content areas covered (location, naming rules, key reference, adding vars), which helps agents infer this is for documentation lookup. However, lacks explicit 'when to use' guidance or comparison to alternatives like email_get_conventions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feature_gates_get_check_patternA
Get a copy-paste TypeScript snippet for checking a feature gate by code and type.
| Name | Required | Description | Default |
|---|---|---|---|
| featureCode | Yes | The feature code to check (as defined in the database) | |
| featureType | Yes | Whether to generate a boolean or numeric (with limit) check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Critically clarifies this returns 'copy-paste TypeScript snippet' (code to implement), not the actual boolean/numeric feature gate value. This prevents confusion about the tool's output. 'Get' implies read-only/safe operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, dense sentence with no redundancy. 'Get' front-loads the action. 'copy-paste TypeScript snippet' efficiently communicates the output format. Zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter utility with full schema coverage and no output schema, the description adequately explains the conceptual return value (code snippet). Missing output schema means ideal description would detail the snippet structure, but the 'copy-paste TypeScript' provides sufficient context for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for both featureCode and featureType. The description references parameters ('by code and type') but adds no semantic detail beyond what's in the schema. Baseline 3 appropriate when schema documentation is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Get') and resource ('TypeScript snippet'). Specifies the purpose is for 'checking a feature gate' and distinguishes from sibling 'feature_gates_get_overview' by focusing on code generation rather than general documentation. Could be slightly more explicit about the snippet being implementation code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when/when-not guidance provided. While the name suggests it's for obtaining code patterns, there's no mention of when to use this versus the sibling overview tool, or when generating a pattern is preferable to direct implementation. Relies entirely on tool name conventions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feature_gates_get_overviewB
Get the feature gate system overview: how features are stored, how to query them, and the check pattern.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. While it states the information retrieved (storage, querying, check pattern), it fails to disclose critical behavioral traits such as whether this is a safe read-only operation, if it returns cached or live data, any authentication requirements, or the response format (JSON, markdown, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with the main action ('Get') front-loaded. The colon-separated list cleanly identifies the content areas covered. No words are wasted, and the structure appropriately reflects the tool's zero-parameter simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description compensates partially by listing the specific content areas returned (storage, querying, check pattern). However, it lacks critical context such as the response format type, whether the overview is static documentation or dynamic system state, and how comprehensive the overview is compared to the sibling `feature_gates_get_check_pattern`.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters (empty object). Per the scoring guidelines, zero-parameter tools receive a baseline score of 4, as there are no parameter semantics to clarify beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the exact resource ('feature gate system overview'). It further clarifies the scope by listing three specific content areas covered (storage, querying, check pattern). However, it does not distinguish this broad overview from the sibling `feature_gates_get_check_pattern`, which creates potential confusion since this description mentions 'check pattern' as one of multiple topics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, particularly the sibling `feature_gates_get_check_pattern`. There is no mention of prerequisites, exclusion criteria, or the relationship between the overview provided here and the specific patterns provided by other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
module_get_structureB
Get the NestJS module folder structure, conventions, and rules used in LaunchFrame.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it identifies the information retrieved (structure, conventions, rules), it fails to disclose whether this reads from the filesystem, returns cached knowledge, or specifies the output format (text, JSON, tree structure).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb 'Get', zero redundancy. Every word earns its place in defining scope and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should ideally indicate the return format (e.g., documentation text, file tree, or JSON). While adequate to identify when to invoke the tool, it leaves ambiguity about what the agent will receive back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema coverage (trivially). With no parameters to describe, this meets the baseline expectation where the schema speaks for itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and specific resource ('NestJS module folder structure, conventions, and rules') within the LaunchFrame context. It implicitly distinguishes from sibling 'module_scaffold_nestjs' by using 'get' versus 'scaffold', though it doesn't explicitly clarify when to choose one over the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance provided regarding when to use this tool versus alternatives like 'module_scaffold_nestjs' or 'architecture_get_overview'. No prerequisites or context about whether this queries the current project or returns static documentation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
module_scaffold_nestjsB
Generate a NestJS module scaffold (module + service + optional controller + optional entity) following LaunchFrame conventions.
| Name | Required | Description | Default |
|---|---|---|---|
| moduleName | Yes | Domain name in kebab-case (e.g. "projects", "ai-summaries") | |
| withController | No | Include a controller with basic CRUD routes | |
| withEntity | No | Include a TypeORM entity and register it via TypeOrmModule.forFeature |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description uses 'Generate' implying creation but fails to disclose critical behavioral traits: file system side effects (creates files/directories), idempotency/overwrite behavior, destructive potential, or what the tool returns (file paths, success confirmation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence with zero redundancy. Front-loaded with verb and object, parenthetical component list clearly maps to parameters, and contextual qualifier ('following LaunchFrame conventions') occupies the end without diluting core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a 3-parameter scaffold tool given 100% schema coverage. However, lacking output schema and annotations, the description omits expected context about generation outcomes (file paths created, naming conventions applied) and side effects, leaving operational behavior under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing baseline 3. Description maps 'optional controller' and 'optional entity' to the boolean flags, but adds no syntax details, validation rules, or format examples beyond what the schema already provides. References 'LaunchFrame conventions' hinting at output structure but remains abstract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb (Generate) and resource (NestJS module scaffold) with enumerated components (module, service, controller, entity). Distinguishes from siblings like entity_scaffold_typeorm by focusing on full module scaffolding and from cli_module_add via 'scaffold' terminology, though lacks explicit contrast with other code generation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
References 'LaunchFrame conventions' providing implicit context for when to use (within LaunchFrame architecture), but lacks explicit when/when-not guidance, prerequisites (e.g., requiring existing NestJS project), or named alternatives like cli_module_add vs module_scaffold_nestjs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queue_get_namesB
List all available Bull queues in LaunchFrame with their purpose and usage rules.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It hints at return content ('purpose and usage rules') suggesting this returns metadata beyond just names, but lacks disclosure on side effects, auth requirements, or return format structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence, front-loaded with action verb. No redundant words or tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema exists, the description should elaborate more on return structure. While it mentions 'purpose and usage rules', it doesn't clarify if this returns an array, object format, or pagination behavior. Adequate but incomplete for a data-returning tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, which warrants baseline score of 4. Description correctly implies no filtering is needed by stating 'List all'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and resource 'Bull queues in LaunchFrame' with scope 'all available'. Mentions enriched content (purpose/usage rules). Distinguishes implicitly from sibling 'queue_scaffold_*' tools by being a read operation, but does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs alternatives (e.g., 'use this for discovery before calling queue_scaffold_*'). The phrase 'usage rules' refers to returned data, not tool invocation guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queue_scaffold_processorC
Get a Bull processor class scaffold for a given queue and job name.
| Name | Required | Description | Default |
|---|---|---|---|
| queueName | Yes | The queue this processor listens to | |
| jobName | Yes | The job name string passed to queue.add() (e.g. "send-email") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but fails to specify whether this returns code as a string, writes to disk, or requires specific project context. 'Get' implies read-only, but scaffold generation behavior remains ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence containing the core action and resource without redundancy. Appropriately front-loaded, though the brevity leaves gaps in contextual information given the lack of output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for the low complexity (2 simple params), but incomplete given this is a scaffolding tool with no output schema—the description should clarify what format the scaffold is returned in (string, file path, etc.).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description adds minimal semantic context beyond the schema, only indicating these parameters are used to retrieve the scaffold, which is baseline expectation given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific domain terminology ('Bull processor class scaffold') that clearly identifies the resource and distinguishes it from the sibling 'queue_scaffold_producer'. However, it assumes the user knows what a 'scaffold' entails (code template vs file generation) without clarifying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus 'queue_scaffold_producer' or other queue-related tools. No prerequisites or contextual conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queue_scaffold_producerB
Get the code to inject and use a Bull queue as a producer in a NestJS service.
| Name | Required | Description | Default |
|---|---|---|---|
| queueName | Yes | The queue to produce jobs for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It implies the tool returns code (via 'Get the code'), which hints at the return value, but fails to specify whether this performs filesystem writes, requires specific permissions, or returns a string versus an object. The behavioral traits remain underspecified for a scaffolding tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero redundancy. Every word earns its place: 'Get' establishes the action, 'code to inject and use' specifies the deliverable and purpose, 'Bull queue' identifies the technology, and 'NestJS service' establishes the framework context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (single enum parameter) and 100% schema coverage, the description is minimally adequate. However, the absence of an output schema means the description should explicitly clarify what 'get' returns (e.g., 'returns code string for manual insertion'), which it omits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the 'queueName' parameter fully documented in the schema including its enum values and description. The tool description adds semantic context by mentioning 'Bull queue', which aligns with the parameter's purpose, but does not elaborate on the enum values (emails, api, webhooks) beyond what the schema provides. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (get/generate code), the resource (Bull queue producer injection pattern), and the context (NestJS service). It implicitly distinguishes from the sibling 'queue_scaffold_processor' by specifying 'producer' versus 'processor', though it could be more explicit about this contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'queue_scaffold_processor' (which handles consumers) or 'queue_get_names'. It omits that this is specifically for sending/producing jobs rather than consuming them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscriptions_get_plans_overviewA
Get an overview of the subscription plans system: plan groups, annual billing toggle, API response shape, and key files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It partially discloses behavioral traits by listing return content ('API response shape', 'key files'), substituting for the missing output schema. However, it fails to mention safety (read-only status), authentication requirements, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently packed with specific domain details. The colon-delimited list structure front-loads the action verb and clearly enumerations the four aspects covered without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the missing output schema, the description compensates reasonably by detailing expected return content (plan groups, billing toggle, files). However, as an overview tool with rich potential siblings, it could better contextualize how this overview relates to other subscription or billing tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, triggering the baseline score of 4 per the rubric. The description appropriately does not invent parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('subscription plans system'), and clearly distinguishes from sibling tools like auth_get_overview and architecture_get_overview by scoping to subscription-specific concepts including 'plan groups' and 'annual billing toggle'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists what content is returned but provides no guidance on when to invoke this tool versus alternatives like credits_get_monetization_strategies, nor does it mention prerequisites or if this should be called before other subscription operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that it reads from .launchframe file and returns information about behavioral differences between variants. Could explicitly state idempotency or safety, but the informational nature is clear from 'Get' and 'Explains' language.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First sentence front-loads the resource and enumerates specific variants; second details behavioral value. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but description adequately hints at return value by stating it 'Explains' file reading and behavioral differences. Given zero parameters and informational nature, description provides sufficient context for invocation, though explicitly stating 'returns documentation' would strengthen it further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present. Per rubric guidelines, 0 params = baseline 4. Schema is empty object, fully self-describing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: identifies exact resource (LaunchFrame project variants) with enumeration of all three types (Base/B2B single-tenant, Multi-tenant, B2B2C). Uses precise verb 'Get' and clearly distinguishes from sibling tools like architecture_get_overview or auth_get_overview by focusing specifically on project variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context ('when writing new code') and explains practical application (reading .launchframe file, accounting for behavioral differences). Lacks explicit 'when not to use' or direct comparison to other get_overview siblings, but the operational context is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webhook_get_architectureA
Get an overview of the LaunchFrame webhook architecture: receipt/processing separation, WebhookLog entity, Bull queue, and retry cron.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full disclosure burden. It adequately specifies content scope (what architectural components are explained) but omits operational traits: no mention of side effects, idempotency, data source (static docs vs live system), or output format. 'Get' implies read-only but lacks explicit safety confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficiently structured sentence: action clause front-loaded ('Get an overview...'), followed by colon-delimited specific domains. Every phrase earns its place by clarifying the scope of 'architecture'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriately complete for a zero-parameter documentation tool. Lists four specific technical areas the overview covers, compensating for absent output schema by hinting at content structure. Minor gap: doesn't specify output format (JSON vs markdown text).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present in schema (empty properties object), triggering baseline score of 4. No parameter documentation burden exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: verb 'Get' + resource 'LaunchFrame webhook architecture' + scope details (receipt/processing separation, WebhookLog, Bull queue, retry cron). Clearly distinguishes from sibling 'webhook_scaffold_handler' (informational vs generative) and general 'architecture_get_overview' (webhook-specific vs broad).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage context by delineating the four architectural domains covered, signaling this retrieves documentation rather than scaffolding code. However, lacks explicit guidance on when to prefer this over 'architecture_get_overview' or workflow prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webhook_scaffold_handlerB
Get a scaffold for a new webhook handler: controller receipt + Bull processor for a given provider and event type.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | The webhook provider (POLAR, PAYPAL, or STRIPE) | |
| eventType | Yes | The event type string from the provider (e.g. "subscription.created", "order.paid") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It successfully discloses that the scaffold includes specific components (controller + Bull processor), but fails to indicate whether this is a read-only code generation operation, what the return format looks like (code string vs file paths), or any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single well-structured sentence front-loaded with the core action. Technical specification (controller receipt + Bull processor) is efficiently appended. No redundant or wasted words, though slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a scaffolding tool with no output schema, the description should disclose what the user receives (e.g., code template, installation instructions, file paths). Absent this, and without annotations indicating safety/read-only status, the description is incomplete for proper tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters (provider with enum values, eventType with examples). The description references 'given provider and event type' but adds no semantic meaning beyond what the schema already provides, meeting the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it generates a 'scaffold for a new webhook handler' and specifies the technical components included (controller receipt + Bull processor), which distinguishes it from the sibling webhook_get_architecture (which retrieves documentation) and from other scaffolding tools like queue_scaffold_processor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit guidance on when to use this tool versus alternatives (e.g., manual implementation versus using queue_scaffold_processor for queue-based handlers) nor prerequisites for usage. Only describes what the tool produces.
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.
53 tool updates
v1.1.11- First observed
architecture_get_overview - First observed
auth_get_decorator_usage - First observed
auth_get_guard_usage - First observed
auth_get_overview - First observed
cli_cache_clear - First observed
cli_cache_info - First observed
cli_cache_update - First observed
cli_database_query - First observed
cli_deploy_build - First observed
cli_deploy_sync_features - First observed
cli_deploy_up - First observed
cli_dev_add_user - First observed
cli_dev_logo - First observed
cli_dev_npm_install - First observed
cli_docker_build - First observed
cli_docker_destroy - First observed
cli_docker_down - First observed
cli_docker_logs - First observed
cli_docker_up - First observed
cli_migration_create - First observed
cli_migration_revert - First observed
cli_migration_run - First observed
cli_module_add - First observed
cli_module_list - First observed
cli_service_add - First observed
cli_service_list - First observed
cli_waitlist_deploy - First observed
cli_waitlist_down - First observed
cli_waitlist_logs - First observed
cli_waitlist_up - First observed
credits_get_add_pattern - First observed
credits_get_deduction_pattern - First observed
credits_get_monetization_strategies - First observed
cron_get_pattern - First observed
cron_scaffold_job - First observed
database_schema - First observed
email_get_conventions - First observed
email_scaffold_send - First observed
email_scaffold_template - First observed
entity_get_conventions - First observed
entity_scaffold_typeorm - First observed
env_get_conventions - First observed
feature_gates_get_check_pattern - First observed
feature_gates_get_overview - First observed
module_get_structure - First observed
module_scaffold_nestjs - First observed
queue_get_names - First observed
queue_scaffold_processor - First observed
queue_scaffold_producer - First observed
subscriptions_get_plans_overview - First observed
variant_get_overview - First observed
webhook_get_architecture - First observed
webhook_scaffold_handler
TDQS
Scored across 53 tools
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).
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.
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.
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.
Maintenance
Related MCP Connectors
Serves your design system and coding standards to coding agents, so they stop guessing.
Shared memory for coding agents. Stop re-explaining your codebase every session.
Structured knowledge base for AI agent solutions. Search, explore, and retrieve build logs.
Your team's shipping standards, org map and delivery metrics, inside your coding agent.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to generate standardized code using scaffolding templates, enforce architectural patterns, and validate outputs programmatically. Supports creating projects from boilerplates and adding features to existing codebases while maintaining team conventions.162AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceProvides AI coding agents with access to CleanSlice architecture documentation, rules, and conventions. It enables users to search documentation and retrieve essential patterns to help AI build applications correctly.18MIT
- FlicenseAqualityDmaintenanceProvides AI assistants with direct access to Laravel documentation, coding rules, and implementation templates stored locally. It enables searching documentation, retrieving design system guides, and accessing domain-specific code examples to streamline Laravel development.8-
- AlicenseAqualityBmaintenanceProvides AI assistants with tools for code generation, documentation, and project scaffolding when building applications with the clearskies Python framework.54MIT