drive_create_folder
Create a new folder in Google Drive using the specified name, optionally assigning it to a parent folder via ID. Ideal for organizing files through MCP Google Suite integration.
Instructions
Create a new folder in Google Drive
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the folder | |
| parent_id | No | ID of parent folder |
Implementation Reference
- src/mcp_google_suite/server.py:295-308 (handler)MCP tool handler that extracts arguments, validates folder name, and delegates to DriveService.create_folder method.async def _handle_drive_create_folder( self, context: GoogleWorkspaceContext, arguments: dict ) -> Dict[str, Any]: """Handle drive create folder requests.""" name = arguments.get("name") parent_id = arguments.get("parent_id") if not name: raise ValueError("Folder name is required") logger.debug(f"Creating folder - Name: {name}, Parent: {parent_id or 'root'}") result = await context.drive.create_folder(name=name, parent_id=parent_id) logger.debug(f"Folder created - ID: {result.get('id')}") return result
- src/mcp_google_suite/server.py:73-84 (schema)Tool schema defining the input parameters (name required, parent_id optional) and description for drive_create_folder.types.Tool( name="drive_create_folder", description="Create a new folder in Google Drive", inputSchema={ "type": "object", "properties": { "name": {"type": "string", "description": "Name of the folder"}, "parent_id": {"type": "string", "description": "ID of parent folder"}, }, "required": ["name"], }, ),
- Core DriveService method that creates a folder using the Google Drive API v3, handling parent folder and errors.def create_folder(self, name: str, parent_id: Optional[str] = None) -> Dict[str, Any]: """Create a new folder in Google Drive.""" try: file_metadata = {"name": name, "mimeType": "application/vnd.google-apps.folder"} if parent_id: file_metadata["parents"] = [parent_id] folder = ( self.service.files() .create(body=file_metadata, fields="id, name, webViewLink") .execute() ) return {"success": True, "folder": folder} except HttpError as error: return {"success": False, **self.handle_error(error)}