Skip to main content
Glama

create_folder

Create a new folder in your GASSAPI project to organize API endpoints, environments, and testing workflows with specified name and optional parent folder structure.

Instructions

Create a new folder in the project

Input Schema

NameRequiredDescriptionDefault
nameYesFolder name
descriptionNoFolder description
parentIdNoParent folder ID (optional, creates root-level folder if not provided)
projectIdNoProject ID (optional, will use current project if not provided)

Input Schema (JSON Schema)

{ "properties": { "description": { "description": "Folder description", "type": "string" }, "name": { "description": "Folder name", "type": "string" }, "parentId": { "description": "Parent folder ID (optional, creates root-level folder if not provided)", "type": "string" }, "projectId": { "description": "Project ID (optional, will use current project if not provided)", "type": "string" } }, "required": [ "name" ], "type": "object" }

Implementation Reference

  • Core handler function that executes the create_folder tool logic: validates arguments, initializes config and backend client, creates FolderService instance, calls backend API to create folder, handles errors, and returns standardized MCP tool response.
    export async function handleCreateFolder(args: any): Promise<McpToolResponse> { try { const { name, description, parentId, projectId } = args; if (!name) { return { content: [ { type: 'text', text: JSON.stringify({ success: false, error: 'Folder name is required' }, null, 2) } ] }; } const instances = await getInstances(); // Get project ID if not provided let targetProjectId = projectId; if (!targetProjectId) { const config = await instances.configManager.detectProjectConfig(); targetProjectId = config?.project?.id; if (!targetProjectId) { return { content: [ { type: 'text', text: JSON.stringify({ success: false, error: 'Project ID not found in config and not provided in arguments' }, null, 2) } ] }; } } // Create folder service const folderService = new FolderService( instances.backendClient.getBaseUrl(), instances.backendClient.getToken() ); // Create folder const createRequest: CreateFolderRequest = { name: name.trim(), description: description?.trim(), parentId, projectId: targetProjectId }; const response = await folderService.createFolder(createRequest); if (!response.success) { return { content: [ { type: 'text', text: JSON.stringify({ success: false, error: response.error || 'Failed to create folder' }, null, 2) } ] }; } return { content: [ { type: 'text', text: JSON.stringify({ success: true, data: response.data, message: 'Folder created successfully' }, null, 2) } ] }; } catch (error: any) { return { content: [ { type: 'text', text: JSON.stringify({ success: false, error: error.message || 'Unknown error occurred while creating folder' }, null, 2) } ] }; }
  • Defines the MCP tool schema for 'create_folder' including input validation schema with required 'name' field and optional description, parentId, projectId.
    export const createFolderTool: McpTool = { name: 'create_folder', description: 'Create a new folder in the project', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Folder name' }, description: { type: 'string', description: 'Folder description' }, parentId: { type: 'string', description: 'Parent folder ID (optional, creates root-level folder if not provided)' }, projectId: { type: 'string', description: 'Project ID (optional, will use current project if not provided)' } }, required: ['name'] }, handler: handleCreateFolder };
  • Registers the create_folder handler wrapper that dynamically imports and delegates to the core handleCreateFolder function. This function is spread into the main tool handlers registry.
    function createFolderToolHandlers(): Record<string, (args: any) => Promise<McpToolResponse>> { return { 'list_folders': async (args: any) => { const { handleListFolders } = await import('./folders/handlers/folderHandlers.js'); return handleListFolders(args); }, 'create_folder': async (args: any) => { const { handleCreateFolder } = await import('./folders/handlers/folderHandlers.js'); return handleCreateFolder(args); }, 'update_folder': async (args: any) => { const { handleUpdateFolder } = await import('./folders/handlers/folderHandlers.js'); return handleUpdateFolder(args); }, 'move_folder': async (args: any) => { const { handleMoveFolder } = await import('./folders/handlers/folderHandlers.js'); return handleMoveFolder(args); }, 'delete_folder': async (args: any) => { const { handleDeleteFolder } = await import('./folders/handlers/folderHandlers.js'); return handleDeleteFolder(args); }, 'get_folder_details': async (args: any) => { const { handleGetFolderDetails } = await import('./folders/handlers/folderHandlers.js'); return handleGetFolderDetails(args); } }; }
  • Main tools registry array that includes folderTools (containing create_folder tool definition) among all available MCP tools.
    export const ALL_TOOLS: McpTool[] = [ ...CORE_TOOLS, ...AUTH_TOOLS, ...environmentTools, ...folderTools, ...ENDPOINT_TOOLS, ...testingTools, ...flowTools ];

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/martin-1103/mcp2'

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