create_project
Start a new video editing project in Adobe Premiere Pro by creating a project file with a specified name and save location.
Instructions
Creates a new Adobe Premiere Pro project. Use this when the user wants to start a new video editing project from scratch.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name for the new project, e.g., "My Summer Vacation" | |
| location | Yes | The absolute directory path where the project file should be saved, e.g., "/Users/user/Documents/Videos" |
Implementation Reference
- src/tools/index.ts:58-64 (schema)Input schema definition for the create_project tool using Zod validation.name: 'create_project', description: 'Creates a new Adobe Premiere Pro project. Use this when the user wants to start a new video editing project from scratch.', inputSchema: z.object({ name: z.string().describe('The name for the new project, e.g., "My Summer Vacation"'), location: z.string().describe('The absolute directory path where the project file should be saved, e.g., "/Users/user/Documents/Videos"') }) },
- src/tools/index.ts:743-758 (handler)Tool handler method that invokes the bridge to create a new project and wraps the response with success/error handling.private async createProject(name: string, location: string): Promise<any> { try { const result = await this.bridge.createProject(name, location); return { success: true, message: `Project "${name}" created successfully`, projectPath: `${location}/${name}.prproj`, ...result }; } catch (error) { return { success: false, error: `Failed to create project: ${error instanceof Error ? error.message : String(error)}` }; } }
- src/bridge/index.ts:179-197 (handler)Core implementation executing ExtendScript app.newProject(name, location) to create the Premiere Pro project.async createProject(name: string, location: string): Promise<PremiereProProject> { const script = ` // Create new project app.newProject("${name}", "${location}"); var project = app.project; // Return project info JSON.stringify({ id: project.documentID, name: project.name, path: project.path, isOpen: true, sequences: [], projectItems: [] }); `; return await this.executeScript(script); }
- src/index.ts:74-81 (registration)MCP server registration: ListToolsRequestHandler that exposes all tools including create_project via getAvailableTools().this.server.setRequestHandler(ListToolsRequestSchema, async () => { const tools = this.tools.getAvailableTools().map((tool) => ({ name: tool.name, description: tool.description, inputSchema: zodToJsonSchema(tool.inputSchema, { $refStrategy: 'none' }) })); return { tools }; });
- src/index.ts:84-106 (handler)MCP CallToolRequestHandler that dispatches tool execution to PremiereProTools.executeTool, handling create_project among others.this.server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; try { const result = await this.tools.executeTool(name, args || {}); return { content: [ { type: 'text' as const, text: JSON.stringify(result, null, 2) } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; this.logger.error(`Tool execution failed: ${errorMessage}`); throw new McpError( ErrorCode.InternalError, `Failed to execute tool '${name}': ${errorMessage}` ); } });