dart-create
Create new Dart projects from templates like console, package, server-shelf, or web applications. Specify project name, output directory, and additional options to generate project structure.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| template | No | Template to use for project generation | package |
| projectName | Yes | Name of the project to create | |
| output | No | Directory where to create the project | |
| options | No | Additional project creation options |
Implementation Reference
- src/tools/create.ts:13-44 (handler)The main handler function for the 'dart-create' tool. It constructs arguments for the 'dart create' command using the provided template, project name, output directory, and additional options, then executes it via executeDartCommand and returns the result.export async function create(args: z.infer<typeof createSchema>) { const { template, projectName, output, options = [] } = args; // If output is provided, use it as the target directory // Otherwise, use projectName as both the target directory and the package name const targetDir = output || projectName; // Convert relative path to absolute path const absoluteTargetDir = toAbsolutePath(targetDir); // When output and projectName are both provided, we might want to use // projectName to name the package but create it in the output directory. // However, the Dart CLI doesn't have a separate flag for this. // The project name will be derived from the directory name. const cmdArgs = [ '-t', template, ...options, // Use the target directory as the positional argument absoluteTargetDir ]; console.log(`Creating Dart project with template '${template}' in directory: ${absoluteTargetDir}`); const { stdout, stderr } = await executeDartCommand('create', cmdArgs); return { content: [ { type: "text" as const, text: stdout || stderr } ], isError: !!stderr }; }
- src/tools/create.ts:5-11 (schema)Zod schema defining the input parameters for the 'dart-create' tool: template (enum with default), projectName (string), output (optional string), options (optional array of strings).export const createSchema = z.object({ template: z.enum(['console', 'package', 'server-shelf', 'web']).default('package') .describe('Template to use for project generation'), projectName: z.string().describe('Name of the project to create'), output: z.string().optional().describe('Directory where to create the project'), options: z.array(z.string()).optional().describe('Additional project creation options') });
- src/index.ts:35-35 (registration)Registration of the 'dart-create' tool on the MCP server, associating the name, input schema shape, and handler function.server.tool('dart-create', createSchema.shape, create);