Skip to main content
Glama

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
NameRequiredDescriptionDefault
nameYesThe name for the new project, e.g., "My Summer Vacation"
locationYesThe absolute directory path where the project file should be saved, e.g., "/Users/user/Documents/Videos"

Implementation Reference

  • 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"') }) },
  • 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)}` }; } }
  • 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 }; });
  • 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}` ); } });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hetpatel-11/Adobe_Premiere_Pro_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server